【发布时间】:2014-06-30 14:41:35
【问题描述】:
我目前正在用python制作乒乓球游戏:
但是,假设球是粉红色的,黄色的人决定向他的w 和s 密钥发送垃圾邮件。然后他的桨将开始移动(很好),但随后粉红色的会停止(不好)。
python可以同时监听两个事件键吗?
代码如下:
import pygame, sys
from pygame.locals import *
pygame.init()
DISPLAYSURF = pygame.display.set_mode((1439, 790))
YELLOW = (255, 255, 0)
PINK = (255, 0, 255)
BLUE = (120, 214, 208)
y1, y2 = (0, 0)
circx, circy = (1439//2, 790//2)
diffx, diffy = (15, 15)
pygame.key.set_repeat(1, 10)
while True:
if (0 <= circy <= 780) == False:
diffy*=-1
if circx <= 60 and y1-10 <= circy <= y1+75:
diffx*=-1
if circx >= 1439-60 and y2-10 <= circy <= y2+75:
diffx*=-1
if (0 <= circx <= 1439) == False:
circx, circy = (720, 395)
DISPLAYSURF.fill((0, 0, 0))
pygame.draw.rect(DISPLAYSURF, YELLOW, (50, y1, 10, 75))
pygame.draw.rect(DISPLAYSURF, PINK, (1439-60, y2, 10, 75))
pygame.draw.circle(DISPLAYSURF, BLUE, (circx, circy), 10)
circx+=diffx
circy+=diffy
try:
for event in pygame.event.get():
if event.type == QUIT or event.key == pygame.K_ESCAPE or event.key == pygame.K_q:
pygame.quit()
sys.exit()
if event.key == pygame.K_w:
y1-=15
if event.key == pygame.K_s:
y1+=15
if event.key == pygame.K_UP:
y2-=15
if event.key == pygame.K_DOWN:
y2+=15
except AttributeError:
pass
pygame.display.flip()
如果同时有 2 个按键,我如何让它独立处理每个按键?
【问题讨论】:
-
我相信你会想看看threading
-
您确定这是 Python 问题而不是键盘问题吗?您的代码应该在每个游戏循环中独立处理所有 4 个事件,但如果您的键盘只能同时发送 2 次按键,它就不会执行任何操作。
-
没错。如果同时有 2 个按键,我如何让它独立处理每个按键?
标签: python python-2.7 pygame