Wie kann ich Kollisionen schneller überprüfen, um die Phasen bei hoher Geschwindigkeit durch meine Plattform in Pygame zPython

Python-Programme
Anonymous
 Wie kann ich Kollisionen schneller überprüfen, um die Phasen bei hoher Geschwindigkeit durch meine Plattform in Pygame z

Post by Anonymous »

In meinem Pygame -Projekt habe ich einen Charakter, der Plattformen durchklicken kann, wenn der Spieler auf S klickt, damit sie auf eine niedrigere Plattform gehen können, wie Sie es beispielsweise in Super Smash Bros tun würden. Wenn der Charakter jedoch bei hohen Geschwindigkeiten von der höchsten Plattform zur niedrigsten Plattform übergeht, klammern er sich durch die Plattform. Hier überprüfe ich die Kollisionen: < /p>

Code: Select all

def move(self, dt, platforms):
# horizontal movement
self.rect.centerx += round(self.velocity_x * SPEED['player'] * dt)

# vertical movement
self.velocity_y += GRAVITY * dt
self.rect.centery+= round(self.velocity_y * dt)
# ground collision
if self.rect.bottom >= WINDOW_HEIGHT:
self.rect.bottom = WINDOW_HEIGHT
self.velocity_y = 0

for platform in platforms:
if self.rect.colliderect(platform):
if self.velocity_y >= 0 and self.jump_check(platforms): # falling down
self.rect.bottom = platform.top + 1
self.velocity_y = 0
< /code>
Und hier ist die Funktion Jump_Check < /p>
def jump_check(self, platforms):
for platform in platforms:
if self.rect.colliderect(platform) and abs(self.rect.bottom - platform.top) < 10 and self.velocity_y >= 0:
return True
return False
Danke im Voraus

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post