如何将键盘输入变成函数以减少混乱
How to make keyboard inputs into a function to reduce clutter
这是一个仅用于组织目的的问题,但在 pygame 中,是否可以将键盘输入放入函数中。我正在使用 pycharm,而从 pycharm 我正在使用 pygame。代码
if event.type == pygame.KEYDOWN:
print("Press")
if event.key == pygame.K_LEFT:
HomuraX_change = -0.5
if event.key == pygame.K_RIGHT:
HomuraX_change = 0.5
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
HomuraX_change = 0
我尝试在函数中使用它,然后将它放入 while 循环。但由于某些原因这不起作用。
我放在一个函数里面,比如
def movement():
if event.type == pygame.KEYDOWN:
print("Press")
if event.key == pygame.K_LEFT:
HomuraX_change = -0.5
if event.key == pygame.K_RIGHT:
HomuraX_change = 0.5
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
HomuraX_change = 0
然后我将它放在一个 while 循环中以进行角色移动。在 pygame 的终端中,第二行的“打印”是 运行,这表明它在 pycharm 中有效,但是字符没有移动。任何帮助将不胜感激!!
您需要将事件作为参数传递给函数。变量 HomuraX_change
需要声明 global
def movement(event):
global HomuraX_change
if event.type == pygame.KEYDOWN:
print("Press")
if event.key == pygame.K_LEFT:
HomuraX_change = -0.5
if event.key == pygame.K_RIGHT:
HomuraX_change = 0.5
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
HomuraX_change = 0
run = True
while run:
clock.tick(60)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
movement(event)
# [...]
这是一个仅用于组织目的的问题,但在 pygame 中,是否可以将键盘输入放入函数中。我正在使用 pycharm,而从 pycharm 我正在使用 pygame。代码
if event.type == pygame.KEYDOWN:
print("Press")
if event.key == pygame.K_LEFT:
HomuraX_change = -0.5
if event.key == pygame.K_RIGHT:
HomuraX_change = 0.5
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
HomuraX_change = 0
我尝试在函数中使用它,然后将它放入 while 循环。但由于某些原因这不起作用。
我放在一个函数里面,比如
def movement():
if event.type == pygame.KEYDOWN:
print("Press")
if event.key == pygame.K_LEFT:
HomuraX_change = -0.5
if event.key == pygame.K_RIGHT:
HomuraX_change = 0.5
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
HomuraX_change = 0
然后我将它放在一个 while 循环中以进行角色移动。在 pygame 的终端中,第二行的“打印”是 运行,这表明它在 pycharm 中有效,但是字符没有移动。任何帮助将不胜感激!!
您需要将事件作为参数传递给函数。变量 HomuraX_change
需要声明 global
def movement(event):
global HomuraX_change
if event.type == pygame.KEYDOWN:
print("Press")
if event.key == pygame.K_LEFT:
HomuraX_change = -0.5
if event.key == pygame.K_RIGHT:
HomuraX_change = 0.5
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
HomuraX_change = 0
run = True
while run:
clock.tick(60)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
movement(event)
# [...]