botsing met sprite

Ik heb twee problemen met mijn code:

  1. Ik weet niet hoe ik mijn personage moet laten controleren dat het botst met de blokken

  2. Hoe blaas ik naar een nieuw scherm telkens wanneer ze een niveau voltooit? Dus wanneer het personage de trap bereikt, verschijnt er een nieuw scherm met het nieuwe niveau

Hier is al mijn code:

http://pastebin.com/u/bluesplay106

Ik ben vrij nieuw voor pygame, dus mijn stijl is misschien niet goed en ik heb deze game een beetje hard gecodeerd. Als je me zou kunnen vertellen hoe ik mijn probleem zou kunnen oplossen, zou dat echt geweldig zijn !!

0
Uw vragen zullen veel specifieker moeten zijn als u een bruikbaar antwoord hoopt te krijgen.
toegevoegd de auteur hspain, de bron

1 antwoord

voor de botsingdetectie moet u uw karakter en uw blokken tot sprites maken en op die manier een botsingdetectie uitvoeren.

Wat betreft het nieuwe scherm wanneer je bij de trap komt, kun je een statement als dit gebruiken:

if heroSprite_x >= 200 and heroSprite_x <= 300:
    if heroSprite_y >= 300 and heroSprite_y <= 400:

        #go to new screen using either a new level from a list or a new class or whatever method you want.

Uw vraag was een beetje vaag, maar ik hoop dat dat is wat u zocht :)

Ik heb me net gerealiseerd dat ik je eerste vraag niet heb beantwoord, hier is een fragment van een van mijn spellen:

unit_enemy = pygame.sprite.groupcollide(unitgroup, enemygroup, True, pygame.sprite.collide_mask) 

for hit in unit_enemy:
    #do something

Hiermee wordt gecontroleerd of vijanden mijn eenheid raken. Dus in jouw geval zou het jouw held zijn, en de vijanden zouden blokken zijn.

Hier is de documentatie over botsingsdetectie.

http://pygame.org/docs/ref/sprite.html

0
toegevoegd