0111 walker drops bomb
Fortsätt med scenariot walker.
Se till att din figur går i en fyrkant.
Lägg till en klass Bomb
.
Kom ihåg att kompilera ofta.
Klassen Walker
metoden dropBomb
Lägg till en metod dropBomb
. Gör följande i metoden.
Deklarera en lokal variabel som heter myWorld. Variabeln ska vara av datatypen World.
Tilldela variabeln värdet som
getWorld()
returnerar. AnropetgetWorld()
returnerar ett objekt av klassenMyWorld
.Deklarera en lokal variabel som heter theBomb. Låt den vara av datatypen
Bomb
.Lägg ett nytt objekt av klassen
Bomb
i variabelntheBomb
.I klassen
World
finns en metodaddObject
. Använd denna för att lägga till bomben där walker befinner sig. Läs dokumentationen vid behov. Du kan också få ledtrådar i klassenMyWorld
. I klassenActor
finns metodernagetX
ochgetY
. Dessa är också användbara.
metoden squareWalk
Anropa metoden dropBomb
varje gång som figuren svänger.
Klassen Bomb
Få bomben att vicka från sida till sida. Använd metoden turn
för att göra detta. Vid det första anropet av act
svänger den lite åt vänster och vid nästa anrop lite åt höger. Fortsätt sedan att växla så.
Ovanstående kan åstadkommas på följande vis:
Lägg till metoden
isOdd
. Metoden tar en parameter som är ett heltal. Metoden returnerarparameternsNamn % 2 == 1
.Lägg till en egenskap (fält) som heter
frameNumber
. Den ska innehålla heltalet 0 från start.Räkna upp
frameNumber
med ett i metodenact
.Skriv en if-sats i metoden
act
. Om frameNumber är udda så sväng en femtedelsframeNumber
åt höger. OmframeNumber
inte är udda sväng åt andra hållet. Metodenturn
används för att svänga. Den ärvs frånActor
.
Gör så att bomben försvinner efter 50 anrop av metoden act. Ersätt bomben med ett objekt av klassen Explosion
.
Gör det genom att:
- Lägg till en if-sats i metoden
act
. OmframeNumber
har värdet 50 anropas metodenexplode
. Nästa steg är att skriva denna metod.
metoden explode
Deklarera en lokal variabel av datatypen
World
, som hetermyWorld
.Ge
myWorld
värdet som anropet av metodengetWorld
ger.Deklarera en lokal variabel som heter
myExplosion
. Den ska ha datatypenExplosion
.Skapa ett objekt av klassen
Explosion
. Lägg objektet imyExplosion
.Använd metoden
addObject
som finns i klassenWorld
för att lägga tillmyExplosion
. IActor
finns metodernagetX
ochgetY
.Anropa metoden
removeObect
. Metoden finns i klassenWorld
. Skicka medthis
som parameter.
Klassen Explosion
Bild på explosion som du kan använda.
Låt bilden växa från lite storlek med 40 pixlar vid varje anrop av act
.
Ta bort bilden efter 5 anrop av metoden act
.
Ovanstående kan göras på följande vis:
egenskapen frameNumber
Lägg till egenskapen (fältet) frameNumber
på samma sätt som i Bomb
.
konstruktor
Anropa metoden setSize
. Skicka med värdet 1. Nästa steg är att skriva denna metod.
metoden setSize
Metoden tar en parameter som kallas size
. Parametern är ett heltal.
Deklarera en lokal variabel
image
av datatypenGreenfootImage
.Skapa ett objekt av klassen
GreenfootImage
. Skicka med filnamnet "explosion.png" som paramter till konstruktorn.Anropa metoden
scale
på objektetimage
. Skicka med lämpliga parametrar. Läs dokumentationen.Anropa metoden
setImage
. Skicka medimage
som parameter.
metoden act
Öka
frameNumber
med ett.Anropa
setSize
med parameternframeNumber * 40
.Om
frameNumber
har värdet fem så tas det här objektet bort. Kolla iBomb
om du glömt hur man gör.