飛機大戰 之 遊戲框架的搭建

2021-10-23 20:38:12 字數 2567 閱讀 9130

方法

職責

__create_sprites(self)

建立所有精靈和精靈組 方法

職責

__event_handler(self)

事件監聽

__check_collide(self)

碰撞檢測 —— 子彈銷毀敵機、敵機撞毀英雄

__update_sprites(self)

精靈組更新和繪製

__game_over()

遊戲結束

import pygame

from hm_plane_sprits import

*class

planegame

(object):

def__init__

(self)

:print

("遊戲初始化"

)def

start_game

(self)

:print

("開始遊戲"

)if __name__ ==

'__main__'

: game = planegame(

) game.start_game(

)

def

__init__

(self)

:print

("遊戲初始化"

)# 1. 建立遊戲的視窗

self.screen = pygame.display.set_mode(

(480

,700))

# 2. 建立遊戲的時鐘

self.clock = pygame.time.clock(

)# 3. 呼叫私有方法,精靈和精靈組的建立

self.__create_sprites(

)def

__create_sprites

(self)

:pass

import pygame

# 遊戲螢幕大小

screen_rect = pygame.rect(0,

0,480,

700)

self.screen = pygame.display.set_mode(screen_rect.size)
def

start_game

(self)

:"""開始遊戲"""

print

("開始遊戲..."

)while

true

:# 1. 設定重新整理幀率

self.clock.tick(60)

# 2. 事件監聽

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(

)def

__check_collide

(self)

:"""碰撞檢測"""

pass

def__update_sprites

(self)

:"""更新精靈組"""

pass

@staticmethod

def__game_over()

:"""遊戲結束"""

print

("遊戲結束"

) pygame.quit(

) exit(

)

def

__create_sprites

(self)

:"""建立精靈組"""

# 背景組

self.back_group = pygame.sprite.group(

)# 敵機組

self.enemy_group = pygame.sprite.group(

)# 英雄組

self.hero_group = pygame.sprite.group(

)

def

__update_sprites

(self)

:"""更新精靈組"""

for group in

[self.back_group, self.enemy_group, self.hero_group]

:

group.update(

) group.draw(self.screen)

飛機大戰6 遊戲框架

目標 使用面相物件設計飛機大戰遊戲類 根據明確的職責,設計planegame類如下 提示根據職責封裝私有方法,可以避免某乙個方法的 寫得太過冗長 如果某乙個方法編寫的太長,既不好閱讀,也不好維護!方法 職責 create sprites self 建立所有精靈和精靈組 方法 職責 event han...

python飛機大戰筆記(6) 框架搭建

遊戲初始化 設定遊戲視窗 建立遊戲時鐘 建立精靈,精靈組 遊戲迴圈 設定重新整理幀率 事件監聽 碰撞檢測 更新 繪製精靈組 更新螢幕顯示 使用物件導向設計飛機大戰遊戲類 明確主程式職責 1 遊戲初始化 2 遊戲迴圈 主程式類 plane main 遊戲主程式 1 風轉著遊戲類 2 建立遊戲物件 3 ...

飛機大戰遊戲詳解

private void logic else if y2 mysu ceview.height public void draw canvas canvas,paint paint public void run 還要記得用 裁剪飛機 public void myplane canvas canv...