Pygame Zero入门介绍
Pygame Zero是一个简化版的Pygame游戏框架,旨在为初学者提供一个易于使用的Python游戏开发平台。它包括一系列易于使用的函数和变量,可用于创建2D游戏,例如处理键盘输入、鼠标输入、图形绘制、音频播放以及碰撞检测等。Pygame Zero还包括一些内置对象和函数,例如游戏循环、窗口管理和图像加载,使游戏制作变得更加简单。
Pygame Zero基于Pygame库,使用Python编写。它不需要额外的安装,只需要安装Python和Pygame即可开始使用。Pygame Zero提供了一个强大而易于使用的游戏开发平台,旨在使游戏制作变得更加容易和有趣。
Hello World例子
好的,以下是一个使用Pygame Zero创建窗口并在窗口中绘制一个简单图形的示例程序:
import pgzrun
WIDTH = 500
HEIGHT = 500
def draw():
screen.fill("white")
screen.draw.circle((250, 250), 50, "red")
pgzrun.go()
运行以上代码,您将看到一个具有500x500像素大小的窗口,并在其中绘制一个红色的圆形。在这个示例程序中,我们导入了pgzrun模块,并使用了它的go()函数来启动Pygame Zero游戏循环。我们定义了窗口的宽度和高度,并在draw()函数中绘制了一个红色的圆形,然后用白色填充了整个屏幕。
让圆形动起来
以下是一个使用Pygame Zero让圆形动起来的示例程序:
import pgzrun
WIDTH = 500
HEIGHT = 500
x = 250
y = 250
r = 50
dx = 5
dy = 5
def update():
global x, y, dx, dy
x += dx
y += dy
if x + r > WIDTH or x - r < 0:
dx = -dx
if y + r > HEIGHT or y - r < 0:
dy = -dy
def draw():
screen.fill("white")
screen.draw.circle((x, y), r, "red")
pgzrun.go()
运行以上代码,您将看到一个具有500x500像素大小的窗口,并在其中绘制了一个红色的圆形。在这个示例程序中,我们定义了圆形的初始位置和半径,并设置了它们的初始速度。在update()函数中,我们根据速度更新圆形的位置,并检查它是否碰到了窗口的边缘,如果碰到了,就调换速度方向。在draw()函数中,我们绘制红色圆形,并用白色填充整个屏幕。这样,在Pygame Zero的游戏循环中,圆形将不断地在窗口中移动,并在碰到边缘时反弹。
加入鼠标操作
以下是一个使用Pygame Zero增加按钮,并且点击后将红色按钮变成绿色的示例程序:
import pgzrun
WIDTH = 500
HEIGHT = 500
x = 250
y = 250
r = 50
dx = 5
dy = 5
is_pressed = False
def on_mouse_down(pos, button):
global is_pressed
if button == mouse.LEFT:
is_pressed = True
def on_mouse_up(pos, button):
global is_pressed
if button == mouse.LEFT:
is_pressed = False
def update():
global x, y, dx, dy, is_pressed
if is_pressed:
color = "green"
else:
color = "red"
x += dx
y += dy
if x + r > WIDTH or x - r < 0:
dx = -dx
if y + r > HEIGHT or y - r < 0:
dy = -dy
def draw():
screen.fill("white")
screen.draw.filled_circle((x, y), r, color)
pgzrun.go()
运行以上代码,您将看到一个具有500x500像素大小的窗口,并在其中绘制了一个红色的圆形。在这个示例程序中,我们增加了两个鼠标事件处理函数,来检测鼠标左键是否按下或释放。我们定义了一个is_pressed变量,用于存储鼠标左键的状态。在update()函数中,如果鼠标左键被按下,则将圆形颜色设置为绿色,否则设置为红色。在draw()函数中,我们绘制圆形,并根据is_pressed变量来设置圆形的颜色。这样,在Pygame Zero的游戏循环中,当鼠标左键按下时,红色圆形会变成绿色。