三、添加飛船圖像
1、創建Ship類(負責管理飛船大部分行爲) ship.py
方法__init__() :
2、初始化飛船並設置其初始位置(self.screen)
3、加載飛船圖像並獲取其外接矩形(self.image、self.rect、self.screen)
4、將每艘新飛船放在屏幕底部的中央(self.rect.centerx、self.rect.bottom)
5、方法blitme() :在指定位置繪製飛船(self.screen.blit(self.image,self.rect))
代碼如下
import pygame
from pygame.sprite import Sprite
class Ship(Sprite):
def __init__(self,ai_settings,screen):
#初始化飛船,設置其初始化位置
#讓Ship繼承Sprite
super(Ship,self).__init__()
self.screen = screen
self.ai_settings = ai_settings
#加載飛船圖像並獲取其外接矩形
self.image = pygame.image.load('images/ship.bmp')
#加載圖片後,使用get_rect()獲取surface的屬性rect
self.rect = self.image.get_rect()
#將屏幕的矩形儲存
self.screen_rect = screen.get_rect()
#將每艘新飛船放在屏幕底部中央
self.rect.centerx = self.screen_rect.centerx
self.rect.bottom = self.screen_rect.bottom
#在飛船的屬性center中存儲小數值
self.center = float(self.rect.centerx)
#移動標誌
self.moving_right = False
self.moving_left = False
def update(self):
#根據移動標誌調整飛船的位置
#更新飛船的center值,而不是rect
if self.moving_right and self.rect.right < self.screen_rect.right:
self.center += self.ai_settings.ship_speed_factor
#self.rect.centerx += 1
if self.moving_left and self.rect.left >0:
self.center -= self.ai_settings.ship_speed_factor
#self.rect.centerx -= 1
#根據self.center更新rect對象
self.rect.centerx = self.center
def blitme(self):
#在指定位置繪製飛船
self.screen.blit(self.image,self.rect)
def center_ship(self):
#讓飛船在屏幕上居中
self.center = self.screen_rect.centerx
點擊鏈接 https://blog.csdn.net/Ljt101222/article/details/81253169 進入 Python外星人入侵完整代碼和註釋(四)