space_invaders
Forskjeller
Her vises forskjeller mellom den valgte versjonen og den nåværende versjonen av dokumentet.
| Begge sider forrige revisjonForrige revisjonNeste revisjon | Forrige revisjon | ||
| space_invaders [2020/03/30 14:55] – royeven | space_invaders [2022/11/30 08:09] (nåværende versjon) – ekstern redigering 127.0.0.1 | ||
|---|---|---|---|
| Linje 1: | Linje 1: | ||
| ====== Space Invader (enkel variant) ====== | ====== Space Invader (enkel variant) ====== | ||
| - | I denne oppskriften skal vi trinn for trinn bygge opp en enkel variant av spillet Space Invader med bare én invader (i gangen) og en defender. Defender skal forsøke å skyte invader, og får ett poeng pr. invader som blir skutt ned. For hver invader som unnslipper mister defender ett liv. | + | I denne oppskriften skal du trinn for trinn bygge opp en enkel variant av spillet Space Invader med bare én invader (i gangen) og en defender. Defender skal forsøke å skyte invader, og får ett poeng pr. invader som blir skutt ned. For hver invader som unnslipper mister defender ett liv. |
| ===== Ved start - initialiser spillet ===== | ===== Ved start - initialiser spillet ===== | ||
| Ved start skal du lage tre variabler du kaller // | Ved start skal du lage tre variabler du kaller // | ||
| - | <hidden Tips 1>Du lager brikker til spillet ved å bruke "lag brikke på x: y:"-kommandoen | + | <hidden Tips 1>Du lager brikker til spillet ved å bruke kommandoen |
| <hidden Tips 2> | <hidden Tips 2> | ||
| - | <hidden Tips 3>En naturlig plassering for invader er på øverste linje på skjermen (Y=0), X kan være hva som helst, gjerne et tilfeldig tall fra menyen for matematikk.</ | + | <hidden Tips 3>En naturlig plassering for invader er på øverste linje på skjermen (Y=0), X kan være hva som helst, gjerne et tilfeldig tall fra menyen for **Matematikk**.</ |
| - | <hidden Tips 4>En naturlig plassering for defender kan være på nederste | + | <hidden Tips 4>En naturlig plassering for //defender// kan være på nederste |
| - | <hidden Tips 5>Selv om vi har opprettet en brikke for missil skal den ikke være synlig på skjermen enda. Bruk " | + | <hidden Tips 5>Selv om vi har opprettet en brikke for //missil// skal den ikke være synlig på skjermen enda. Bruk " |
| {{url> | {{url> | ||
| ===== Vanskegrad ===== | ===== Vanskegrad ===== | ||
| - | Spillet blir vanskeligere dersom invader beveger seg fort, og lettere om invader er treig. Lag en variabel som du kaller // | + | Spillet blir vanskeligere dersom |
| {{url> | {{url> | ||
| ===== Poeng og liv ===== | ===== Poeng og liv ===== | ||
| - | Ved oppstart av spillet skal du ha 0 poeng og 3 liv. Du får ett nytt poeng hver gang du skyter | + | Ved oppstart av spillet skal du ha 0 poeng og 3 liv. Du får ett nytt poeng hver gang du skyter |
| - | <hidden Tips 1>Du finner kommandoer for dette i Spill-menyen.</ | + | <hidden Tips 1>Du finner kommandoer for dette i **Spill**-menyen.</ |
| {{url> | {{url> | ||
| ===== Flytte defender ===== | ===== Flytte defender ===== | ||
| - | Defender må kunne flytte seg til sidene, og det kan være naturlig å bruke knappene A og B til å flytte defender. Når knapp A trykkes skal defender flytte seg til venstre og når knapp B trykkes skal defender flytte seg til høyre. | + | //Defender// må kunne flytte seg til sidene, og det kan være naturlig å bruke knappene A og B til å flytte |
| - | <hidden Tips 1>Du finner | + | <hidden Tips 1>Du finner |
| - | <hidden Tips 2>Du kan endre defenders | + | <hidden Tips 2>Du kan endre // |
| <hidden Tips 3>Hvis du endrer x med 1 vil x-koordinaten øke med 1 og brikken flytte seg til høyre. Hvis du endrer x-koordinaten med -1 vil x-koordinaten avta med 1 og brikken flyttes til venstre.</ | <hidden Tips 3>Hvis du endrer x med 1 vil x-koordinaten øke med 1 og brikken flytte seg til høyre. Hvis du endrer x-koordinaten med -1 vil x-koordinaten avta med 1 og brikken flyttes til venstre.</ | ||
| {{url> | {{url> | ||
| Linje 32: | Linje 32: | ||
| ===== Flytte invader ===== | ===== Flytte invader ===== | ||
| - | I denne enkle varianten av Space Invader vil invader bevege seg mot defender, og dersom defender ikke skyter invader vil invader forsvinne fra skjermen før en ny invader kommer til syne øverst på skjermen. Programmeringsmessig skal vi løse dette ved å flytte invader tilbake til toppen på skjermen (Y=0) hver gang den kommer seg forbi defender (Y=4). Vi må først lage oss en egen funksjon som skal flytte defender tilbake til toppen av brettet. Trykk på Avansert og deretter på Funksjon. Der skal du lage en ny funksjon som heter resetInvader. De skal ikke legge til noen parametre til denne, bare trykke fullført etter å ha endret navnet på funksjonen " | + | I denne enkle varianten av Space Invader vil //invader// bevege seg mot //defender//, og dersom |
| Etterpå skal du legge kommandoer i denne funksjonen som angir invader sin Y-koordinat til 0 og invader sin X-koordinat til et tilfeldig tall. | Etterpå skal du legge kommandoer i denne funksjonen som angir invader sin Y-koordinat til 0 og invader sin X-koordinat til et tilfeldig tall. | ||
| Linje 39: | Linje 39: | ||
| ===== Avfyre missil ===== | ===== Avfyre missil ===== | ||
| - | Når du trykker på knapp A+B (altså A og B samtidig) skal missilet | + | Når du trykker på knapp A+B (altså A og B samtidig) skal // |
| - | <hidden Tips 1>Alt som skal skje med //missil// må skje inni en "når knapp A+B trykkes" | + | <hidden Tips 1>Alt som skal skje med //missil// må skje inni en "når knapp A+B trykkes" |
| - | <hidden Tips 2>Du ønsker å angi missil sin y-koordinat til samme y-koordinat som defender har. Og ditto for x-koordinatene. Du kan deretter angi //missil// sin lysstyrke til 255, som er maksimal lysstyrke.</ | + | <hidden Tips 2>Du ønsker å angi //missil// sin y-koordinat til samme y-koordinat som //defender// har. Og ditto for x-koordinatene. Du kan deretter angi //missil// sin lysstyrke til 255, som er maksimal lysstyrke.</ |
| <hidden Tips 3>Etter at missilet har blitt synlig skal det endre sin y-koordinat 4 ganger i negativ retning (oppover) før det på nytt skal bli usynlig.</ | <hidden Tips 3>Etter at missilet har blitt synlig skal det endre sin y-koordinat 4 ganger i negativ retning (oppover) før det på nytt skal bli usynlig.</ | ||
| <hidden Tips 4>Du bør bruke variabelen // | <hidden Tips 4>Du bør bruke variabelen // | ||
| Linje 48: | Linje 48: | ||
| ===== Sprenge invader ===== | ===== Sprenge invader ===== | ||
| - | For hver gang du flytter | + | For hver gang du flytter |
| - | <hidden Tips 1>Du kan sjekke om missil og invader er på samme plass ved å bruke en hvis-blokk fra logikk-menyen og " | + | <hidden Tips 1>Du kan sjekke om //missil// og //invader// er på samme plass ved å bruke en "hvis"-blokk fra **Logikk**-menyen og " |
| {{url> | {{url> | ||
| ===== Automatisk bevegelse av invader ===== | ===== Automatisk bevegelse av invader ===== | ||
| - | Nå skal vi la invader flytte seg automatisk nedover skjermen. Dette kan oppnås ved å bruke en " | + | Nå skal vi la //invader// flytte seg automatisk nedover skjermen. Dette kan oppnås ved å bruke en " |
| Gjenta for alltid: | Gjenta for alltid: | ||
| - | - Endre invaders | + | - Endre //invader// sin y-koordinat med 1 |
| - Ta pause i // | - Ta pause i // | ||
| - | - Hvis invader berører defender | + | - Hvis //invader// berører |
| - mist ett liv | - mist ett liv | ||
| - reset invader | - reset invader | ||
| - | - ellers hvis invader er på bunnen | + | - ellers hvis //invader// er på bunnen |
| - mist ett poeng | - mist ett poeng | ||
| - | - reset invader | + | - reset //invader// |
| - | Med denne løsningen mister du liv hvis du kolliderer med invader. Hvis du unngår kollisjon mister du bare ett poeng for hver invader som unnslipper. Ved å trykke på " | + | Med denne løsningen mister du liv hvis du kolliderer med //invader//. Hvis du unngår kollisjon mister du bare ett poeng for hver //invader// som unnslipper. Ved å trykke på " |
| {{url> | {{url> | ||
space_invaders.1585580108.txt.gz · Sist endret: (ekstern redigering)
