Hallo zusammen,
ich möchte gerne auf einer Engine ein kleinen und einfaches Minigame schreiben. Dies ist auch soweit fertig, bis auf die "Go" Aktion. Meine Go Akiton soll eine Art Angelhaken werden der beim Überlappen von Sprites Punkte gibt.
Nun habe ich in Klasse A meine Sprites angelegt.
Ich habe mir dann für alle wichtigen Variablen wie dem Playerscore und ComputerScore getter und Setter geschrieben. Sowie ein Boolean für die Flag, welche gesetzt wird, wenn der eine oder andere Spieler gerade die Go Aktion aufruft.
Meine Klasse B verarbeitet dann die Go Aktionen und dort habe ich auch die Hakensprite angelegt.
Das Problem ist, bis jetzt bekomme ich zwar die Hakensprite immer kurz angezeigt aber es gibt auch eine java.lang.NullPointerExecption.
Zudem weiß ich nicht richtig, wie ich das Verfahren anspassen soll.
Die Schwierigkeit liegt bei mir darin, wie weiß ich, welcher Spieler gerade die Go Aktion ausführt und wie kann ich auf die Objekte der Klasse A zugreifen und in Klasse B mit verarbeiten. Denn der Haken soll einen Fisch treffen und dann 5 Punkte auf den jeweiligen Score addieren.
Ich hoffe ich hab es einigermaßen verständlich erklärt.
Mein Versuch war es mit einer Referenz auf die Klasse und Settern/Gettern auf die benötigten Objekte/Variablen
zuzugreifen.
Es wird wohl ein anderer Weg benötigt.
Hoffentlich kann mir einer von euch helfen
Schönen Sonntagabend,
HiTTi
ich möchte gerne auf einer Engine ein kleinen und einfaches Minigame schreiben. Dies ist auch soweit fertig, bis auf die "Go" Aktion. Meine Go Akiton soll eine Art Angelhaken werden der beim Überlappen von Sprites Punkte gibt.
Nun habe ich in Klasse A meine Sprites angelegt.
Java:
public class MyMiniGame extends MiniGame
{
protected boolean overlap= false;
private int goaktions;
private Boolean currentGamerP = false;
private Boolean currentGamerG = false;
private int gscore;
public int getGscore() {
return gscore;
}
public void setGscore(int gscore) {
this.gscore = gscore;
}
private int pscore;
public int getPscore() {
return pscore;
}
public void setPscore(int pscore) {
this.pscore = pscore;
}
MyFish hai = new MyFish(100,100,this);
MyFish fisch1 = new MyFish(100, 100, this);
MyFish fisch2 = new MyFish(100, 100, this);
MyFish fisch3 = new MyFish(100, 100, this);
Sprite steg = new Sprite(650, 250, this);
Sprite fischfilet = new Sprite(50, 50, this);
MyFishman gamer = new MyFishman(100, 100, this);
MyFishman pc = new MyFishman(100, 100, this);
Ich habe mir dann für alle wichtigen Variablen wie dem Playerscore und ComputerScore getter und Setter geschrieben. Sowie ein Boolean für die Flag, welche gesetzt wird, wenn der eine oder andere Spieler gerade die Go Aktion aufruft.
Meine Klasse B verarbeitet dann die Go Aktionen und dort habe ich auch die Hakensprite angelegt.
Java:
public abstract class MySprite extends Sprite {
public MySprite(int size_x, int size_y, MiniGame theGame) {
super(size_x, size_y, theGame);
MySprite.mg = theGame;
}
protected static final int BASE_SPEED = 200;
protected int speedFactor = 1;
static MiniGame mg;
static MyMiniGame mmg;
int pscore,gscore;
Sprite haken = new Sprite(45,400, mg);
Timer timer = new Timer();
public void actionPerformed(Action action) {
int speed = BASE_SPEED * speedFactor;
switch (action) {
case UP:
animate(0, -speed);
break;
case DOWN:
animate(0, speed);
break;
case LEFT:
animate(-speed, 0);
break;
case RIGHT:
animate(speed, 0);
break;
case GO:
haken.paintImage("haken.png");
haken.setPosition(getXPosition() ,getYPosition()-haken.getHeight());
timer.schedule(new TimerTask() {
@Override
public void run() {
haken.dontShow();
}
}, 200);
// Abfrage wenn Fisch getroffen wird
if(haken.overlapsSprite(mmg.getFisch1())||haken.overlapsSprite(mmg.getFisch2())||haken.overlapsSprite(mmg.getFisch3())){
gscore= mmg.getGscore();
pscore= mmg.getPscore();
if(mmg.getCurrentGamerG()==true)
{
gscore++;
mmg.setGscore(gscore);
}
if( mmg.getCurrentGamerP()==true)
{
pscore++;
mmg.setGscore(pscore);
}
}
break;
default:
break;
}
}
}
Zudem weiß ich nicht richtig, wie ich das Verfahren anspassen soll.
Die Schwierigkeit liegt bei mir darin, wie weiß ich, welcher Spieler gerade die Go Aktion ausführt und wie kann ich auf die Objekte der Klasse A zugreifen und in Klasse B mit verarbeiten. Denn der Haken soll einen Fisch treffen und dann 5 Punkte auf den jeweiligen Score addieren.
Ich hoffe ich hab es einigermaßen verständlich erklärt.
Mein Versuch war es mit einer Referenz auf die Klasse und Settern/Gettern auf die benötigten Objekte/Variablen
zuzugreifen.
Es wird wohl ein anderer Weg benötigt.
Hoffentlich kann mir einer von euch helfen
Schönen Sonntagabend,
HiTTi