2017-03-24 4 views
-1

Ich mache ein Spiel in Python mit Pygame. Ich habe eine Bedingung gestellt, dass, wenn der Spielercharakter auf ein bestimmtes Plättchen geht, der Punktestand um 1 erhöht wird, aber ich kann es nicht schaffen. weil ich nicht in der Lage bin, die Position des Spielercharakters zu erhalten. Zum Beispiel wenn player_position == (die angegebene Kachel): dann score = score + 1. Bitte hilf mir dabei.Wie bekomme ich einen Sprite in Pygame?

+1

Es ist schwer, Ihnen eine Antwort zu geben, wenn Sie keine Beispiele angeben. Es wird zu viel Ratespiele. Versuchen Sie, ein [mcve] zu erstellen und bearbeiten Sie es in der Frage. Sie sollten es schaffen, wenn Sie alle Kacheln durchlaufen und dann überprüfen, ob sich der Rect des Spielers mit dem Rect der Kachel überschneidet, indem Sie ['player.rect.colliderect (tile.rect)]' (https: //www.pygame .org/docs/ref/rect.html # pygame.Rect.colliderect), wobei jede Kachel angenommen wird und der Spieler ein Attribut 'rect' hat, das ein [Rect-Objekt] ist (https://www.pygame.org/docs/ ref/rect.html). –

Antwort

0

Haben Sie versucht, eine der "kollidieren" -Funktionen zu verwenden? Sie könnten die Kachel auch zu einem Sprite machen und die Kollision erkennen. Es ist vielleicht nicht genau das, wonach Sie suchen, aber es könnte funktionieren.

Dies würde True zurückgeben, wenn zwei Sprite-Argumente kollidieren. pygame.sprite.collide_rect()

+0

Ich habe es ausprobiert! aber nicht passiert. :(alle anderen Optionen ??? Ich weiß nicht, wie eine Kachel ein Sprite machen. Ich habe versucht, den Ort der Kachel zu verwenden, aber es hat nicht funktioniert. – princeomkaar

+0

'pygame.sprite.collide_rect' soll an' pygame übergeben werden Das Argument "kollidiert" von .sprite.spritecollide.Sie können nur 'pygame.sprite.spritecollide' verwenden, um die Kollision zwischen Sprites zu überprüfen, denn wenn Sie das' collided' Argument weglassen, prüft es standardmäßig, ob sich die rect's schneiden. –

Verwandte Themen