Pygame Vampire Survivors?

1 Antwort

Das Problem scheint darin zu liegen, dass Sie die Geschwindigkeit und Richtung des Spielers in die Bewegung des Gegners einbeziehen. In Ihrem Code hat die Variable

player.is_moving

Einfluss darauf, wie die Gegner sich bewegen. Wenn der Spieler sich bewegt, wird die Geschwindigkeit der Gegner halbiert und sie bewegen sich in die entgegengesetzte Richtung des Spielers.

Wenn der Spieler auf die Gegner zuläuft, würden Sie erwarten, dass sie in die gleiche Richtung laufen, als ob der Spieler stehen würde. Aber tatsächlich laufen sie in die entgegengesetzte Richtung, weil

player.is_moving

wahr ist.

Eine Möglichkeit, das Problem zu beheben, wäre, die Bewegung des Spielers nicht in die Bewegung der Gegner einfließen zu lassen. Das könnte so aussehen:

python

Copy code
# Gegner bewegen sich immer auf den Spieler zu, unabhängig davon, ob der Spieler sich bewegt oder nicht self.x += direction.x * speed_multiplier self.y += direction.y * speed_multiplier

Beachten Sie, dass es auch notwendig sein könnte, die Anpassung der Geschwindigkeit der Gegner basierend auf der Bewegungsrichtung des Spielers zu entfernen oder zu überarbeiten. Momentan erhöht sich die Geschwindigkeit der Gegner, wenn der Spieler sich auf sie zu bewegt, und verringert sich, wenn der Spieler sich von ihnen wegbewegt. Dies könnte dazu führen, dass die Gegner sehr schnell oder sehr langsam werden, je nachdem, wie sich der Spieler bewegt.