資源簡介
用python寫的一個飛機大戰(zhàn)的項目,功能比較簡單,就是課上講的內(nèi)容,主要是使用機靈組控制敵機和英雄飛機

代碼片段和文件信息
import?pygame
from?plan_sprites?import?*
class?PlaneGame(object):
????def?__init__(self):
????????print(“游戲初始化“)
????????#?創(chuàng)建游戲窗口
????????self.screen?=?pygame.display.set_mode(SCREEN_RECT.size)
????????#?創(chuàng)建游戲時鐘
????????self.clock?=?pygame.time.Clock()
????????#?調(diào)用私有方法,創(chuàng)建精靈和精靈組
????????self.__create_sprites()
????????#?設(shè)置定時器事件,每隔一秒創(chuàng)建一個敵機
????????pygame.time.set_timer(CREATE_ENEMY_EVENT?1000)
????????#?每隔0.5秒,英雄發(fā)射一次子彈
????????pygame.time.set_timer(HERO_FIRE_EVENT?500)
????def?__create_sprites(self):
????????#?背景精靈組
????????bg1?=?Background(False)
????????bg2?=?Background(True)
????????self.back_group?=?pygame.sprite.Group(bg1?bg2)
????????#?敵機精靈組
????????self.enemy_group?=?pygame.sprite.Group()
????????#?創(chuàng)建英雄飛機精靈和精靈組
????????self.hero?=?Hero()
????????self.hero_group?=?pygame.sprite.Group(self.hero)
????def?start_game(self):
????????print(“游戲開始“)
????????while?True:
????????????#?1.設(shè)置刷新幀率
????????????self.clock.tick(frame_PER_SEC)
????????????#?2.事件監(jiān)聽
????????????self.__event_handler()
????????????#?3.碰撞檢測
????????????self.__check_collide()
????????????#?4.更新、繪制精靈組
????????????self.__update_sprites()
????????????#?5.更新顯示
????????????pygame.display.update()
????def?__event_handler(self):
????????for?event?in?pygame.event.get():
????????????if?event.type?==?pygame.QUIT:
????????????????PlaneGame.__game_over()
????????????elif?event.type?==?pygame.USEREVENT:
????????????????#?print(“敵機出場“)
????????????????#?創(chuàng)建敵機精靈
????????????????enemy?=?Enemy()
????????????????#?將敵機精靈添加到精靈組
????????????????self.enemy_group.add(enemy)
????????????#?elif?event.type?==?pygame.KEYDOWN?and?event.key?==?pygame.K_RIGHT:
????????????#?????print(“向右移動“)
????????????elif?event.type?==?HERO_FIRE_EVENT:
????????????????self.hero.fire()
????????#?使用鍵盤提供的方法獲取鍵盤按鍵-按鍵元組
????????keys_pressed?=?pygame.key.get_pressed()
????????#?判斷元組中對應(yīng)的按鍵索引值?是否為1
????????if?keys_pressed[pygame.K_RIGHT]:
????????????self.hero.speed?=?2
????????elif?keys_pressed[pygame.K_LEFT]:
????????????self.hero.speed?=?-2
????????elif?keys_pressed[pygame.K_UP]:
????????????self.hero.speed_y?=?-2
????????elif?keys_pressed[pygame.K_DOWN]:
????????????self.hero.speed_y?=?2
????????else:
????????????self.hero.speed?=?0
????????????self.hero.speed_y?=?0
????def?__check_collide(self):
????????#?1.子彈和敵機相撞
????????pygame.sprite.groupcollide(self.hero.bullets?self.enemy_group?True?True)
????????#?2.1.敵機和英雄相撞(相撞后會生成一個列表,列表里是被撞的敵機)
????????enemies?=?pygame.sprite.spritecollide(self.hero?self.enemy_group?True)
????????#?2.2.判斷列表是否有內(nèi)容
????????if?len(enemies)?>?0:
????????????self.hero.kill()
????????????PlaneGame.__game_over()
????def?__update_sprites(self):
????????self.back_group.update()
????????self.back_group.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()
??
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-03-01?09:44??飛機大戰(zhàn)\
?????目錄???????????0??2019-02-28?21:12??飛機大戰(zhàn)\.idea\
?????目錄???????????0??2019-02-26?10:16??飛機大戰(zhàn)\.idea\inspectionProfiles\
?????文件?????????294??2019-02-26?10:14??飛機大戰(zhàn)\.idea\misc.xm
?????文件?????????283??2019-02-26?10:14??飛機大戰(zhàn)\.idea\modules.xm
?????文件???????25974??2019-02-28?21:12??飛機大戰(zhàn)\.idea\workspace.xm
?????文件?????????408??2019-02-26?10:15??飛機大戰(zhàn)\.idea\飛機大戰(zhàn).iml
?????目錄???????????0??2019-02-26?10:18??飛機大戰(zhàn)\Images\
?????文件???????37751??2019-02-28?16:08??飛機大戰(zhàn)\Images\background.png
?????文件????????3004??2014-07-15?20:32??飛機大戰(zhàn)\Images\bullet1.png
?????文件????????2990??2014-07-17?20:54??飛機大戰(zhàn)\Images\bullet2.png
?????文件????????5499??2013-08-31?09:41??飛機大戰(zhàn)\Images\enemy1.png
?????文件????????5797??2013-08-31?09:35??飛機大戰(zhàn)\Images\enemy1_down1.png
?????文件????????6181??2013-08-31?09:36??飛機大戰(zhàn)\Images\enemy1_down2.png
?????文件????????7361??2013-08-31?09:37??飛機大戰(zhàn)\Images\enemy1_down3.png
?????文件????????4199??2013-08-31?09:39??飛機大戰(zhàn)\Images\enemy1_down4.png
?????文件????????6567??2014-07-17?15:40??飛機大戰(zhàn)\Images\game_again.png
?????文件????????6222??2014-07-17?15:41??飛機大戰(zhàn)\Images\game_continue.png
?????文件????????6950??2014-07-17?15:43??飛機大戰(zhàn)\Images\game_over.png
?????文件????????5316??2013-08-31?09:40??飛機大戰(zhàn)\Images\game_pause_nor.png
?????文件????????5254??2013-08-31?09:41??飛機大戰(zhàn)\Images\game_pause_pressed.png
?????文件????????4635??2013-09-02?18:36??飛機大戰(zhàn)\Images\game_resume_nor.png
?????文件????????4734??2013-09-02?18:35??飛機大戰(zhàn)\Images\game_resume_pressed.png
?????文件???????15017??2013-08-31?09:22??飛機大戰(zhàn)\Images\hero1.png
?????文件???????14817??2013-08-31?09:23??飛機大戰(zhàn)\Images\hero2.png
?????文件???????17481??2013-08-31?09:24??飛機大戰(zhàn)\Images\hero_blowup_n1.png
?????文件???????18493??2013-08-31?09:24??飛機大戰(zhàn)\Images\hero_blowup_n2.png
?????文件???????19725??2013-08-31?09:25??飛機大戰(zhàn)\Images\hero_blowup_n3.png
?????文件????????5628??2013-08-31?09:26??飛機大戰(zhàn)\Images\hero_blowup_n4.png
?????文件????????3723??2019-02-28?21:10??飛機大戰(zhàn)\plane_main.py
?????文件????????3559??2019-02-28?20:59??飛機大戰(zhàn)\plan_sprites.py
............此處省略2個文件信息
評論
共有 條評論