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 Greenfootfinns 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!