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.

  1. Deklarera en lokal variabel som heter myWorld. Variabeln ska vara av datatypen World.

  2. Tilldela variabeln värdet som getWorld() returnerar. Anropet getWorld() returnerar ett objekt av klassen MyWorld.

  3. Deklarera en lokal variabel som heter theBomb. Låt den vara av datatypen Bomb.

  4. Lägg ett nytt objekt av klassen Bomb i variabeln theBomb.

  5. I klassen World finns en metod addObject. 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 klassen MyWorld. I klassen Actor finns metoderna getX och getY. 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:

  1. Lägg till metoden isOdd. Metoden tar en parameter som är ett heltal. Metoden returnerar parameternsNamn % 2 == 1.

  2. Lägg till en egenskap (fält) som heter frameNumber. Den ska innehålla heltalet 0 från start.

  3. Räkna upp frameNumber med ett i metoden act.

  4. Skriv en if-sats i metoden act. Om frameNumber är udda så sväng en femtedels frameNumber åt höger. Om frameNumber inte är udda sväng åt andra hållet. Metoden turn används för att svänga. Den ärvs från Actor.

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:

  1. Lägg till en if-sats i metoden act. Om frameNumber har värdet 50 anropas metoden explode. Nästa steg är att skriva denna metod.

metoden explode

  1. Deklarera en lokal variabel av datatypen World, som heter myWorld.

  2. Ge myWorld värdet som anropet av metoden getWorld ger.

  3. Deklarera en lokal variabel som heter myExplosion. Den ska ha datatypen Explosion.

  4. Skapa ett objekt av klassen Explosion. Lägg objektet i myExplosion.

  5. Använd metoden addObject som finns i klassen World för att lägga till myExplosion. I Actor finns metoderna getX och getY.

  6. Anropa metoden removeObect. Metoden finns i klassen World. Skicka med this 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.

  1. Deklarera en lokal variabel image av datatypen GreenfootImage.

  2. Skapa ett objekt av klassen GreenfootImage. Skicka med filnamnet "explosion.png" som paramter till konstruktorn.

  3. Anropa metoden scale på objektet image. Skicka med lämpliga parametrar. Läs dokumentationen.

  4. Anropa metoden setImage. Skicka med image som parameter.

metoden act

  1. Öka frameNumber med ett.

  2. Anropa setSize med parametern frameNumber * 40.

  3. Om frameNumber har värdet fem så tas det här objektet bort. Kolla i Bomb om du glömt hur man gör.