🎯 Hvad skal vi lære?
Vi lærer MakeCode Arcade ved at bygge et lille spil. Undervejs opdager vi de vigtigste byggesten i programmering: rækkefølge, sprites, input, events, variable, betingelser, gentagelser og tilfældighed.
Arbejdsmåde: Byg lidt → kør spillet → ændr noget → kør igen.
1. Åbn Arcade
Åbn MakeCode Arcade og vælg New Project.
Du kan arbejde med blokke nu. Senere kan det samme projekt ses som JavaScript.
2. Dit første program
Find Scene → set background color og sæt den ind i on start.
Kør spillet. Du har nu allerede lavet et program, der gør noget, når spillet starter.
🔎 Hvad betyder on start?
on start er en container. Koden inde i den køres, når programmet starter. I JavaScript svarer idéen til, at de første instruktioner udføres, når spillet begynder.
3. Lav en spiller
Find Sprites → set mySprite to sprite ... of kind Player og sæt den ind i on start.
Klik på det tomme billede og tegn din egen spiller.
Du har nu mødt en af de vigtigste idéer i Arcade:
Sprite
Et objekt på skærmen, som kan have en position, bevægelse, billede osv.
Variabel
mySprite er navnet, vi bruger til at referere til spilleren.
Kind
Player fortæller, hvilken slags sprite det er.
Arcade bruger sprites som centrale spilobjekter, og sprites kan bl.a. flyttes, kollidere og reagere på events.
4. Lad spilleren bevæge sig
Find Controller → move mySprite with buttons.
Sæt den ind efter oprettelsen af spilleren.
Prøv spillet med piletasterne. Du har nu et inputsystem.
5. Gør spillet interessant: en ting at samle
Lav en ny sprite, fx en pizza, mønt eller stjerne. Giv den kind Food.
Placér den et sted på skærmen.
💡 Hvorfor en anden kind?
Fordi spillet senere kan skelne mellem fx Player, Food og Enemy. Det gør det muligt at sige: “Når en spiller rammer mad, skal der ske dette.”
6. Reagér på en kollision
Find en on sprite of kind Player overlaps otherSprite of kind Food-event.
Inde i eventet kan du fx få maden til at forsvinde med destroy otherSprite.
Kør spillet: Når spilleren rammer maden, sker der noget.
7. Giv spilleren point
Find Info → change score by 1 og læg den ind i overlap-eventet.
Nu har vi:
NÅR Player overlapper Food
fjern Food
giv 1 point
Det er en lille, men komplet spilmekanik.
8. Brug tilfældighed
I stedet for at placere maden samme sted hver gang, kan du bruge Math → pick random til at vælge en position.
Prøv fx at sætte madens x- og y-position til tilfældige værdier.
9. En fjende
Lav en ny sprite med kind Enemy.
Giv den en bevægelse. Du kan fx ændre dens x- eller y-hastighed eller bruge en funktion, der flytter en sprite.
Lav derefter et overlap-event mellem Player og Enemy.
Beslut selv, hvad der skal ske:
- Mister spilleren et liv?
- Slutter spillet?
- Bliver spilleren sendt tilbage?
- Får fjenden point?
10. Variable: husk noget
En variabel er et navn, som bruges til at gemme en værdi.
Lav fx variablen speed og giv den værdien 50.
Brug derefter variablen til at bestemme, hvor hurtigt en fjende bevæger sig.
speed = 50
fjendens hastighed = speed
Prøv derefter at ændre speed. Du har nu ændret én værdi og dermed flere steder i spillets opførsel.
11. Betingelser: hvis noget er tilfældet
Brug Logic → if ... then.
HVIS score >= 10
vind spillet
Her møder du en af programmeringens vigtigste strukturer: programmet kan træffe en beslutning ud fra en betingelse.
12. Gentagelser: lad spillet gøre noget igen og igen
Prøv en forever-blok eller en on update interval-event.
Fx kan du få en fjende til at dukke op med mellemrum.
HVER 2. SEKUND
lav en ny fjende
placér den tilfældigt
🏁 Mini-projekt: gør spillet til dit eget
Du har nu byggesten nok til at lave et lille selvstændigt spil.
Minimumskrav
- En spiller
- Mindst én fjende eller forhindring
- En ting, der kan samles
- Score eller liv
- Mindst ét event
- Mindst én variabel, du selv har oprettet
- Mindst én betingelse
Ekstra udfordringer
- Tilfældige placeringer
- Flere fjender
- Stigende sværhedsgrad
- Nedtælling
- Animation
- Lyd og musik
- Tilemap og baner
🔚 Kan du forklare det?
- Hvad er en sprite?
- Hvad er en variabel?
- Hvad er et event?
- Hvorfor bruger vi
kind? - Hvad betyder en
if-blok? - Hvad er forskellen på kode, der kører én gang, og kode, der kører igen?
- Hvorfor kan tilfældighed gøre et spil mere interessant?