Python外星人入侵完整代码和注释(六)

六、创建一个外星人类,命名为alien.py

1.创建第一个外星人

(1)  创建Alien类

alien.py :创建外星人类

方法__init__() :初始化外星人并设置其起始位置 ,加载外星人图像,并设置rect属性 ,每个外星人最初都在屏幕左上角附近(rect.x,rect.y) ,存储外星人的准确位置(self.x)

方法blitme() :在指定位置绘制外星人(screen.blit())

(2)创建Alien实例 :在主程序里创建一个Alien实例

(3)让外星人出现在屏幕上:调用方法blitme()

2.创建一群外星人

(1)确定一行可容纳多少外星人

(2)创建多行外星人

(3)创建外星人群

(4)方法creat_fleet() :创建外星人并将其放在当前行

(5)添加行:方法get_number_rows() :计算屏幕可容纳多少行外星人。

3.让外星人群移动

(1)向右移动外星人

(2)创建表示外星人移动方向的标志:添加fleet_drop_speed属性(外星人下移速度)。

(3)方法check_edges() :检查外星人是否撞到了屏幕左右边缘。

(4)方法check_fleet_direction() :向下移动外星人群并改变移动方向

(5)方法update_aliens() :更新外星人位置

代码如下

import pygame
from pygame.sprite import Sprite
class Alien(Sprite):
    #表示单个外星人的类
    def __init__(self,ai_settings,screen):
        #初始化外星人并设置其起始位置
        super(Alien,self).__init__()
        self.screen = screen
        self.ai_settings = ai_settings
        #加载外星人图像,并设置其rect属性
        self.image = pygame.image.load('images/alien.bmp')
        self.rect = self.image.get_rect()

        #每个外星人最初都在屏幕左上角附近
        self.rect.x = self.rect.width
        self.rect.y = self.rect.height

        #存储外星人的准确位置
        self.x = float(self.rect.x)

    def check_edges(self):
        #如果外星人位于屏幕边缘,就返回Ture
        screen_rect = self.screen.get_rect()
        if self.rect.right >= screen_rect.right:
            return True
        elif self.rect.left <= 0:
            return True


    def update(self):
        #向左或向右移动外星人
        self.x += (self.ai_settings.alien_speed_factor * self.ai_settings.fleet_direction)
        self.rect.x =self.x

    def blitme(self):
        #在指定位置绘制外星人
        self.screen.blit(self.image,self.rect)

 点击链接 https://blog.csdn.net/Ljt101222/article/details/81253636 进入 Python外星人入侵完整代码和注释(七)

猜你喜欢

转载自blog.csdn.net/Ljt101222/article/details/81253503
今日推荐