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

三、添加飛船圖像

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外星人入侵完整代碼和註釋(四)

 

 

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