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に格納.カラーと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/81253503Python宇宙人に侵入する完全なコードと注釈(六)