Python少儿编程课程体系Python进阶11-飞机大战2+12-飞机大战3.pptxVIP

Python少儿编程课程体系Python进阶11-飞机大战2+12-飞机大战3.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

Loremipsumdolorsitamet,consectetueradipiscingelit.Aeneancommodoligulaegetdolor.Cumsociisnatoquepenatibusetmagnisdisparturientmontes,nasceturridiculusmus.

飞机大战2

本节我们来使用另一种方式绘制小方块,并使其能够在屏幕中左右移动

Pygame中的精灵

除了绘制飞机,还可以通过创建精灵的方式来生成飞机精灵是游戏开发中的术语。简单来说,游戏中会动的东西都叫精灵12对于本游戏来说,目前有以下几种精灵飞机大战中的精灵飞机子弹陨石使用精灵类来制作角色,会更加有利于对角色的管理以及功能的添加

Pygame中提供了精灵类,继承它就可以定义自己的精灵,下面我们定义飞机精灵为了方便确定创建出的正方形的位置,设置一下它的中心和底的值,12定义飞机精灵类Player,定义初始化方法classPlayer(pygame.sprite.Sprite):def__init__(self):#完成精灵的初始化#角色的长方形self.rect=self.image.get_rect()#设置长方形中心的x的值pygame.sprite.Sprite.__init__(self)#初始化飞机精灵的图像,也就是长什么样self.image=pygame.Surface((50,50))#初始化飞机精灵图像的颜色self.rect.centerx=WIDTH/2设置长方形底的值#self.rect.bottom=HEIGHT-10self.image.fill((0,255,0))这里将image属性设置为方块,那么飞机的表现形式就是一个方块。这里的get_rect能够获取飞机的图像的长方形,也就是我们定义的长方形本身。通过设置rect的centerx值和bottom值,就能确定长方形所在的位置了。

飞机精灵类定义完成之后,画到屏幕中12添加黄色部分代码—创建player对象,并绘制到屏幕运行程序,可以看到屏幕中同样出现了绿色小方块#定义玩家飞机对象player=Player()running=Truewhilerunning:foreventinpygame.event.get():ifevent.type==pygame.QUIT:#结束游戏running=Falseelifevent.type==pygame.KEYDOWN:ifevent.key==pygame.K_ESCAPE:#结束游戏running=False#将玩家飞机绘制到屏幕上screen.blit(player.image,player.rect)#重绘游戏界面,相当于刷新一次pygame.display.flip()pygame.quit绘制到屏幕时,不需要指定位置,直接传入player.rect即可

飞机左右移动

接下来我们让飞机能够移动,首先来分析(480,0)X(0,0)轴左右移动,改变的是角色的X坐标当按下右移键当按下左移键所以我们可以创建一个初始值为0,按下左键时设为负值、按下右键时设为正值的变量600120160200240280320360X坐标减少X坐标增加然后设置角色的X轴坐标为当前坐标加上这个变量,在死循环中不断的更新位置就可以了(480,600)(0,600)480Y轴

在player类中增加update方法,更新飞机的位置12在首先初始化X轴速度并获得按键状态根据不同按键,将X轴速度设为不同值#如果左移键被按下ifkeys[pygame.K_LEFT]:#x轴上的速度设置为‐8self.speedx=-8defupdate(self):self.speedx=0#获取按键状态keys=pygame.key.get_pressed()#如果右键被按下ifkeys[pygame.K_RIGHT]:#x轴上的速度设置为8self.speedx=8最后,将角色的位置设置为当前坐标加上按键之后的速度3#设置角色的x轴坐标self.rect.x+=self.speedx

在死循环中调用update方法,然后运行程序,结果如下:可以看到,屏幕下方出现了一块绿色区域,这显然不是我们想要的移动效果。这是因为在每次绘制飞机时,并没有绘制屏幕,导致绘制飞机后的界面又重新做了屏幕要解决这个问题,只需要每次绘制飞机的时候也绘制背景即可,绘制背景只需要给一个背景颜色。

为屏幕添加背景色再次运行#绘制屏幕的背景颜色screen.fill((0,0,0))现在飞机虽

文档评论(0)

zhixingtianxia + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档