Python第十一课-飞机大战2(课件)

2024-03-01
| 19页
| 111人阅读
| 5人下载
普通

内容正文:

少儿编程课 1 飞机大战2 本节我们来使用另一种方式绘制小方块,并使其能够在屏幕中左右移动 3 Pygame中的精灵 4 除了绘制飞机,还可以通过创建精灵的方式来生成飞机 1 精灵是游戏开发中的术语。简单来说,游戏中会动的东西都叫精灵 飞机 陨石 子弹 飞机大战中的精灵 2 对于本游戏来说,目前有以下几种精灵 使用精灵类来制作角色,会更加有利于对角色的管理以及功能的添加 Pygame中提供了精灵类,继承它就可以定义自己的精灵,下面我们定义飞机精灵 1 2 定义飞机精灵类Player,定义初始化方法 为了方便确定创建出的正方形的位置,设置一下它的中心和底的值, class Player(pygame.sprite.Sprite): def __init__(self): # 完成精灵的初始化 pygame.sprite.Sprite.__init__(self) # 初始化飞机精灵的图像,也就是长什么样 self.image = pygame.Surface((50, 50)) # 初始化飞机精灵图像的颜色 self.image.fill((0, 255, 0)) 这里的get_rect能够获取飞机的图像的长方形,也就是我们定义的长方形本身。 # 角色的长方形 self.rect = self.image.get_rect() # 设置长方形中心的x的值 self.rect.centerx = WIDTH / 2 # 设置长方形底的值 self.rect.bottom = HEIGHT - 10 通过设置rect的centerx值和bottom值,就能确定长方形所在的位置了。 这里将image属性设置为方块,那么飞机的表现形式就是一个方块。 飞机精灵类定义完成之后,画到屏幕中 1 2 添加黄色部分代码—创建player对象,并绘制到屏幕 # 定义玩家飞机对象 player = Player() running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: # 结束游戏 running = False elif event.type == pygame.KEYDOWN: if event.key == pygame.K_ESCAPE: # 结束游戏 running = False # 将玩家飞机绘制到屏幕上 screen.blit(player.image, player.rect) # 重绘游戏界面,相当于刷新一次 pygame.display.flip() pygame.quit 运行程序,可以看到屏幕中同样出现了绿色小方块 绘制到屏幕时,不需要指定位置,直接传入player.rect即可 只需要添加黄色部分代码 飞机左右移动 8 接下来我们让飞机能够移动,首先来分析 (0,0) 600 480 (0,600) (480,0) (480,600) X轴 Y轴 左右移动,改变的是角色的X坐标 当按下左移键 240 200 160 120 280 320 360 X坐标减少 当按下右移键 X坐标增加 然后设置角色的X轴坐标为当前坐标加上这个变量,在死循环中不断的更新位置就可以了 所以我们可以创建一个初始值为0,按下左键时设为负值、按下右键时设为正值的变量 在player类中增加update方法,更新飞机的位置 1 在首先初始化X轴速度并获得按键状态 2 根据不同按键,将X轴速度设为不同值 def update(self): self.speedx = 0 # 获取按键状态 keys = pygame.key.get_pressed() # 如果左移键被按下 if keys[pygame.K_LEFT]: # x轴上的速度设置为‐8 self.speedx = -8 # 如果右键被按下 if keys[pygame.K_RIGHT]: # x轴上的速度设置为8 self.speedx = 8 # 设置角色的x轴坐标 self.rect.x += self.speedx

资源预览图

Python第十一课-飞机大战2(课件)
1
Python第十一课-飞机大战2(课件)
2
Python第十一课-飞机大战2(课件)
3
Python第十一课-飞机大战2(课件)
4
Python第十一课-飞机大战2(课件)
5
Python第十一课-飞机大战2(课件)
6
所属专辑
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。