pygame飞机大战用精灵组层编写英雄系列(五)英雄手酸了,想滚键盘

小喽啰一刀一个,倒也轻松,可每次射击要按键,手酸得不行,五姑娘有意见了。

来个插件,增加滚键盘模式吧。

在heroplane.py的初始函数里,添加发射按键的储存列表,发射间隔,发射初始时间等。

        #发射按键储存
        self.fire_key_list = []
        #设置导弹发射间隔 默认 1000毫秒
        self.bullet_start_time= pygame.time.get_ticks()
        self.bullet_interval = 400

增加发射键按下和松开函数

 # 发射键按下向列表添加 j
    def fire_key_down(self,key):
        self.fire_key_list.append(key)
    # 发射键松开向列表删除 j
    def fire_key_up(self, key):
        if len(self.fire_key_list) != 0:  # 判断是否为空
            try:
                self.fire_key_list.remove(key)
            except Exception:
                raise

增加持续发射函数

    # 按键j不放,持续开火
    def press_fire(self):
        """持续发射子弹
        """
        current_time = pygame.time.get_ticks()
        pass_time = current_time - self.bullet_start_time
        if len(self.fire_key_list) != 0 and pass_time > self.bullet_interval:
            self.fire_bullet()
            self.bullet_start_time = current_time

在main.py里修改下按键控制信息

            elif event.type == pygame.KEYDOWN:
                if event.key == pygame.K_j:
                    #普通射击
                    self.hero.fire_key_down(pygame.K_j)
             #按键松开
            elif event.type == pygame.KEYUP:
                if event.key == pygame.K_j:
                    self.hero.fire_key_up(pygame.K_j)

在持续移动函数后面添加

        self.hero.press_move()
        self.hero.press_fire()

轻松滚键盘了。

目前的全部代码见链接

https://gitee.com/hailler/hero/tree/master

猜你喜欢

转载自blog.csdn.net/hailler1119/article/details/89052237