學習如何開發《外星人入侵》小遊戲 2

2021-10-10 13:34:40 字數 1814 閱讀 1498

在開發《外星人入侵》小遊戲的過程中,我們要不斷給遊戲新增新功能,通常要引入一些新設定,那我們需要建立乙個類來儲存所有設定,這樣可以避免我們在複雜的**中到處新增新設定。

通過建立乙個類來儲存所有設定,當要修改小遊戲的某些元素時也僅僅只是修改該類中的值就好。

class settings:

'''儲存遊戲《外星人入侵》中所有設定的類'''

def __init__(self):

'''初始化遊戲的設定'''

#初始化螢幕設定

self.screen_width=1200

self.screen_height=800

self.bg_color=(230,230,230)

在這次示例中,我們新增了乙個新類,名為settings。

值得注意的一點是我們需要在主程式檔案中匯入settings類,因此我們需要修改主程式中某些**,除了修改**以外,還需將主程式檔案和此次檔案放在同乙個資料夾下,否則無法匯入。

import sys

import pygame

from settings import settings

class alieninvasion:

'''管理資源和行為的類'''

def __init__(self):

'''初始化遊戲並建立遊戲資源'''

pygame.init()

self.settings=settings()

self.screen=pygame.display.set_mode(

(self.settings.screen_width,self.settings.screen_height))

pygame.display.set_caption("alieninvasion")

def run_game(self):

'''開始遊戲的主迴圈'''

while true:

#監視鍵盤和滑鼠

for event in pygame.event.get():

if event.type==pygame.quit:

sys.exit()

#每次迴圈時都重繪螢幕

self.screen.fill(self.settings.bg_color )

#讓最近繪製的螢幕可見

pygame.display.flip()

if __name__=='__main__':

#建立遊戲例項並執行遊戲

ai=alieninvasion()

ai.run_game()

在主程式檔案中,我們使用**行from settings import settings從檔名settings.py中匯入settings類,並在方法__init__中呼叫pygame.init(),再建立乙個settings例項並將其賦給self.settings。

**行self.screen=pygame.display.set_mode(

self.settings.screen_width,self.settings.screen_height))是表示建立螢幕屬性時,使用self.settings的屬性screen_width和screen_height。

**行self.screen.fill(self.settings.bg_color )是填充螢幕背景色時,也使用了settings的屬性bg_color。

bg_color=(230,230,230)是填充背景色為灰色的乙個狀態。

pygame入門小遊戲(外星人入侵(7) )

我們來移動外星飛船,思想是飛船左右移動,碰到螢幕邊緣後,然後會向下移動 在alien.py中新增方法update def update self 向右移動外星飛船 self.x 1 self.rect.x self.x 然後在主迴圈中更新外星人的位置 ck.update aliens aliens ...

外星人入侵

今天是乙個週末,宿舍的人全部都出去玩了,而我因為太懶乙個人留在了宿舍,連床都不起,吃飯靠的是點外賣。不過,為了好玩,我跟著書本學習打了乙個2d小遊戲,並加入了一點自己的東西。一 遊戲頁面 剛開始我把所有的遊戲螢幕設定都放在了下面 裡,這使得 看起來非常長,和雜亂,所以為了使遊戲方便擴充套件和整個 邏...

Pygame 外星人入侵(7)外星人壓境

二 更加合理地移動 三 小結 在之前的博文中,實現了在螢幕上繪製一大群外星人,現在我們想讓這群外星人動起來,它們的移動遵循著一定的規律。我們首先要實現的是,如何讓一群外星人一起向螢幕右側移動。遊戲引數性質的變數統一存放在 設定模組中的設定類中 6 外星人的屬性 6。1 外星人移動的速度 self.a...