Gå til innhold

Adder 1 til score per tredje while loop - Flappy Bird i Python


Anbefalte innlegg

Halois!

 

I det siste har jeg holdt på med et spill, en slags Flappy Bird klone til Python. Et problem oppstår når sirkelen (altså spilleren) beveger seg mellom rørene, og da skal telle score. Siden while-loopen (altså spillloopen) går tre ganger MENS spilleren er mellom rørene! Slik jeg gjør det nå er å dele finalScore med 3, og da får jeg den egentlige scoren. Problemet påvirker koden virkelig når jeg setter ned pipeSpeed (hastigheten til rørene mot venstre), siden da blir score talt enda flere ganger! Fryktelig vanskelig å forklare, men jeg lurte på om dere kunne se på problemet? Ps. jeg omformulerer gjerne tittelen hvis dere har noen forslag!

 

Bare trykk "Download game", så lastes filen ned med tilhørende filer herfra: amundsen.co :) Fra linje 376-378 er "detectionen" for score forresten!

 

Dette er en tidligere versjon av spillet, fordi jeg ikke har lastet opp nyeste til nettsiden. Har jo forsåvidt ingen betydning, men hvis dere er intressert så legger jeg gjerne ut den nyeste koden :)

 

EDIT (her er et utsnitt av koden):

 

Dette er altså detectionen for å skjekke om spilleren er mellom rørene:

if x+20 > lead_x and x < lead_x:
            global finalScore
            finalScore = finalScore + 1

Og dette er den nådværende løsningen! :D

outputScore = int(finalScore/3)
renderInGameText(outputScore)
Endret av MrPear
Lenke til kommentar
Videoannonse
Annonse

I stede for å sjekke om 'spilleren er i rørene' så kan du skrive litt logikk for å sjekke om spilleren gikk fra innsiden av rørene, til usiden.

isCollisionWithPipes = checkCollision()
if !isCllisionWithPipes && wasCollisionWithPipes:
  # increase score baby!
wasCollisionWithPipes = isCollisionWithPipes

Bare spør om du lurer på noe. Kanskje lettere å hjelpe om du viser noe kode rundt akkurat hvordan du gjør dette :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...