funktione springes over i nogle tilfælde
jeg er igang med at lave en skabelon til et spil, hvor forskellige figure bevæger sig rundt. Indtil videre har jeg lavet hovedpersonen og een fjende. de arver begge klassen figur, der blandt andet indeholder funktionen gå:public void gå(Point punkt)
{
if (levende)
{
if (bevæg != null)
if (bevæg.igang())
bevæg.Stop();
bevæg = new flyt(this);
bevæg.start(hastighed, punkt);
}
}
flyt er den tråd der får personerne til at gå, via funktionen bevæg:
public void bevæg()
{
findNæste();
System.out.println(ref.navn + " næste");
if (ref.ref.muligt(næste.rP(), ref.radius) && !ref.ref.pause && kører)
{
ref.koord = næste.rP();
ok = true;
} else
{
}
if (ok)
{
ok = false;
tiden = new timer(this, 1000 / (hastighed / skridt), 1);
tiden.start();
} else
{
Stop();
}
ref.ref.repaint();
}
der startes af funktionen start:
public void start(int h, Point r)
{
System.out.println(ref.navn + " start");
hastighed = h;
retning = r;
skridt = (hastighed / 50) + 1;
if (skridt < 2)
skridt = 2;
if (skridt > 3)
skridt = 3;
if (kører)
{
tiden.stop();
}
kører = true;
næste.set(ref.koord);
super.start();
}
jeg har to underklasser til figur: helt og monster i begge klasser kaldes funktionen gå. i helt, via en mouslistener, og i monster via en timer der sætter kursen mod helten hvert sekundt:
public void aktiver()
{
if (levende)
{
if (koord.distance(ref.spiller.koord) < aRadius + ref.spiller.radius)
angrib(ref.spiller);
else
gå(ref.spiller.koord);
tid = new timerM(this, 1000);
tid.start();
}
}
jeg kan i konsollen se at helten går fint, men mit monster bevæger sig ikke, og jeg kan se at det springer funktionen "ref.ref.muligt" over i funktionen bevæg.
jeg ved ikke hvor godt jeg fik det forklaret, men pointen er at når den samme funktion kaldes, fra to forskellige underklasser, virker den ikke i den ene af dem...
