Hallo, ich habe mir mal ein Program überlegt mit dem ich meine Figur in jede Richtung frei steuern kann.
Allerdings finde ich das ganze sowas von umständlich dass mir schlecht wird. wie hätte man das einfacher realisieren können? oder ist das so nötrig?
mfg ungetuem
Allerdings finde ich das ganze sowas von umständlich dass mir schlecht wird. wie hätte man das einfacher realisieren können? oder ist das so nötrig?
Code:
public class Spieler extends Canvas
{
double _xposi;
double _yposi;
int _bewegungsrichtung; //(0-39)*9 grad
double[] _xybewegungen;
int _hp;
int _energie;
int _schilde;
int _waffe;
int _powerup;
Image _spielerbild;
Schuss[] _schuesse;
public Spieler()
{
_xposi = 300.0;
_yposi = 300.0;
_bewegungsrichtung = 0;
_xybewegungen = new double[2];
_xybewegungen[0] = 3;
_xybewegungen[1] = 0;
_hp = 100;
_energie = 100;
_schilde = 100;
_waffe = 1;
_powerup = 0;
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild0.gif");
_schuesse = new Schuss[100];
}
public Spieler(int xposi, int yposi, int bewegungsrichtung, int hp, int energie, int schilde, int waffe, int powerup)
{
_xposi = xposi;
_yposi = yposi;
_hp = hp;
_energie = energie;
_schilde = schilde;
_waffe = waffe;
_powerup = powerup;
_spielerbild = Toolkit.getDefaultToolkit().getImage("");
}
public void schiessen()
{
for(int i=0; i<100; i++)
{
if(_schuesse[i] == null)
{
_schuesse[i] = new Schuss();
_schuesse[i].setzeXPosi(_xposi);
_schuesse[i].setzeYPosi(_yposi);
_schuesse[i].setzeBewegungsRichtung(_bewegungsrichtung);
break;
}
}
}
public Schuss[] gibSchuesse()
{
return _schuesse;
}
public void nachVornBewegen()
{
_xposi = _xposi + _xybewegungen[0];
_yposi = _yposi + _xybewegungen[1];
}
public void nachRechtsDrehen()
{
if(gibBewegungsRichtung() < 39)
{
setzeBewegungsRichtung(gibBewegungsRichtung()+1);
}
if(gibBewegungsRichtung() == 39)
{
setzeBewegungsRichtung(0);
}
}
public void nachLinksDrehen()
{
if(gibBewegungsRichtung() > 0)
{
setzeBewegungsRichtung(gibBewegungsRichtung()-1);
}
if(gibBewegungsRichtung() == 0)
{
setzeBewegungsRichtung(39);
}
}
public void setzeXPosi(int xposi)
{
_xposi = xposi;
}
public int gibXPosi()
{
return (int)_xposi+1;
}
public void setzeYPosi(int yposi)
{
_yposi = yposi;
}
public int gibYPosi()
{
return (int)_yposi+1;
}
public void setzeBewegungsRichtung(int bewegungsrichtung)
{
_bewegungsrichtung = bewegungsrichtung;
if(_bewegungsrichtung == 0)
{
_xybewegungen[0] = 3*Math.cos(0.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(0.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild0.gif");
}
if(_bewegungsrichtung == 1)
{
_xybewegungen[0] = 3*Math.cos(1.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(1.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild1.gif");
}
if(_bewegungsrichtung == 2)
{
_xybewegungen[0] = 3*Math.cos(2.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(2.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild2.gif");
}
if(_bewegungsrichtung == 3)
{
_xybewegungen[0] = 3*Math.cos(3.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(3.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild3.gif");
}
if(_bewegungsrichtung == 4)
{
_xybewegungen[0] = 3*Math.cos(4.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(4.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild4.gif");
}
if(_bewegungsrichtung == 5)
{
_xybewegungen[0] = 3*Math.cos(5.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(5.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild5.gif");
}
if(_bewegungsrichtung == 6)
{
_xybewegungen[0] = 3*Math.cos(6.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(6.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild6.gif");
}
if(_bewegungsrichtung == 7)
{
_xybewegungen[0] = 3*Math.cos(7.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(7.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild7.gif");
}
if(_bewegungsrichtung == 8)
{
_xybewegungen[0] = 3*Math.cos(8.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(8.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild8.gif");
}
if(_bewegungsrichtung == 9)
{
_xybewegungen[0] = 3*Math.cos(9.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(9.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild9.gif");
}
if(_bewegungsrichtung == 10)
{
_xybewegungen[0] = 3*Math.cos(10.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(10.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild10.gif");
}
if(_bewegungsrichtung == 11)
{
_xybewegungen[0] = 3*Math.cos(11.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(11.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild11.gif");
}
if(_bewegungsrichtung == 12)
{
_xybewegungen[0] = 3*Math.cos(12.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(12.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild12.gif");
}
if(_bewegungsrichtung == 13)
{
_xybewegungen[0] = 3*Math.cos(13.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(13.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild13.gif");
}
if(_bewegungsrichtung == 14)
{
_xybewegungen[0] = 3*Math.cos(14.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(14.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild14.gif");
}
if(_bewegungsrichtung == 15)
{
_xybewegungen[0] = 3*Math.cos(15.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(15.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild15.gif");
}
if(_bewegungsrichtung == 16)
{
_xybewegungen[0] = 3*Math.cos(16.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(16.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild16.gif");
}
if(_bewegungsrichtung == 17)
{
_xybewegungen[0] = 3*Math.cos(17.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(17.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild17.gif");
}
if(_bewegungsrichtung == 18)
{
_xybewegungen[0] = 3*Math.cos(18.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(18.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild18.gif");
}
if(_bewegungsrichtung == 19)
{
_xybewegungen[0] = 3*Math.cos(19.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(19.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild19.gif");
}
if(_bewegungsrichtung == 20)
{
_xybewegungen[0] = 3*Math.cos(20.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(20.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild20.gif");
}
if(_bewegungsrichtung == 21)
{
_xybewegungen[0] = 3*Math.cos(21.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(21.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild21.gif");
}
if(_bewegungsrichtung == 22)
{
_xybewegungen[0] = 3*Math.cos(22.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(22.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild22.gif");
}
if(_bewegungsrichtung == 23)
{
_xybewegungen[0] = 3*Math.cos(23.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(23.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild23.gif");
}
if(_bewegungsrichtung == 24)
{
_xybewegungen[0] = 3*Math.cos(24.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(24.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild24.gif");
}
if(_bewegungsrichtung == 25)
{
_xybewegungen[0] = 3*Math.cos(25.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(25.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild25.gif");
}
if(_bewegungsrichtung == 26)
{
_xybewegungen[0] = 3*Math.cos(26.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(26.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild26.gif");
}
if(_bewegungsrichtung == 27)
{
_xybewegungen[0] = 3*Math.cos(27.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(27.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild27.gif");
}
if(_bewegungsrichtung == 28)
{
_xybewegungen[0] = 3*Math.cos(28.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(28.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild28.gif");
}
if(_bewegungsrichtung == 29)
{
_xybewegungen[0] = 3*Math.cos(29.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(29.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild29.gif");
}
if(_bewegungsrichtung == 30)
{
_xybewegungen[0] = 3*Math.cos(30.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(30.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild30.gif");
}
if(_bewegungsrichtung == 31)
{
_xybewegungen[0] = 3*Math.cos(31.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(31.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild31.gif");
}
if(_bewegungsrichtung == 32)
{
_xybewegungen[0] = 3*Math.cos(32.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(32.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild32.gif");
}
if(_bewegungsrichtung == 33)
{
_xybewegungen[0] = 3*Math.cos(33.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(33.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild33.gif");
}
if(_bewegungsrichtung == 34)
{
_xybewegungen[0] = 3*Math.cos(34.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(34.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild34.gif");
}
if(_bewegungsrichtung == 35)
{
_xybewegungen[0] = 3*Math.cos(35.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(35.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild35.gif");
}
if(_bewegungsrichtung == 36)
{
_xybewegungen[0] = 3*Math.cos(36.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(36.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild36.gif");
}
if(_bewegungsrichtung == 37)
{
_xybewegungen[0] = 3*Math.cos(37.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(37.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild37.gif");
}
if(_bewegungsrichtung == 38)
{
_xybewegungen[0] = 3*Math.cos(38.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(38.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild38.gif");
}
if(_bewegungsrichtung == 39)
{
_xybewegungen[0] = 3*Math.cos(39.0/40*2*Math.PI);
_xybewegungen[1] = 3*Math.sin(39.0/40*2*Math.PI);
_spielerbild = Toolkit.getDefaultToolkit().getImage("spielerbild39.gif");
}
}
public int gibBewegungsRichtung()
{
return _bewegungsrichtung;
}
public void setzeXybewegung(double[] xybewegungen)
{
_xybewegungen = xybewegungen;
}
public double[] gibXybewegung()
{
return _xybewegungen;
}
public void setzeHP(int hp)
{
_hp = hp;
}
public int gibHP()
{
return _hp;
}
public void setzeEnergie(int energie)
{
_energie = energie;
}
public int gibEnergie()
{
return _energie;
}
public void setzeSchilde(int schilde)
{
_schilde = schilde;
}
public int gibSchilde()
{
return _schilde;
}
public void setzeWaffe(int waffe)
{
_waffe = waffe;
}
public int gibWaffe()
{
return _waffe;
}
public void setzePowerup(int powerup)
{
_powerup = powerup;
}
public int gibPowerup()
{
return _powerup;
}
public void zeichnen(Graphics g)
{
g.drawImage(_spielerbild,gibXPosi(),gibYPosi(),this);
for(int i=0; i<_schuesse.length; i++)
{
if(_schuesse[i] != null)
{
_schuesse[i].zeichnen(g);
}
}
}
}
mfg ungetuem