강의 대시보드 버그 수정
버그 수정
강의명 : 파이썬 무료 강의 (활용편1) - 추억의 오락실 게임 만들기 (3시간)
수강 기한 : 무제한
진도율 : 0강/23강 (0%) | 시간 : 0분/171분
나가기
미수강
이전수업
다음수업

키 이벤트를 통한 캐릭터 이동 시 방향키를 빠르게 누르면 캐릭터가 아예 멈춰버리는 현상이 생깁니다.

프로젝트 코드 기준으로 아래와 같이 4군데를 수정하면 위 현상을 해결할 수 있습니다.

x 좌표 이동 방향 처리를 왼쪽, 오른쪽으로 나누어서 key down / key up 에서 각각 처리하여 더해주는 방식입니다.

# 수정1 : 기존의 character_to_x 를 왼쪽 방향, 오른쪽 방향 변수 2개로 나눔
character_to_x_LEFT=0
character_to_x_RIGHT=0

...

for event in pygame.event.get():
	if event.type == pygame.QUIT:
		running = False

	# 수정2 : 키를 누를 때 LEFT, RIGHT 에 따라 서로 다른 변수의 값 조정
	if event.type == pygame.KEYDOWN:
		if event.key == pygame.K_LEFT:
			character_to_x_LEFT -= character_speed # 바뀐 부분
		elif event.key == pygame.K_RIGHT:
			character_to_x_RIGHT += character_speed # 바뀐 부분
		elif event.key == pygame.K_SPACE:
			...

	# 수정3 : 키에서 손을 뗄 때 LEFT, RIGHT 를 각각 처리
	if event.type == pygame.KEYUP:
		if event.key == pygame.K_LEFT: # 이 부분은 모두 다 바뀜
			character_to_x_LEFT = 0
		elif event.key == pygame.K_RIGHT:
			character_to_x_RIGHT = 0


# 수정4 : 두 변수의 값을 모두 더함
character_x_pos += character_to_x_LEFT + character_to_x_RIGHT


...
    목차 커뮤니티