当前位置: 首页 > >

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

发布时间:

五、射击,创建一个bullet.py文件


1、添加子弹设置


settings.py :__init__()方法储存子弹设置,包括bullet_width,bullet_height,bullet_color,bullet_speed_factor


2、创建Bullet类


它是一个对飞船发射的子弹进行管理的类,继承了我们从模块pygame.sprite中导入的sprite类,通过使用精灵将游戏中相关的元素编组,进而同时操作编组中的所有元素。


bullet.py:__init__()方法:?传递ai_settings,screen,ship实例,?调用super继承Sprite?创建子弹属性rect?将子弹的centerx设置为飞船的centerx,?表示子弹的rect的top属性设置为飞船的rect的top属性,让子弹看起来像是从飞船中射出的 ,将子弹的y坐标存储为小数值,以便能够微调子弹的速度 ,将子弹的颜色和速度设置粉笔存储在self.color和self.speed_factor中。


方法update():?向上移动子弹?更新表示子弹位置的小数值?更新表示子弹的rect的位置。


方法draw_bullet():?在屏幕上绘制子弹pygame.draw.rect()。


?


代码如下


import pygame
from pygame.sprite import Sprite
class Bullet(Sprite):
#一个对飞船发射子弹管理的类
def __init__(self,ai_settings,screen,ship):
#在飞船所在处的位置创建一个子弹对象
super(Bullet,self).__init__()
self.screen = screen

#在(0,0)处创建一个表示子弹的矩形,再设置正确的位置
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.y = float(self.rect.y)
self.color = ai_settings.bullet_color
self.speed_factor = ai_settings.bullet_speed_factor
def update(self):
#向上移动子弹
#更新表示子弹位置的小数值
self.y -= self.speed_factor
#更新表示子弹的rect的位置
self.rect.y = self.y
def draw_bullet(self):
#在屏幕上绘制子弹
pygame.draw.rect(self.screen,self.color,self.rect)



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


?


?



友情链接: