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

五、射擊,創建一個bullet.py文件

1、添加子彈設置

settings.py :__init__()方法儲存子彈設置,包括bullet_width,bullet_height,bullet_color,bullet_speed_factor

2、創建Bullet類

它是一個對飛船發射的子彈進行管理的類,繼承了我們從模塊pygame.sprite中導入的sprite類,通過使用精靈將遊戲中相關的元素編組,進而同時操作編組中的所有元素。

bullet.py:__init__()方法: 傳遞ai_settings,screen,ship實例, 調用super繼承Sprite 創建子彈屬性rect 將子彈的centerx設置爲飛船的centerx, 表示子彈的rect的top屬性設置爲飛船的rect的top屬性,讓子彈看起來像是從飛船中射出的 ,將子彈的y座標存儲爲小數值,以便能夠微調子彈的速度 ,將子彈的顏色和速度設置粉筆存儲在self.color和self.speed_factor中。

方法update(): 向上移動子彈 更新表示子彈位置的小數值 更新表示子彈的rect的位置。

方法draw_bullet(): 在屏幕上繪製子彈pygame.draw.rect()。

 

代碼如下

import pygame
from pygame.sprite import Sprite
class Bullet(Sprite):
    #一個對飛船發射子彈管理的類
    def __init__(self,ai_settings,screen,ship):
        #在飛船所在處的位置創建一個子彈對象
        super(Bullet,self).__init__()
        self.screen = screen

        #在(0,0)處創建一個表示子彈的矩形,再設置正確的位置
        self.rect = pygame.Rect(0,0,ai_settings.bullet_width,ai_settings.bullet_height)
        self.rect.centerx = ship.rect.centerx
        self.rect.top = ship.rect.top
        #存儲用小數表示的子彈位置
        self.y = float(self.rect.y)
        self.color = ai_settings.bullet_color
        self.speed_factor = ai_settings.bullet_speed_factor
    def update(self):
        #向上移動子彈
        #更新表示子彈位置的小數值
        self.y -= self.speed_factor
        #更新表示子彈的rect的位置
        self.rect.y = self.y
    def draw_bullet(self):
        #在屏幕上繪製子彈
        pygame.draw.rect(self.screen,self.color,self.rect)


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

 

 

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