while True:
pencere = pygame.display.set_mode((800,600))
pygame.display.set_caption("Oyun")
for olay in pygame.event.get():
if olay.type == pygame.QUIT:
pygame.quit()
sys.exit()
keys = pygame.key.get_pressed()
if keys[pygame.K_UP]:
y -= 3
if keys[pygame.K_DOWN]:
y += 3
if keys[pygame.K_LEFT]:
x -= 3
if keys[pygame.K_RIGHT]:
x += 3
pencere.fill(beyaz)
pygame.draw.rect(pencere, mavi, (x, y, 40, 60))
pygame.display.update()
当我按下导航按钮时,矩形变为3像素。但是当我按住钥匙的时候,我怎么能做到这一点呢
我在pygame项目中经常使用类似的功能
它的基础是,如果按下某个键,则将变量设置为True;如果松开某个键,则将变量设置为false。当您调用像
move()
这样的函数时,您将检查移动变量是真是假如果同时按下向右和向左箭头,则不会移动
这只是我使用的一些代码。因为您也在使用up和down,所以应该为up和down添加更多的事件检查,代码应该很好用
代码:
每次使用
set_mode
循环时,您都在重新初始化pygame窗口。显然,这也会重置键盘输入。(事实上,我很惊讶这不会使整个窗口闪烁或产生其他明显的效果。)您应该只调用set_mode
一次,并且应该在主循环之前执行你能行
因此,仅当按下其中一个导航键时,x和y才会更新
相关问题 更多 >
编程相关推荐