Python 如果我在游戏中连续按两次键,我想让角色跑得更快
这是我写的代码的一部分Python 如果我在游戏中连续按两次键,我想让角色跑得更快,python,pygame,Python,Pygame,这是我写的代码的一部分 enter code here import pygame from pygame.locals import QUIT, KEYDOWN, KEYUP,\ K_LEFT, K_RIGHT, K_DOWN, K_SPACE, K_UP pygame.init() pygame.key.set_repeat(30, 30) while True: to_x1 = 0 for event
enter code here
import pygame
from pygame.locals import QUIT, KEYDOWN, KEYUP,\
K_LEFT, K_RIGHT, K_DOWN, K_SPACE, K_UP
pygame.init()
pygame.key.set_repeat(30, 30)
while True:
to_x1 = 0
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.quit()
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
to_x1 = -5
if keys[pygame.K_RIGHT]:
to_x1 = 5
CHARIC_1.xpos1 = CHARIC_1.xpos1 + to_x1
CHARIC_1.xpos1是角色的x坐标。
我想让我的角色在我快速按两次左右键时跑得更快。
我一辈子都不知道。如果您知道如何操作,我希望您能告诉我。您必须使用键盘事件
键下键(请参阅),而不是。用于获取调用pygame.init()
后的毫秒数。存储按键的时间。如果在一定时间内按下按钮两次,则会增加速度:
按键时间=0
快捷键时间=500 0.5秒
尽管如此:
当前时间=pygame.time.get_ticks()
# [...]
对于pygame.event.get()中的事件:
# [...]
如果event.type==pygame.KEYDOWN:
如果event.key==pygame.K_左:
如果to_x1==-5且当前_时间<按键时间+快速按键时间:
to_x1=-10
其他:
to_x1=-5
按键时间=当前时间
如果event.key==pygame.K_RIGHT:
如果to_x1==5且当前_时间<按键时间+快速按键时间:
to_x1=10
其他:
to_x1=5
按键时间=当前时间
CHARIC_1.xpos1=CHARIC_1.xpos1+到_x1
# [...]
最简单的例子:
导入pygame
pygame.init()
window=pygame.display.set_模式((500500))
clock=pygame.time.clock()
rect=pygame.rect(0,0,20,20)
rect.center=window.get_rect().center
to_x1=0
按键时间=0
快捷键时间=500 0.5秒
运行=真
运行时:
当前时间=pygame.time.get_ticks()
时钟滴答(60)
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
运行=错误
如果event.type==pygame.KEYDOWN:
如果event.key==pygame.K_左:
如果to_x1==-5且当前_时间<按键时间+快速按键时间:
to_x1=-10
其他:
to_x1=-5
按键时间=当前时间
如果event.key==pygame.K_RIGHT:
如果to_x1==5且当前_时间<按键时间+快速按键时间:
to_x1=10
其他:
to_x1=5
按键时间=当前时间
矩形x+=至_x1
rect.centerx=rect.centerx%窗口。获取宽度()
rect.centery=rect.centery%窗口。获取高度()
窗口填充(0)
pygame.draw.rect(窗口,(255,0,0),rect)
pygame.display.flip()
您必须使用键盘事件KEYDOWN
(请参阅)而不是。用于获取调用pygame.init()
后的毫秒数。存储按键的时间。如果在一定时间内按下按钮两次,则会增加速度:
按键时间=0
快捷键时间=500 0.5秒
尽管如此:
当前时间=pygame.time.get_ticks()
# [...]
对于pygame.event.get()中的事件:
# [...]
如果event.type==pygame.KEYDOWN:
如果event.key==pygame.K_左:
如果to_x1==-5且当前_时间<按键时间+快速按键时间:
to_x1=-10
其他:
to_x1=-5
按键时间=当前时间
如果event.key==pygame.K_RIGHT:
如果to_x1==5且当前_时间<按键时间+快速按键时间:
to_x1=10
其他:
to_x1=5
按键时间=当前时间
CHARIC_1.xpos1=CHARIC_1.xpos1+到_x1
# [...]
最简单的例子:
导入pygame
pygame.init()
window=pygame.display.set_模式((500500))
clock=pygame.time.clock()
rect=pygame.rect(0,0,20,20)
rect.center=window.get_rect().center
to_x1=0
按键时间=0
快捷键时间=500 0.5秒
运行=真
运行时:
当前时间=pygame.time.get_ticks()
时钟滴答(60)
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
运行=错误
如果event.type==pygame.KEYDOWN:
如果event.key==pygame.K_左:
如果to_x1==-5且当前_时间<按键时间+快速按键时间:
to_x1=-10
其他:
to_x1=-5
按键时间=当前时间
如果event.key==pygame.K_RIGHT:
如果to_x1==5且当前_时间<按键时间+快速按键时间:
to_x1=10
其他:
to_x1=5
按键时间=当前时间
矩形x+=至_x1
rect.centerx=rect.centerx%窗口。获取宽度()
rect.centery=rect.centery%窗口。获取高度()
窗口填充(0)
pygame.draw.rect(窗口,(255,0,0),rect)
pygame.display.flip()
快速是什么意思?有什么规则可以告诉你按键的距离是否足够近?然后呢?角色应该跑多快?角色是否应该以相同的速度运行,直到。。。什么时候你需要仔细考虑实际需要发生的事情的逻辑,然后这将是很简单的:你只需要知道你必须记住的事情(例如,“上次按键发生在多长时间之前?”)以及如何处理这些信息。但对于堆栈溢出来说,这都不是一个好问题。如果你需要设计方面的帮助,你可以试试gamedev.stackexchange.com,但是你仍然需要一个更精确的想法来了解你希望事情如何运作;(2) 将按键状态保存到变量中;(3) 研究如何获取系统时间;将其添加到您的按键处理程序中;(4) 当你得到一个左键或右键,然后你检查(a)它是否与前一个相同;(b) 它和前一个“很接近”吗?如果是这样,则根据需要将移动参数增加到10或-10。您可以找到一个示例