pygame之坦克大战(二)

子弹类(Bullet)

import pygame

#继承Sprite基类
class Bullet(pygame.sprite.Sprite):
    def __init__(self):
    	# 调用父类构造函数
        pygame.sprite.Sprite.__init__(self)
        # 加载子弹四个方向的图像
        self.bullet_up = pygame.image.load(r"../image/bullet_up.png")
        self.bullet_down = pygame.image.load(r"../image/bullet_down.png")
        self.bullet_left = pygame.image.load(r"../image/bullet_left.png")
        self.bullet_right = pygame.image.load(r"../image/bullet_right.png")

        # 子弹方向   速度   生命   碎铁块
        self.dir_x, self.dir_y = 0, 0
        self.speed  = 6
        self.life   = False
        self.strong = False
		# 获取子弹图像的矩形区域
        self.bullet = self.bullet_up
        self.rect = self.bullet.get_rect()
    # 改变子弹朝向   
    def changeImage(self, dir_x, dir_y):
        self.dir_x, self.dir_y = dir_x, dir_y
        if self.dir_x == 0 and self.dir_y == -1:
            self.bullet = self.bullet_up
        elif self.dir_x == 0 and self.dir_y == 1:
            self.bullet = self.bullet_down
        elif self.dir_x == -1 and self.dir_y == 0:
            self.bullet = self.bullet_left
        elif self.dir_x == 1 and self.dir_y == 0:
            self.bullet = self.bullet_right
        

    # 子弹在地图上的移动
    def move(self):
        self.rect = self.rect.move(self.speed * self.dir_x,
                                   self.speed * self.dir_y)
                
        # 碰撞地图边缘
        if self.rect.top < 3:
            self.life = False
       
        if self.rect.bottom > 630 - 3:
            self.life = False
       
        if self.rect.left < 3:
            self.life = False
        
        if self.rect.right > 630 - 3:
            self.life = False
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值