Introduksjon

Breakout er en gammel klassiker opprinnelig laget av Steve Jobs og Steve Wozniak (grunnleggerene av Apple) på 1970-tallet. På samme måte som i Pong skal man kontrollere en sprettende ball ved hjelp av en racket. Men Breakout kan spilles av en spiller hvor man får poeng for å skyte ned bokser ved hjelp av ballen. Nyere versjoner har videreutviklet Breakout på flere måter. For eksempel ved at noen bokser gir spesielle bonuser, ved at det finnes forskjellige brett av ulik vanskelighetsgrad og så videre.

Oversikt over prosjektet

Mesteparten av kodingen av Breakout skal du gjøre selv. Koden for racketen og ballen ligner en del på den tilsvarende koden i Pong. Vi vil derfor fokusere på boksene i dette prosjektet, og spesielt diskutere hvordan man kan bruke kloner på en effektiv måte.

Plan

Steg 1: Bokser ... Mange bokser!

En sentral del av Breakout er alle boksene man skal prøve å skyte ned. Siden disse boksene alle oppfører seg (nesten) likt vil vi bruke den samme koden for alle boksene. Til dette bruker vi kloning.

I Scratch kan vi klone figurer. Det betyr at vi lager en kopi av en figur, både av utseendet og oppførselen. Her vil vi derfor først lage en boks, og deretter lage mange kopier av denne.

Sjekkliste

  • når jeg mottar [Nytt spill v]
    skjul
    sett [Antall bokser v] til [0]
    sett y til (160)
    gjenta (5) ganger
        sett x til (-200)
        gjenta (11) ganger
            endre [Antall bokser v] med (1)
            lag klon av [meg v]
            endre x med (40)
        slutt
        endre y med (-25)
    slutt
    
  • når jeg starter som klon
    vis
    vent til <tast [mellomrom v] trykket?>
    endre [Antall bokser v] med (-1)
    slett denne klonen
    

    Etter at vi har laget en ball og en racket skal vi oppdatere denne koden slik at boksene i stedet forsvinner når de blir truffet av ballen.

Steg 2: En sprettende ball og en enkel racket

Når man lager nye programmer og spill er det alltid lurt å lage en enkel versjon av spillet tidlig. Denne tidlige versjonen behøver ikke kunne gjøre veldig mye, du kan likevel begynne å teste at programmet blir som du hadde tenkt nesten med en gang.

Vi begynner nå med grunnmekanismen i spillet: En ball som spretter og en racket som kan ta i mot ballen.

Sjekkliste

  • når jeg mottar [Sprett horisontalt v]
    pek i retning ((180) - (retning))
    

Steg 3: Boksene forsvinner

Vi skal nå koble sammen boksene og ballen. Boksene skal jo forsvinne når de blir truffet av ballen. Samtidig skal ballen sprette når den treffer en boks.

Sjekkliste

Prøv spillet ditt. Grunnmekanismene skal nå fungere.

Steg 4: Videreutvikling av spillet

Du står helt fritt i hvordan du vil jobbe videre med spillet ditt, men her er noen ideer som kan gjøre spillet enda morsommere å spille:

Ideer til videreutvikling

  • En måte å designe slike brett på kan være ved å først lage de forskjellige boksene som forskjellige drakter. Deretter kan du lage en brett-variabel som lister opp hvilken drakt hver boks skal bruke. For eksempel kan denne se slik ut:

    sett [brett v] til [1111111111111222222211112233322111122222221111111111111]
    

    Denne kan så brukes når du setter ut boksene omtrent som dette:

    bytt drakt til (bokstav (antall bokser) i (brett))
    

    Videre i spillet kan du teste på drakt nr. for å vite hvilken type boks du har med å gjøre.

Forbedre denne siden

Funnet en feil? Kunne noe vært bedre? Hvis ja, vennligst gi oss tilbakemelding ved å lage en sak på Github eller fiks feilen selv om du kan. Vi er takknemlige for enhver tilbakemelding!

Rapporter et problemVis koden og fiks selv