飞机大战Python程序.docx

上传人:b****7 文档编号:15936229 上传时间:2023-07-09 格式:DOCX 页数:6 大小:15.52KB
下载 相关 举报
飞机大战Python程序.docx_第1页
第1页 / 共6页
飞机大战Python程序.docx_第2页
第2页 / 共6页
飞机大战Python程序.docx_第3页
第3页 / 共6页
飞机大战Python程序.docx_第4页
第4页 / 共6页
飞机大战Python程序.docx_第5页
第5页 / 共6页
飞机大战Python程序.docx_第6页
第6页 / 共6页
亲,该文档总共6页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

飞机大战Python程序.docx

《飞机大战Python程序.docx》由会员分享,可在线阅读,更多相关《飞机大战Python程序.docx(6页珍藏版)》请在冰点文库上搜索。

飞机大战Python程序.docx

飞机大战Python程序

importpygame

fromplane_spritesimport*

classPlaneGame(object):

#初始化开始游戏类方法启动游戏

def__init__(self):

#创建窗口时钟调用创建精灵方法

self.screen=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):

#背景精灵

bg1=BackGroup()

bg2=BackGroup(True)

self.back_ground=pygame.sprite.Group(bg1,bg2)

#敌机精灵

self.enemy_group=pygame.sprite.Group()

#英雄精灵

self.hero=Hero()

self.hero_group=pygame.sprite.Group(self.hero)

#监听

def__event_handler(self):

#关闭×退出游戏

foreventinpygame.event.get():

ifevent.type==pygame.QUIT:

PlaneGame.__Gameover()

elifevent.type==CREATE_ENEMY_EVENT:

#创建敌机d

enemy=Enemy()

self.enemy_group.add(enemy)

elifevent.type==HERO_FIRE_EVENT:

self.hero.fire()

#按键

keys_pressed=pygame.key.get_pressed()

ifkeys_pressed[pygame.K_RIGHT]:

self.hero.speed=2

elifkeys_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)

enemys=pygame.sprite.spritecollide(self.hero,self.enemy_group,True)

iflen(enemys)>0:

self.hero.kill()

PlaneGame.__Gameover()

#更新图象更新屏幕

def__update_sprites(self):

self.back_ground.update()

self.back_ground.draw(self.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)

#游戏结束

staticmethod

def__Gameover():

pygame.quit()

exit()

defstart_game(self):

#时钟监听碰撞检测更新图象更新屏幕结束

self.clock.tick(FRAME_PER_SEC)

self.__event_handler()

self.__check_collide()

self.__update_sprites()

pygame.display.update()

if__name__=="__main__":

#创建对象

game=PlaneGame()

#启动游戏

whileTrue:

game.start_game()

importrandom

importpygame

#定义常量

SCREEN_RECT=pygame.Rect(0,0,480,700)

FRAME_PER_SEC=60

CREATE_ENEMY_EVENT=pygame.USEREVENT

HERO_FIRE_EVENT=pygame.USEREVENT+1

classGameSprite(pygame.sprite.Sprite):

def__init__(self,image_name,speed=1):

super().__init__()

self.image=pygame.image.load(image_name)

self.rect=self.image.get_rect()

self.speed=speed

defupdate(self):

self.rect.y+=self.speed

classBackGroup(GameSprite):

def__init__(self,is_alt=False):

super().__init__(".\images\huibeijing.png")

ifis_alt:

self.rect.y=-self.rect.height

#背景精灵

defupdate(self):

super().update()

ifself.rect.y>=SCREEN_RECT.height:

self.rect.y=-self.rect.height

classEnemy(GameSprite):

#随机精灵

#调用父类,图片

def__init__(self):

super().__init__(".\images\diji1.png")

#随机速度

self.speed=random.randint(1,3)

#随机位置

self.rect.bottom=0

max_x=SCREEN_RECT.width-self.rect.width

self.rect.x=random.randint(0,max_x)

defupdate(self):

#调用父类

super().update()

#判断是否删除

ifself.rect.y>=SCREEN_RECT.height:

self.kill()

def__del__(self):

#print("敌机挂了")

pass

classHero(GameSprite):

#英雄图片

def__init__(self):

super().__init__(".\images\eiji1.png",0)

self.rect.centerx=SCREEN_RECT.centerx

self.rect.bottom=SCREEN_RECT.bottom-120

self.bullets=pygame.sprite.Group()

defupdate(self):

self.rect.x+=self.speed

ifself.rect.x<0:

self.rect.x=0

elifself.rect.right>SCREEN_RECT.right:

self.rect.right=SCREEN_RECT.right

deffire(self):

foriin(0,1,2):

bullet=Bullet()

bullet.rect.bottom=self.rect.y-i*20

bullet.rect.centerx=self.rect.centerx

self.bullets.add(bullet)

classBullet(GameSprite):

def__init__(self):

super().__init__(".\images\zidan1.png",-2)

defupdate(self):

super().update()

ifself.rect.bottom<0:

self.kill()

def__del__(self):

pass

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2