



版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.importpygamefrom plane_spritesimport*classPlaneGame(object ):# 初始化开始游戏类方法启动游戏def_init_( self ):# 创建窗口时钟调用创建精灵方法self ._create_spites()1000)500)# 添加精灵def_create_spites(self ):# 背景精灵bg1 = BackGroup()bg2 = BackGroup(True )# 敌机精灵1/10.# 英雄精灵self .hero = Hero()self .hero)# 监听def_event_handler(self ):# 关闭&
2、#215;退出游戏foreventinifevent.type = pygame.QUIT:PlaneGame._Gameover()elifevent.type = CREATE_ENEMY_EVENT:# 创建敌机 d2/10.enemy = Enemy()self .enemy_group.add(enemy)elifevent.type = HERO_FIRE_EVENT:self .hero.fire()# 按键ifkeys_pressedpygame.K_RIGHT:self .hero.speed =2elifkeys_pressedpygame.K_LEFT:self.hero
3、.speed = -2else :self.hero.speed =0#碰撞检测def_check_collide(self ):self .hero.bullets,self .enemy_group,True ,True )self .hero,self .enemy_group,True )iflen (enemys) >0:self .hero.kill()3/10.PlaneGame._Gameover()# 更新图象 更新屏幕def _update_sprites( self):self.back_ground.update()self.back_ground.draw(se
4、lf.screen)self.enemy_group.update()self .enemy_group.draw( self .screen)self.hero_group.update()self.hero_group.draw(self.screen)self.hero.bullets.update()self.hero.bullets.draw(self .screen)# 游戏结束staticmethoddef_Gameover():pygame.quit()exit ()defstart_game( self ):4/10.# 时钟监听碰撞检测更新图象更新屏幕结束self .clo
5、ck.tick(FRAME_PER_SEC)self ._event_handler()self ._check_collide()self ._update_sprites()if_name_ = "_main_" :#创建对象game = PlaneGame()# 启动游戏while True:game.start_game()5/10.importrandomimportpygame# 定义常量SCREEN_RECT = pygame.Rect(0,0,480,700)FRAME_PER_SEC60=CREATE_ENEMY_EVENT = pygame.USEREV
6、ENTHERO_FIRE_EVENT = pygame.USEREVENT1 +classdef_init_( self , image_name, speed =1):super (). _init_()self .rect =self .image.get_rect()self .speed = speeddefupdate( self ):self .rect.y +=self .speed6/10.classBackGroup(GameSprite):def_init_( self , is_alt =False ):super (). _init_( ".imageshui
7、beijing.png")ifis_alt:self .rect.y = -self .rect.height# 背景精灵defupdate( self ):super ().update()ifself .rect.y >= SCREEN_RECT.height:self .rect.y = -self .rect.heightclassEnemy(GameSprite):# 随机精灵# 调用父类,图片def_init_( self ):super (). _init_( ".imagesdiji1.png")# 随机速度self .speed = ran
8、dom.randint(1, 3)#随机位置7/10.self .rect.bottom =0max_x = SCREEN_RECT.width - self .rect.widthself .rect.x = random.randint(0, max_x)defupdate( self ):# 调用父类super ().update()#判断是否删除ifself .rect.y >= SCREEN_RECT.height:self .kill()def_del_ ( self ):# print("敌机挂了 ")passclassHero(GameSprite):
9、# 英雄图片def_init_( self ):8/10.super (). _init_ ( ".imageseiji1.png",0)self.rect.centerx = SCREEN_RECT.centerxself.rect.bottom = SCREEN_RECT.bottom -120self.bullets = pygame.sprite.Group()defupdate( self ):self.rect.x +=self .speedif self.rect.x <0:self.rect.x =0elifself.rect.right > SCREEN_RECT.right:self.rect.right = SCREEN_RECT.rightdeffire(self):foriin(0, 1,2):bullet = Bullet()bullet.rect.bottom =self.rect.y - i *20bullet.rect.centerx =self.rect.centerxself .bullets.add(bullet)classBullet(GameSprite):def_init_( self ):sup
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB31/T 744-2022智能电网储能系统并网装置测试技术规范
- DB31/T 682-2013古树名木和古树后续资源养护技术规程
- DB31/T 666-2012免煅烧脱硫石膏基衍生产品(粉刷砂浆、石膏砌块和土壤固化剂)应用技术规程
- DB31/T 596-2021城市轨道交通合理通风技术管理要求
- DB31/T 1322-2021生鲜电商配送货服务规范
- DB31/T 1235-2020高层民用建筑消防安全管理要求
- DB31/T 1185-2019特种设备双重预防体系要求
- DB31/T 1048-2017上海品质评价通用要求
- DB31/T 1022-2016乘用车空气净化器净化性能测定方法
- CAB 1011-2012汽车地毯的技术要求
- GB/T 11352-2009一般工程用铸造碳钢件
- 多层板来料检验报告
- GA/T 916-2010图像真实性鉴别技术规范图像真实性评价
- 一对一个性化辅导方案计划
- 公路建设项目施工单位工程质量责任登记表
- 老年社会保障总结课件
- 三级动火证 模板
- 评语大全之国家自然科学基金评语
- 电瓶车每月检查表
- 兽药监管法规解读课件
- 外贸业务员KPI考核量表
评论
0/150
提交评论