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
Bombi variabelntheBomb.I klassen
Worldfinns 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 klassenActorfinns metodernagetXochgetY. 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
frameNumbermed ett i metodenact.Skriv en if-sats i metoden
act. Om frameNumber är udda så sväng en femtedelsframeNumberåt höger. OmframeNumberinte är udda sväng åt andra hållet. Metodenturnanvä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. OmframeNumberhar 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
myWorldvärdet som anropet av metodengetWorldger.Deklarera en lokal variabel som heter
myExplosion. Den ska ha datatypenExplosion.Skapa ett objekt av klassen
Explosion. Lägg objektet imyExplosion.Använd metoden
addObjectsom finns i klassenWorldför att lägga tillmyExplosion. IActorfinns metodernagetXochgetY.Anropa metoden
removeObect. Metoden finns i klassenWorld. Skicka medthissom 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
imageav datatypenGreenfootImage.Skapa ett objekt av klassen
GreenfootImage. Skicka med filnamnet "explosion.png" som paramter till konstruktorn.Anropa metoden
scalepå objektetimage. Skicka med lämpliga parametrar. Läs dokumentationen.Anropa metoden
setImage. Skicka medimagesom parameter.
metoden act
Öka
frameNumbermed ett.Anropa
setSizemed parameternframeNumber * 40.Om
frameNumberhar värdet fem så tas det här objektet bort. Kolla iBombom du glömt hur man gör.