パイガムでトップダウンのパズルゲームを作っています。動きが激しくなっています。何が起こるかは、水平に移動するキーと垂直に一度に移動するキーを押すと、文字が水平面に触れている場合にのみ移動します。ここに私の動きと衝突のコードがあります:パイガム - 動きが一貫していません
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)
ありがとう!
[まだエラーが発生し、最小限の例を、私たちはただ、ペーストして実行をコピーすることができ]投稿してくださいhttp://stackoverflow.com/help/mcve)。 – skrx
問題は、私のプログラムは非常に、非常に大きいです。 – Will6316
mcveを提供しないと助けを受けることはまずありません。良い例がなければ、エラーを見つけるのは難しいことも、不可能なこともあります。スクラッチから始まり、シンプルな+イベントループ、壁、プレーヤークラス、および移動コードを追加するだけです。 – skrx