算是差不多能搞懂pygame裡的sprite大致意思了…設定sprite的意義在於將每個子彈變成乙個小元素(小精靈的意思)一方面便於儲存,一方面可以進行呼叫。
class bullet(sprite):
def __init__(self,ai_settings,screen,ship):
super(bullet,self).__init__()
self.screen = screen
#開始製作子彈的形狀
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.x = float(self.rect.x)
self.color = ai_settings.bullet_color
self.speed_factor = ai_settings.bullet_speed_factor
這個意義在於設定每個子彈的屬性都統一,並且將其定義到pygame裡的螢幕上,乙個定義是定義位置在飛船的頭部方向(ship.rect.top),另乙個是定義在飛船的中間部分(ship.rect.centerx)每個子彈的意義在於從飛船頭部發出,現在我們再返回到主程式。
import pygame
import sys
from settings1 import plant_game
from ship1 import ship
import checkcheck as gf
from pygame.sprite import group
~~這個group是我昨天沒弄懂的
def run_game():
pygame.display.set_caption("alien invasion")
ai_setting = plant_game()
ship = ship(ai_setting,ai_setting.screen)
bullets = group()
**就是這裡的,bullets =group,現在我明白了,應該是將其定義為乙個完整的子彈組。**
# ship看做是乙個矩形
while true:
gf.check_events(ship,ai_setting,ai_setting.screen,bullets)
gf.update_screen(ai_setting,ai_setting.screen,ship,bullets)
#def update_screen(ai_settings,screen,ship,bullets)
#screen.fill(ai_settings.bg_color)
#for bullet in bullets.sprites():
#bullet.draw_bullets()
#這裡的意義在於,將group填充子彈,draw_bullets()進行子彈填充,然後建立乙個完整的子彈group。
gf.update_bullets(bullets)
#當然,不能讓你子彈無限的發射吧。這裡我們設定了乙個判定子彈是否飛躍出的螢幕的函式。
def update_bullets(bullets):
bullets.update()
for bullet in bullets.copy():
if bullet.rect.bottom <= 0:
bullets.remove(bullet)
print(len(bullets))
#這裡的bullets就是group,我們進行判斷是否每個子彈的位置是不是超出去了,超出去我們就remove它。
gf.update_screen(ai_setting,ai_setting.screen,ship,bullets)
run_game()
run_game()
ok,雖然寫的很爛我會繼續加油的。今天學習時間太短了,明天加油,仍然沒有寫出如何進行一直按空格發射子彈,明天接著試試。 學習python 第四天
python 迴圈結構 迴圈結構可以輕鬆的控制某件事重複 再重複的發生。在python中構造迴圈結構有兩種做法,一種是for in迴圈,一種是while迴圈。for in迴圈 如果明確的知道迴圈執行的次數或者是要對乙個容器進行迭代 後面會講到 那麼我們推薦使用for in迴圈 用for迴圈實現1 1...
Python學習 第四天
map函式可以對序列中個每個值進行某種批量轉化操作,然後將結果作為迭代器iterator返回,迭代器可以利用for迴圈或者next 函式來訪問每個值。map函式接收兩個引數,乙個是函式f,乙個是iterator,map在iterable的每個元素上依次執行函式f,並把結果作為新的iterator迭代...
學習python,第四天
echo 內容 a 將內容放到檔案裡 ls lh a 會覆蓋原有內容 echo a 追加到末尾 不會覆蓋原有內容 管道 ls lha more shutdown關機 shutdown now立刻關機 shutdown r重啟 shutdown c取消 shutdown 10 00十點關機 shutd...