0091 enkelt spel - gör så här
Fortsättning på föregående uppgift. Gör som följer.
Skapa ett nytt senario som heter lobster-bath
.
Gör en underklass BathWorld
till klassen World
. Välj bilden backgrounds > bathroom-tile.jpg.
Gör en klass Lobster
som ärver från klassen Actor
. Välj bilden animals > lobster.png.
Gör en klass Flan
som ärver från klassen Actor
. Välj bilden food > flan.png.
Klassen Lobster
Metoden move
Öppna editorn för klassen Lobster
. Skriv en ny metod eat
under metoden act. Den nya metoden tar inga parametrar och ska inte returnera något. Med hjälp av if-satser kontrolleras vilken tangent som är nedtryckt.
Om pil upp är intryckt rör sig hummern ett steg framåt. I klassen Greenfoot
finns en metod som heter isKeyDown
. Läs dokumentationen och använd metoden. Skicka med parametern "up". Anropa metoden move
som finns i Actor
. Skicka med 1 som parameter.
Har du inte kompilerat, så är det hög tid att göra det nu. Spela spelet och test att hummer rör som den bör. Kompilera och test spelet ofta fortsättningsvis.
Gör en ny if-sats för pil vänster. Parametern blir "left". Gör på liknande sätt som för pil upp, men anropa metoden turn
i Actor
med parametern -3.
Gör en tredje if-sats för pil höger. Nu får du lista ut resten själv.
Anropa metoden move
utan parametrar från metoden act
i Lobster
.
Metoden eat
Skriv en metod eat
. Den tar inga parametrar och den returnerar inget.
Gör följande i metodkroppen. Använd metoden isTouching
för att avgöra om hummern vidrör en kaka. Läs om metoden i dokumentationen för klassen Actor
. Skicka med Flan.class
som parameter till anropet av metoden isTouching
. En if-sats behövs också. Om ovanstående villkor är uppfyllt ska metoden removeTouching
anropas. Parametern Flan.class
bifogas som parameter.
Anropa metoden eat
i slutet av metoden act
.
Klassen BathWorld
Metoden act
Skriv metoden act
under övriga metoder i BathWorld
. Den tar inga parametrar och returnera inget. Metoden måste vara publik.
Metoden numberOfObjects
, som finns i klassen World
, är användbar. Tänk på att BathWorld
ärver från World
. Om det bara finns ett objekt kvar i välden, ska metoden stop
i klassen Greenfoot
anropas. visa texten "You won!" genom att anropa metoden showText
. Skicka med "You won!", 300 och 200 som parametrar till anropet av metoden showText
.
Metoden calculatePoints
Skriv metoden culculatePoints
under metoden act
. Metoden tar inga parametrar och returnerar ett heltal. Poängen räknas ut som 6 minus antalet objekt i världen. Metoden numberOfObjects
är användbar här också.
Tillbaka till metoden act
I klass World
finns metoden showText
. Använd denna för att för att visa antalet poäng. Anropa calculatePoints
för att ta reda på poängen och skicka sedan med resultatet som parameter till metoden showText
.
Klart!