Duckhunt (kmom06) ⚠️
I den här uppgiften ska vi skapa en variant av det gamla spelet Duckhunt. Många av er har säkert spelat det. Det går ut att pricka ankor som rör sig över skärmen. Vi kommer jobba med positionering, events, randomisering, fetch med mera för att få ihop det. Det finns gott om utrymme för att göra lite extra i uppgiften. Om du inte vill använda ankan kan du skapa en egen bild eller form istället.
Förutsättning
Det förutsätts att du gått igenom artiklarna för kursmomentet samt är det en fördel om du gjort tidigare kursmoment. De ger dig koll på hur vi börjar jobba med JavaScript och webbläsaren.
Krav
Generell struktur
Du jobbar i mappen public/
.
-
Skapa filen
public/duckhunt.html
och lägg till menyvalet i navbaren likt tidigare. -
Skapa filen
public/js/duckhunt.js
och läs in den iduckhunt.html
. Det är “startfilen” för din JavaScript. -
Skapa filen
public/css/duckhunt.css
som sköter stylen för uppgiften.
När du är klar bör du ha följande filer, tillsammans med dina tidigare:
Directorypublic
Directoryjs
- duckhunt.js
Directorycss
- duckhunt.css
- duckhunt.html
1. Setup
-
Innan spelet startar ska man kunna välja vilken bakgrundsbild man vill ha samt ha möjlighet att slumpa fram en. Använd fetch för att hämta bilden.
-
Använd fetch för att hämta ankan.
-
Man ska kunna välja hur länge spelet håller på: 10, 30 eller 60 sekunder.
-
Utfrån valen man gör ska det skapas ett globalt objekt som håller informationen spelet behöver för att starta och fungera. Sätt alla värden via funktionen
setupGame()
.
- Ankan (Den bilden kommer från rawpixel.com)
- Bakgrundsbilderna
För att använda länkarna med fetch behöver vi “raw” content. Du kan se URL:en här. Bara byt siffran i slutet. Detsamma gäller för ankan.
2. Spelet
-
Starta spelet via en knapp och funktionen
startGame()
. -
Ankans position ska slumpas fram med 1 sekunds interval. Hela ankan ska vara innanför skärmens fönster.
-
Om man klickar på ankan får man 1 poäng.
-
När tiden är slut presenteras poängen via funktionen
endGame()
och spelet är över. Man ska få möjlighet att starta ett nytt spel.
Extra uppgifter (optionellt)
- Se till så man kan välja svårighetsgrad som påverkar till exempel:
- ankans hastighet
- ankans storlek
- poängen
- Kan man få ankan att röra sig i olika riktningar och inte slumpas fram?
Validering
Avslutningsvis
Lycka till och hör av dig om du kör fast eller har några funderingar.