都已经解决 同步“飞行” 和 “射击 ”的问题了,为什么还要写 (3)呢?
因为用了列表储存数据后,子弹的射击间隔无法控制了。按键 有 击键的时间差,可以让子弹看起来还算正常的发射,但是按住后,完全看的是 电脑 对按键的相应时间了,我的电脑产不多是 10 毫秒 左右一次。子弹看起来是一直线了。显然不合理。
用 pygame.time.delay()? of course not 行,这个函数是暂停整个程序的运行,而不能只让子弹间隔加长。摸索了一些其他函数,都不行,还是换回笨办法 ,先设置一个函数 pretime 读取当前时间。运行时再次读取 currenttime 两个时间相减,如果大于你想要的interval 发射子弹,不然 略过。
测试代码如下:
import pygame
from sys import exit #用到exit() 省的每次退出都有红字提示
class Keycontral(object):
def __init__(self):
pygame.init()
scene = pygame.display.set_mode((400,600))
pygame.display.set_caption('按键测试')
#记录 a 键 按下的次数
self.key_a_count = 0
#记录 j 键 按下的次数
self.key_j_count = 0
# pygame.key.set_repeat(1,50)
#子弹发射间隔
self.interval = 200 #毫秒
#得到当前时间
self.pretime = pygame