WASD를 누르고있을 때 움직이는 "플레이어"- 검정색 사각형을 만들려고합니다. 나는 여기를 둘러 보았고, 구글과 유튜브에서이 작업을하는 법을 보았습니다. 그러나 제가 시도한 모든 해결책은 똑같은 문제를 가지고 있습니다 : 키를 누르고있는 동안 그것을 이동하는 대신, 계속해서 키를 눌러 만들어야합니다. 그것은 작은 비트로 움직입니다. 나는 내가 뭘 잘못하고 있는지 전혀 모른다. 여기에 (파이썬 3.3을 사용하여 - 파이 게임 1.9) 코드는 다음과 같습니다키를 누르고있는 동안 문자를 이동하는 방법
import pygame
from pygame.locals import *
from pygame.time import *
import sys
pygame.init()
velX = 0
velY = 0
running = True
clock = pygame.time.Clock()
def draw():
global velX
global velY
playerx = 20
playery = 20
screen = pygame.display.set_mode((700,300))
pygame.display.set_caption('something')
background = pygame.Surface(screen.get_size())
background = background.convert()
background.fill((255,255,255))
screen.blit(background, (0,0))
playerx = playerx + velX
playery = playery + velY
player_filename = 'player.png'
player = pygame.image.load(player_filename)
screen.blit(player, (playerx,playery))
pygame.display.flip()
def main():
global velX
global velY
global running
while running:
keys_down = pygame.key.get_pressed()
pygame.key.set_repeat(1, 50)
time = 50/1000
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
running=False
if keys_down[K_d]:
velX += 50*time
if keys_down[K_w]:
velY -= 50*time
if keys_down[K_s]:
velY += 50*time
if keys_down[K_a]:
velX -= 50*time
clock.tick(50)
draw()
if __name__ == '__main__':
main()
는 이미 설정된 반복 명령을했지만, 훨씬 아무것도 할 것 같지 않았다. 나는 또한 stackoverflow에서 찾은 몇 가지 솔루션에서 직접 복사를 시도했지만 그들 중 누구도 일하지 않았다. 코드에 뭔가 다른 것이 있다고 생각합니다.
질문에 관련 코드를 입력하고 링크하지 마십시오. –
네, 죄송합니다. – Arcticcu