小喽啰一刀一个,倒也轻松,可每次射击要按键,手酸得不行,五姑娘有意见了。
来个插件,增加滚键盘模式吧。
在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()
轻松滚键盘了。
目前的全部代码见链接