提交 a0b14bcc 编写于 作者: S Syo

第一个知识点

上级 2712b516
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
{ {
"游戏开发入门": { "游戏开发入门": {
"keywords": [ "keywords": [
"游戏开发", "Godot",
"入门" "Flappy Bird"
], ],
"children": [], "children": [],
"keywords_must": [ "keywords_must": [
"起源" "Godot"
], ],
"keywords_forbid": [], "keywords_forbid": [],
"node_id": "game-8b79c45606e74fd48485bcdca73de39e" "node_id": "game-8b79c45606e74fd48485bcdca73de39e"
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
} }
], ],
"export": [ "export": [
"flappybird_godot.json" "learn.json"
], ],
"keywords_must": [], "keywords_must": [],
"keywords_forbid": [] "keywords_forbid": []
......
# 一个简单的 Python 小游戏
我们可以使用 python 的 pygame 快速建立一个弹球游戏,环境依赖
* 安装 python
* 使用 python 的包管理程序,安装依赖的 pygame 包:`pip install pygame`
编写你的第一游戏代码`game.py`,代码如下:
```python
import sys
import pygame
# 初始化
pygame.init()
# 游戏对话框大小
size = width, height = 320, 240
# 小球移动速度
speed = [2, 2]
# 黑色背景
black = 0, 0, 0
# 创建游戏屏幕
screen = pygame.display.set_mode(size)
# 加载小球 gif
ball = pygame.image.load("ball.gif")
# 获取游戏图片的矩形框
ballrect = ball.get_rect()
# 游戏循环
while 1:
# 判断是否退出
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
# 按 speed 速度,计算移动小球后的矩形框
ballrect = ballrect.move(speed)
# 更新速度(大小和方向)
if ballrect.left < 0 or ballrect.right > width:
speed[0] = -speed[0]
if ballrect.top < 0 or ballrect.bottom > height:
speed[1] = -speed[1]
# 绘制黑色背景
screen.fill(black)
# 绘制小球
screen.blit(ball, ballrect)
# 使用双缓存机制刷新屏幕
pygame.display.flip()
```
其中小球 gif 资源如下:
![](./test/ball.gif)
使用命令`python game.py`启动游戏,游戏启动后的画面如下
![](./test/ball_game.gif)
以下关于上述游戏代码说法错误的是?
## 答案
编写游戏只能使用 pygame
## 选项
### A
一个游戏程序,一般有一个死循环,反复绘制游戏画面
### B
许多游戏的渲染,都会采用双缓存机制,在背后的帧里面做渲染,再一次性刷新到前台帧
### C
在游戏循环里,可以检测各种交互事件,并响应事件,从而完成游戏玩家和游戏的互动,例如:退出游戏
\ No newline at end of file
{ {
"type": "code_options", "type": "code_options",
"author": "hello_tute", "author": "hello_tute",
"source": "flappybird_godot.md", "source": "learn.md",
"notebook_enable": false, "notebook_enable": false,
"exercise_id": "c821a21bb363442eab64f0aea124f3bd" "exercise_id": "c821a21bb363442eab64f0aea124f3bd"
} }
\ No newline at end of file
# 用Godot Engine开发一个FlappyBird小游戏
请先阅读本节讲义[《出道即巅峰,先做个盈利千万的小项目》](https://blog.csdn.net/ttm2d/article/details/104516098)
著名的网红游戏Flappy Bird出自以下哪位游戏制作人之手?
## 答案
[越南]阮哈东
## 选项
### A
[中国]开发游戏的老王
### B
[日本]宫本茂
### C
[美国]Cory Barlog
\ No newline at end of file
import sys
import pygame
pygame.init()
size = width, height = 320, 240
speed = [2, 2]
black = 0, 0, 0
screen = pygame.display.set_mode(size)
ball = pygame.image.load("ball.gif")
ballrect = ball.get_rect()
while 1:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
ballrect = ballrect.move(speed)
if ballrect.left < 0 or ballrect.right > width:
speed[0] = -speed[0]
if ballrect.top < 0 or ballrect.bottom > height:
speed[1] = -speed[1]
screen.fill(black)
screen.blit(ball, ballrect)
pygame.display.flip()
...@@ -25,12 +25,12 @@ ...@@ -25,12 +25,12 @@
{ {
"游戏开发入门": { "游戏开发入门": {
"keywords": [ "keywords": [
"游戏开发", "Godot",
"入门" "Flappy Bird"
], ],
"children": [], "children": [],
"keywords_must": [ "keywords_must": [
"起源" "Godot"
], ],
"keywords_forbid": [], "keywords_forbid": [],
"node_id": "game-8b79c45606e74fd48485bcdca73de39e" "node_id": "game-8b79c45606e74fd48485bcdca73de39e"
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册