Python外星人入侵完整代碼和註釋(六)

六、創建一個外星人類,命名爲alien.py

1.創建第一個外星人

(1)  創建Alien類

alien.py :創建外星人類

方法__init__() :初始化外星人並設置其起始位置 ,加載外星人圖像,並設置rect屬性 ,每個外星人最初都在屏幕左上角附近(rect.x,rect.y) ,存儲外星人的準確位置(self.x)

方法blitme() :在指定位置繪製外星人(screen.blit())

(2)創建Alien實例 :在主程序裏創建一個Alien實例

(3)讓外星人出現在屏幕上:調用方法blitme()

2.創建一羣外星人

(1)確定一行可容納多少外星人

(2)創建多行外星人

(3)創建外星人羣

(4)方法creat_fleet() :創建外星人並將其放在當前行

(5)添加行:方法get_number_rows() :計算屏幕可容納多少行外星人。

3.讓外星人羣移動

(1)向右移動外星人

(2)創建表示外星人移動方向的標誌:添加fleet_drop_speed屬性(外星人下移速度)。

(3)方法check_edges() :檢查外星人是否撞到了屏幕左右邊緣。

(4)方法check_fleet_direction() :向下移動外星人羣並改變移動方向

(5)方法update_aliens() :更新外星人位置

代碼如下

import pygame
from pygame.sprite import Sprite
class Alien(Sprite):
    #表示單個外星人的類
    def __init__(self,ai_settings,screen):
        #初始化外星人並設置其起始位置
        super(Alien,self).__init__()
        self.screen = screen
        self.ai_settings = ai_settings
        #加載外星人圖像,並設置其rect屬性
        self.image = pygame.image.load('images/alien.bmp')
        self.rect = self.image.get_rect()

        #每個外星人最初都在屏幕左上角附近
        self.rect.x = self.rect.width
        self.rect.y = self.rect.height

        #存儲外星人的準確位置
        self.x = float(self.rect.x)

    def check_edges(self):
        #如果外星人位於屏幕邊緣,就返回Ture
        screen_rect = self.screen.get_rect()
        if self.rect.right >= screen_rect.right:
            return True
        elif self.rect.left <= 0:
            return True


    def update(self):
        #向左或向右移動外星人
        self.x += (self.ai_settings.alien_speed_factor * self.ai_settings.fleet_direction)
        self.rect.x =self.x

    def blitme(self):
        #在指定位置繪製外星人
        self.screen.blit(self.image,self.rect)

 點擊鏈接 https://blog.csdn.net/Ljt101222/article/details/81253636 進入 Python外星人入侵完整代碼和註釋(七)

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章