Hallo liebe Leute,
Ich muss für die Schule eine eigene Ausnahme entwerfen und programmieren, wir benutzen dazu Greenfoot.
Ich hab mich nun mit dem Thema sehr befasst aber weiss nicht wie man selber sowas erstellen kann.
Zum Projekt. Es handelt sich um eine Giraffe die Bäume und Cactus fressen kann und dieses wird gezählt.
Meine Idee ist es, das wenn Greenfoot ein .png Bild einfügen will, und dieses nicht im Ordner ist, eine Fehler-Meldung kommt, und zusätzlich als 2. Ausnahme statt dieser Fehlermeldung er durch die Ausnahme ein anderes Bild nimmt oder dieses auf dem PC sucht.( Falls das geht) Als Beispiel wollte ich imageWESTUNTEN = new GreenfootImage("GiraffeWestUnten.png"); nehmen.
und eine 3 Ausnahme würde ich gerne entwerfen, das wenn die Tasten links und oben gleichzeitig gedrückt sind, die Giraffe nicht in eine richtung weiter läuft sondern stehen bleibt.
Hier der Quelltext der Klasse Giraffe
Ich muss für die Schule eine eigene Ausnahme entwerfen und programmieren, wir benutzen dazu Greenfoot.
Ich hab mich nun mit dem Thema sehr befasst aber weiss nicht wie man selber sowas erstellen kann.
Zum Projekt. Es handelt sich um eine Giraffe die Bäume und Cactus fressen kann und dieses wird gezählt.
Meine Idee ist es, das wenn Greenfoot ein .png Bild einfügen will, und dieses nicht im Ordner ist, eine Fehler-Meldung kommt, und zusätzlich als 2. Ausnahme statt dieser Fehlermeldung er durch die Ausnahme ein anderes Bild nimmt oder dieses auf dem PC sucht.( Falls das geht) Als Beispiel wollte ich imageWESTUNTEN = new GreenfootImage("GiraffeWestUnten.png"); nehmen.
und eine 3 Ausnahme würde ich gerne entwerfen, das wenn die Tasten links und oben gleichzeitig gedrückt sind, die Giraffe nicht in eine richtung weiter läuft sondern stehen bleibt.
Hier der Quelltext der Klasse Giraffe
Java:
/**
* Write a description of class Giraffe here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Giraffe extends Animal
{
private GreenfootImage imageNORD;
private GreenfootImage imageNORDUNTEN;
private GreenfootImage imageOST;
private GreenfootImage imageOSTUNTEN;
private GreenfootImage imageSUED;
private GreenfootImage imageSUEDUNTEN;
private GreenfootImage imageWEST;
private GreenfootImage imageWESTUNTEN;
private int TreesEaten;
private int CactusEaten;
/**
* Act - do whatever the Giraffe wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
public Giraffe()
{
imageNORD = new GreenfootImage("GiraffeNord.png");
imageNORDUNTEN = new GreenfootImage("GiraffeNordUnten.png");
imageOST = new GreenfootImage("GiraffeOst.png");
imageOSTUNTEN = new GreenfootImage("GiraffeOstUnten.png");
imageSUED = new GreenfootImage("GiraffeSued.png");
imageSUEDUNTEN = new GreenfootImage("GiraffeSuedUnten.png");
imageWEST = new GreenfootImage("GiraffeWest.png");
imageWESTUNTEN = new GreenfootImage("GiraffeWestUnten.png");
TreesEaten = 0;
CactusEaten = 0;
}
public void act()
{
checkKeypress();
eatGras();
eatTree();
System.out.println("Ich hab schon " + TreesEaten + " Trees gefressen!");
System.out.println("Ich hab schon " + CactusEaten + " Cactus gefressen!");
if(CactusEaten==2)
{
((Level1) getWorld()).gameOver();
}
}
/**
* Prüft ob eine Steuertaste auf der Tastatur gedrückt wurde.
* Wenn ja, reagiert die Methode entsprechend.
*/
public void checkKeypress()
{
if (Greenfoot.isKeyDown("up"))
{
oben();
setImage(imageNORD);
}
if (Greenfoot.isKeyDown("right"))
{
rechts();
setImage(imageOST);
}
if (Greenfoot.isKeyDown("down"))
{
unten();
setImage(imageSUED);
}
if (Greenfoot.isKeyDown("left"))
{
links();
setImage(imageWEST);
}
/**
* Die Taste "-" senkt den Kopf nach unten.
*/
if (getImage() == imageNORD && Greenfoot.isKeyDown("-") )
{
setImage(imageNORDUNTEN);
unten();
}
if (getImage() == imageOST && Greenfoot.isKeyDown("-") )
{
setImage(imageOSTUNTEN);
links();
}
if (getImage() == imageSUED && Greenfoot.isKeyDown("-") )
{
setImage(imageSUEDUNTEN);
oben();
}
if (getImage() == imageWEST && Greenfoot.isKeyDown("-") )
{
setImage(imageWESTUNTEN);
rechts();
}
/**
* Verhindert das die Giraffe quer laufen kann.
*/
if (Greenfoot.isKeyDown("right") && Greenfoot.isKeyDown("down"))
{
links();
}
if (Greenfoot.isKeyDown("right") && Greenfoot.isKeyDown("up"))
{
unten();
}
if (Greenfoot.isKeyDown("left") && Greenfoot.isKeyDown("down"))
{
oben();
}
if (Greenfoot.isKeyDown("left") && Greenfoot.isKeyDown("up"))
{
unten();
}
}
/**
* Prüft, ob wir auf ein Cactus getroffen sind, wenn der Kopf unten ist.
* Wenn ja, wird dieses gefressen. Wenn nein, passiert nichs.
*/
public void eatGras()
{
if ( canSee(Cactus.class) && Greenfoot.isKeyDown("-"))
{
eat(Cactus.class);
countFood();
CactusEaten = CactusEaten + 1;
}
}
/**
* Prüft, ob wir auf einen Tree getroffen sind, wenn der Kopf oben ist.
* Wenn ja, wird dieser gefresse. Wenn nein, passiert nichs.
*/
public void eatTree()
{
if ( canSee(Tree.class) && !Greenfoot.isKeyDown("-") && Greenfoot.isKeyDown("."))
{
eat(Tree.class);
countFood();
TreesEaten = TreesEaten + 1;
}
}
public boolean foundTree()
{
Actor Tree= getOneIntersectingObject(Tree.class);
if (Tree != null)
{
return true;
}
else
{
return false;
}
}
public int getTreesEaten()
{
return TreesEaten;
}
public int getCactusEaten()
{
return CactusEaten;
}
public void countFood()
{
((Level1) getWorld()).counter.add(1);
}
}