파이 게임 (pygame)으로 탑 다운 퍼즐 게임을 만들고 있는데, 내 움직임이 이상해졌습니다. 어떤 일이 발생하면 가로로 움직이려면 키를, 한 번에 세로로 이동하려면 키를 누르면 문자가 수평면에 닿으면 움직입니다. 여기 내 운동 및 충돌 코드입니다 :파이 게임 - 일관성이없는 게임
def move(self, dx, dy):
self.dx = dx
self.dy = dy
if self.dx != 0:
self.move_single_axis(self.dx, 0)
if self.dy != 0:
self.move_single_axis(0, self.dy)
def move_single_axis(self, dx, dy):
self.dx = dx
self.dy = dy
self.rect.x += self.dx
self.rect.y += self.dy
for wall in walls:
if self.rect.colliderect(wall.rect):
if self.dx > 0:
self.rect.right = wall.rect.left
if self.dx < 0:
self.rect.left = wall.rect.right
if self.dy > 0:
self.rect.bottom = wall.rect.top
if self.dy < 0:
self.rect.top = wall.rect.bottom
def checkMovement(self):
if self.paused == False:
keys = pygame.key.get_pressed()
if keys[pygame.K_d]:
self.move(5, 0)
elif keys[pygame.K_a]:
self.move(-5, 0)
elif keys[pygame.K_w]:
self.move(0, -5)
elif keys[pygame.K_s]:
self.move(0, 5)
고마워요!
후하시기 바랍니다 [여전히 오류가 발생 최소한의 예를 우리는 단지 붙여 넣기하고 실행을 복사 할 수 (:
move()
입니다 http://stackoverflow.com/help/mcve). – skrx문제는 내 프로그램이 매우 큰 것입니다. – Will6316
mcve를 제공하지 않으면 도움을받을 수 없을 수도 있습니다. 좋은 예없이 오류를 찾는 것이 어려울 수도 있고 불가능할 수도 있습니다. 맨 처음부터 시작, 간단한 + 이벤트 루프, 벽 및 플레이어 클래스 및 이동 코드를 추가하십시오. – skrx