Brukerverktøy

Nettstedverktøy


space_invaders

Dette er en gammel utgave av dokumentet!


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.

Ved start - initialiser spillet

Ved start skal du lage tre variabler du kaller invader, defender og missil. I hver av disse variablene skal du lage en brikke og plassere brikkene på fornuftige steder på skjermen. <hidden Tips 1>Du lager brikker til spillet ved å bruke «lag brikke på x: y:»-kommandoen fra spill-menyen under avansert.</hidden> <hidden Tips 2>Koordinatene X og Y betegner hvor brikken skal plasseres i forhold til øverste venstre hjørne. En koordinat med X=2 og Y=3 vil bety 2 hakk bortover og 3 hakk nedover.</hidden> <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> <hidden Tips 4>En naturlig plassering for defender kan være på nederste linje på skjermen (Y=4), X kan være hva som helst, gjerne et tilfeldig tall fra menyen for matematikk. Missil bør plasseres på samme sted som defender.</hidden> <hidden Tips 5>Selv om vi har opprettet en brikke for missil skal den ikke være synlig på skjermen enda. Bruk «angi»-kommandoen fra spill-menyen til å angi lysstyrke 0 på missilet. Missilet skal være synlig etter at det er avfyrt, ellers usynlig.</hidden> https://jsfiddle.net/royeven/87ypu6k1/1/embedded/css,html,result/ 100%,400 noscroll noborder left

Vanskegrad

Spillet blir vanskeligere dersom invader beveger seg fort, og lettere om invader er treig. Lag en variabel som du kaller invader_speed og en variabel du kaller missil_speed og sett dem til henholdsvis 2000 og 100. Du kan endre disse verdiene senere i spillet om du vil. https://jsfiddle.net/royeven/87ypu6k1/3/embedded/css,html,result/ 100%,400 noscroll noborder left

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 en invader og du mister ett liv hver gang en invader passerer forbi deg. <hidden Tips 1>Du finner kommandoer for dette i Spill-menyen.</hidden> https://jsfiddle.net/royeven/87ypu6k1/4/embedded/css,html,result/ 100%,400 noscroll noborder left

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. <hidden Tips 1>Du finner blokker for knapp A og knapp B under Inndata-menyen.</hidden> <hidden Tips 2>Du kan endre defenders posisjon ved å bruke «sprite endre x med»-kommandoen fra spill-menyen.</hidden> <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> https://jsfiddle.net/royeven/87ypu6k1/5/embedded/css,html,result/ 100%,400 noscroll noborder left

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 «gjørNoe» til «resetInvader».

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. https://jsfiddle.net/royeven/87ypu6k1/7/embedded/css,html,result/ 100%,400 noscroll noborder left

Avfyre missil

Når du trykker på knapp A+B (altså A og B samtidig) skal missilet (som nå er usynlig ett eller annet sted på skjermen) flyttes til defender sin koordinat, bli synlig, og bli skutt ut fra defender. Missilet skal bevege seg oppover på skjermen helt til det kommer til toppen. Der skal det på nytt bli usynlig og vente på neste avfyring. <hidden Tips 1>Alt som skal skje med missil må skje inni en «når knapp A+B trykkes»-blokk som du finner under inndata.</hidden> <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> <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> https://jsfiddle.net/royeven/87ypu6k1/10/embedded/css,html,result/ 100%,400 noscroll noborder left

Flytte invader automatisk

https://jsfiddle.net/royeven/87ypu6k1/11/embedded/css,html,result/ 100%,400 noscroll noborder left https://jsfiddle.net/royeven/87ypu6k1/12/embedded/css,html,result/ 100%,400 noscroll noborder left https://jsfiddle.net/royeven/87ypu6k1/13/embedded/css,html,result/ 100%,400 noscroll noborder left https://jsfiddle.net/royeven/87ypu6k1/14/embedded/css,html,result/ 100%,400 noscroll noborder left https://jsfiddle.net/royeven/87ypu6k1/15/embedded/css,html,result/ 100%,400 noscroll noborder left

space_invaders.1585578604.txt.gz · Sist endret: 2022/11/30 08:15 (ekstern redigering)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki