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外星人入侵完整代码和注释(四)

猜你喜欢

转载自blog.csdn.net/Ljt101222/article/details/81253114