python3.7 + pygame1.9.3实现小游戏《外星人入侵》(三):射击子弹

本文介绍了如何在Python3.7和Pygame1.9.3环境下开发小游戏《外星人入侵》的子弹射击功能。首先在settings中定义子弹参数,接着创建Bullet类,利用pygame.Rect创建子弹矩形。Bullet类继承自Sprite类,用于管理游戏中的子弹。主函数中创建子弹编组,并在检测到空格键按下时发射子弹。此外,还讨论了如何删除超出屏幕的子弹,以及限制同时存在的子弹数量以增加游戏挑战性。
摘要由CSDN通过智能技术生成

一、添加子弹设置
首先在settings中存储子弹的基本设置:

def __init__(self):
	# 子弹设置
        self.bullet_speed_factor = 1
        self.bullet_width = 3
        self.bullet_height = 15
        self.bullet_color = 60,60,60

其次,创建Bullet类,并用 pygame.Rect(x,y,width,height)方法创建一个个小矩形来表示子弹的产生。
Bullet类继承了便于做动画效果的Sprite类,他是pygame本身自带的一个精灵,通过使用精灵,可将游戏中相关的元素编组,进而同时操作编组中的所有元素。但是这个类的功能比较少,因此我们新建一个类对其继承,在其基础上进一步丰富,以方便我们的使用。

import pygame
from pygame.sprite import Sprite

class Bullet(Sprite):

    def __init__(self,ai_settings,screen,ship):
        # 在飞船所处位置创建一个子弹对象
        super().__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
        # 更新表
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值