0085 spel spindel

Nu är det dags att skriva ett spel på egen hand. Kunskaperna du förvärvat i kapitel ett till tre bör räcka.

Klicka

  • scenario
  • New Java Scenario

för att skapa ett nytt projekt spider-game i mappen programmering.

Välj valfri bakgrund till klassen MyWorld.

Till klasserna nedan finns det lämpliga bilder under animals.

Klassen Spider

Spindeln ska styras med tangenterna wasd.

  • w - upp 3 pixlar
  • a - vänster 3 pixlar
  • s - ner 3 pixlar
  • d - höger 3 pixlar

Spindeln kan flyttas diagonalt om två lämpliga tangenter hålls ner, till exempel w och a.

Metoden tryMove

Om du inte redan har gjort det flytta koden till en metod som du kallar tryMove. Metoden tar inga parametrar.

Metoden tryEat

Metoden tar inga parametrar. Om spindeln kolliderar med en fluga äts den upp. Ta bort flugan. Se till att metoden anropas på lämpligt ställe.

Klassen Fly

Vid varje anrop av act-metoden flytta flugan 5 pixlar.

Det är 50% chans att flugan svänger. Hur mycket den svänger slumpas i intervallet -15 till +15 grader.

Om den är vid en kant svänger flugan. Hur mycket den svänger slumpas i intervallet - 45 till +45 grader.

Metoden move

Flytta koden ovan till metoden move. Anropa metoden på lämpligt ställe. Metoden tar inga parametrar.

Klassen Lizard

Lägg till följande kod efter klassens startklammer. Koden gör att ödlans startriktning slumpas.

public Lizard()
{
  setRotation(Greenfoot.getRandomNumber(360));
}

Metoden move

Metoden tar inga parametrar. Ödlan flyttar 2 pixlar framåt. Om ödlan är vid kanten svänger den. Hur mycket den svänger slumpas i intervallet - 45 till + 45 grader. Anropa metoden på lämpligt ställe.

Metoden eat

Metoden tar inga parametrar. Ödlan äter både spindlar och flugor. Ta bort uppätna spindlar och flugor. Om spindeln blir uppäten avslutas spelet. Anropa metoden på lämpligt ställe.

Hur måste du ändra koden i denna metod för att ödlan ska kunna äta maskar också, klassen Worm? Och hur blir det om vi lägger till en sort till som ödlan kan äta?

Det finns en tjusig lösning. I nästa utmaning används den.

Metoden eat igen

Skriv en ny eat-metod. Behåll den gamla. Den nya ska ta en parameter av typen

java.lang.Class<?>

Kalla parametern för food. Skriv färdigt resten av metoden. Anropa metoden på lämpligt ställe. Se till att den äter både flugor och spindlar. När du har sett att det fungerar ändrar du så att den bara äter spindlar. Nu blir koden lite enklare.

För att äta spindlar och flugor anropas metoden så här:

eat(Spider.class);
eat(Fly.class);

Extra

Fortsätt att utveckla spelet.