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

 

 

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值