我的代码由一个更新变量的PyGame模块组成self.mm计数当左斗杆的垂直轴移动时。我的问题是它过于频繁地更新mmcount变量,以至于很难得到一个特定的整数。我认为解决方法是在IF语句中添加一个延迟。例如,每两秒钟检查一次左斗杆是否朝上。你知道吗
这些是更新self.mm计数变量:
if joy1.get_button(3) == 1:
self.mmcount -= 1
if joy1.get_button(2) == 1:
self.mmcount += 1
完整代码:
class Menu:
def run(self):
self.intro = True
self.clock = clock
self.mmcount = 1
while self.intro:
self.get_joys()
def get_joys(self):
if joy1.get_button(3) == 1:
self.mmcount -= 1
elif joy1.get_button(2) == 1:
self.mmcount += 1
if self.mmcount > 3:
self.mmcount = 3
elif self.mmcount < 1:
self.mmcount = 1
m = Menu()
while True:
m.run()
你需要一个定时器来控制速度。我只使用delta time(
self.dt
)返回的clock.tick
来增加self.mmcount_timer
变量。0.2秒后,我增加self.mmcount
并重置计时器。你知道吗顺便说一下,您可以用这种方式钳制值:
self.mmcount = max(min(30, self.mmcount), 1)
。你知道吗相关问题 更多 >
编程相关推荐