- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
import pygame
from plane_sprites import *
class Pla neGame(object):
#初始化 开始游戏类方法 启动游戏
def __init__(self):
#创建窗口 时钟 调用创建精灵方法
self.scree n 二 pygame.display.set_mode(SCREEN_RECT.size) self.clock = pygame.time.Clock()
self.__create_spites()
pygame.time.set_timer(CREATE_ENEMY_EVENT, 1000) pygame.time.set_timer(HERO_FIRE_EVENT, 500)
#添加精灵
def __create_spites(self):
#
勻匕曰“丰三I 冃景精灵
bg1 = BackGroup()
bg2 = BackGroup( True)
self.back_gro und = pygame.sprite.Group(bg1, bg2)
#敌机精灵
p ww #
:丄 Nm/\m 一人 1/\1日1\1日一日丄 \/曰占0 == edAriueAe j!|Q
()jeAoeiuB0 —eiueoeueid
:linoeiue6Ad == edAviueAe ji
:0;e64ueAe eiue6Ad ui ;ueAe 」oj 驱撤用irx圉沃#
:(j|es)je|pueq_;ueAe — jep
场册#
(ojeqj|es)d no」9q!」ds?iue6Ad = dn oj6_ojeq\nes
()ojeH = ojeqjies
爸蘇髯篦#
()dn oj0e;!Jdseiue6Ad = dn oj6_ALueue\nes
en emy = En emy()
self.e nemy_group.add(e nemy)
elif eve nt.type == HERO_FIRE_EVENT:
self.hero.fire()
#按键
keys_pressed = pygame.key.get_pressed()
if keys_pressed[pygame.K_RIGHT]:
self.hero.speed = 2
elif keys_pressed[pygame.K_LEFT]:
self.hero.speed = -2
else :
self.hero.speed = 0
#碰撞检测
def __check_collide(self):
pygame.sprite.groupcollide(self.hero.bullets,
self.enemy_group, True, True)
en emys = pygame.sprite.spritecollide(self.hero,
self.e nemy_group, True)
if len(en emys) 0:
self.hero.kill()
PlaneGame.__Gameover()
#更新图象更新屏幕
def __update_sprites(self):
self.back_gro un d.update()
self.back_gro un d.draw(self.scree n)
self.e nemy_group.update()
self.e nemy_group.draw(self.scree n) self.hero_group.update() self.hero_group.draw(self.scree n) self.hero.bullets.update() self.hero.bullets.draw(self.scree n)
#游戏结束
@staticmethod
def __Gameover():
pygame.quit()
exit() def start_game(self):
结束
#时钟 监听 碰撞检测
更新图象 更新屏幕
self.clock.tick(FRAME_PER_SEC) self.__eve nt_ha ndler() self.__check_collide() self.__update_sprites() pygame.display.update()
if __name__ == __main__:
#创建对象
game = Pla neGame()
#启动游戏
while True :
game.start_game()
import ran dom
import pygame
#定义常量
SCREEN_RECT = pygame.Rect(O, 0, 480, 700)
FRAME_PER_SEC =
您可能关注的文档
- 青蓝工程(徒弟个人总结).docx
- 青苗调解协议书三篇.docx
- 青蓝工程主持词.docx
- 青蓝工程师傅个人计划.docx
- 青蓝工程徒弟成长计划18257.docx
- 静压桩机协议.docx
- 靖远职专2013年度工会活动计划.docx
- 静压桩施工规范及监理重点.docx
- 静压预应力管桩方案.docx
- 静态路由配置实验报告.docx
- 高一上期生物必背知识点.pdf
- 2025年铜陵市义安区文化和旅游局公开招聘编外聘用人员2名备考题库附答案解析.docx
- 锅炉与锅炉房课程设计 SHL10-125350-WⅠ(Ⅱ或Ⅲ)锅炉热力计算.pdf
- 苦难使然——浅谈艾青诗歌.pdf
- 财务管理学课后习题答案.pdf
- 2025年谢通门县纪委监委下属事业单位招聘笔试参考题库附答案.docx
- 2025新疆塔里木交建集团有限公司面向社会招聘18人笔试参考题库附答案.docx
- 2025年吴忠辅警招聘考试题库附答案.docx
- 2025年麻栗坡县行政审批和政务信息管理局下属事业单位招聘笔试模拟试题附答案.docx
- 2025年陵水黎族自治县应急管理局下属事业单位招聘笔试参考题库附答案.docx
原创力文档


文档评论(0)