Python宇宙人侵入完全コードと注釈(五)
1663 ワード
五、射撃、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().
コードは次のとおりです.
リンクをクリックhttps://blog.csdn.net/Ljt101222/article/details/81253503Python宇宙人に侵入する完全なコードと注釈(六)
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宇宙人に侵入する完全なコードと注釈(六)