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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值