用WSAD控制移动,按住一会就非常卡顿。
pygame吧
全部回复
仅看楼主
level 1
import pygame
import sys
import traceback
from pygame.locals import *
pygame.init()
bg_size = width, height = 600, 600
screen = pygame.display.set_mode(bg_size)
def main():
hero = pygame.image.load("images/hero0.png").convert_alpha()
x, y = 300, 300
running = True
clock = pygame.time.Clock()
while running:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
# 检测键盘操作
keys_pressed = pygame.key.get_pressed()
if keys_pressed[K_w]:
y -= 3
if keys_pressed[K_s]:
y += 3
if keys_pressed[K_a]:
x -= 3
if keys_pressed[K_d]:
x += 3
# 绘制
screen.blit(hero, (x, y))
pygame.display.flip()
clock.tick(60)
求教大佬,这个很简单的用WASD控制角色八方向移动,但是长时间按住一个键,就会大概率出现严重卡顿,一直按住就几乎要卡死机,必须放开按键缓一会程序才能恢复过来。
改成用上下左右方向键控制移动,卡顿现象就少了很多。这是为啥啊。。。?
2022年07月19日 15点07分 1
level 10
有没有可能,你输入法没关
2022年07月22日 00点07分 2
卧槽,大神请受我一拜!这问题折磨我一星期终于被解决了!
2022年07月24日 09点07分
level 6
一 性能不行
二 键盘输入为中文模式(一般不会出问题)
三 clock位置错了
四 keys_pressed要放在for event in pygame.event.get():前面
五 先绘制再检测
2022年07月25日 14点07分 3
level 1
你用了Event get,为什么还要用keypassed呢,还有,把flip改成update试试
2022年08月18日 06点08分 4
1