- 运行结果
- 代码示例
python
import pygame, sys
pygame.init()
保存 窗口大小
width, height = 600, 400
screen = pygame.display.set_mode([width, height])
设置窗口标题
pygame.display.set_caption("愤怒的小鸟")
加载小鸟素材
player = pygame.image.load("xiaoniao.png")
获取图像矩形位置
rect = player.get_rect()
声明XY运动速度的列表
speed = [3, 2]
left_head = pygame.transform.flip(player, True, False)
right_head = player
无限循环
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
player = left_head # 小鸟的头向左
speed = [-2, 1]
if event.key == pygame.K_RIGHT:
player = right_head # 小鸟的头向右
speed = [2, 1]
if event.key == pygame.K_UP:
player = left_head # 小鸟的头向左
speed = [2, -1]
if event.key == pygame.K_DOWN:
player = right_head # 小鸟的头向左
speed = [2, 1]
rect = rect.move(speed)
if rect.right > width or rect.left < 0:
将图片水平翻转,反转对象,是否水平反转,是否垂直翻转
player = pygame.transform.flip(player, True, False)
speed[0] = -speed[0]
if rect.bottom > height or rect.top < 0:
speed[1] = -speed[1]
screen.fill((255, 255, 255))
screen.blit(player, rect)
pygame.display.update()
pygame.time.delay(10)
- 知识点总结
pygame库的使用:
pygame.init():初始化pygame库。
pygame.display.set_mode():创建游戏窗口。
pygame.display.set_caption():设置窗口标题。
pygame.image.load():加载图像文件。
pygame.transform.flip():翻转图像。
pygame.display.update():更新屏幕显示。
pygame.time.delay():延迟一段时间(毫秒)。
图像和矩形对象:
使用pygame.image.load()加载图像,返回一个Surface对象。
使用get_rect()方法获取图像的矩形对象,用于确定图像的位置和大小。
事件处理:
使用pygame.event.get()获取事件列表。
通过检查事件的type属性,可以处理不同类型的事件,如键盘按键(pygame.KEYDOWN)、鼠标移动、点击等。
动画和移动:
通过更新矩形对象的位置来实现图像的移动。
使用列表来存储X和Y方向的移动速度。
当图像移动到窗口边界时,通过反转速度方向来实现反弹效果。
游戏逻辑:
可以使用pygame中的pygame.sprite.Sprite类来管理游戏对象,并使用pygame.sprite.Group来管理多个游戏对象的集合。
物理引擎和碰撞检测(高级话题):
在更复杂的游戏中,可能需要使用物理引擎来处理物体的运动、碰撞等。
可以使用pymunk等库来实现物理模拟和碰撞检测。
UI和音效(高级话题):
可以使用pygame的pygame.mixer模块来处理音效。
可以使用pygame的pygame.font模块来绘制文本。
可以使用pygame的pygame.draw模块来绘制简单的形状和图形。