S
Supersiggi
Gast
Hallo!
Ich habe vor kurzem wieder angefangen in Java zu programmieren und hänge
nun an dem Problem fest, dass mein Spieler sich nicht bewegt! In anderen Programmen von früher
geht es sofort, jedoch hier nicht! Er sollte sich eigentlich von links nach rechts bewegen, später wird das dann von der Tastatureingabe übernommen. Vielleicht brauche ich auch einfach nur ein zweites paar Augen und habe einen schusseligen Fehler gemacht ...
Ich habe vor kurzem wieder angefangen in Java zu programmieren und hänge
nun an dem Problem fest, dass mein Spieler sich nicht bewegt! In anderen Programmen von früher
geht es sofort, jedoch hier nicht! Er sollte sich eigentlich von links nach rechts bewegen, später wird das dann von der Tastatureingabe übernommen. Vielleicht brauche ich auch einfach nur ein zweites paar Augen und habe einen schusseligen Fehler gemacht ...
Java:
package sidescoller;
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class main extends Applet implements Runnable, KeyListener
{
Image level;
Image spieler;
Image bullet;
Image enemy;
AudioClip shot;
AudioClip music;
AudioClip explosion;
AudioClip complete;
int levelsize_x=400;
int levelsize_y=600;
int appletsize_x = 400;
int appletsize_y = 400;
int x_speed_player=10;
int radius = 40;
int x_pos=appletsize_x/2-23;
int y_pos=levelsize_y-50;
private Image dbImage;
private Graphics dbg;
/*boolean playerleft=false;
boolean playerright=false;*/
Thread th;
public void init()
{
level = getImage (getCodeBase(), "pic/level1.jpg");
spieler = getImage (getCodeBase(), "pic/raumschiff.png");
enemy = getImage (getCodeBase(), "pic/enemy.png");
bullet = getImage (getCodeBase(), "pic/bullet.png");
addKeyListener(this);
};
public void start()
{
th = new Thread ();
th.start();
};
public void stop()
{
};
public void destroy()
{
}
public void run(){
Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
while (true){
/*if (x_pos > appletsize_x - radius)
{
// Ändern der Richtung des Balles
x_speed_player = -1;
}
// Ball brührt linken Rand und prallt ab
else if (x_pos < radius)
{
// Ändern der Richtung des Balles
x_speed_player = +1;
}*/
// Verändern der x- Koordinate
x_pos += x_speed_player;
// Neuzeichnen des Applets
repaint();
try
{
Thread.sleep (10);
}
catch (InterruptedException ex)
{
// do nothing
}
Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
}
};
public void keyPressed(KeyEvent e)
{
/*if(e.getKeyCode()==e.VK_LEFT){
x_speed_player=-10;
playerleft=true;
}
if(e.getKeyCode()==e.VK_RIGHT){
x_speed_player=10;
playerright=true;
}*/
}
public void keyReleased(KeyEvent e)
{
//playerleft=false;
//playerright=false;
}
public void keyTyped(KeyEvent arg0) {
};
public void update (Graphics g)
{
// Initialisierung des DoubleBuffers
if (dbImage == null)
{
dbImage = createImage (this.getSize().width, this.getSize().height);
dbg = dbImage.getGraphics ();
}
// Bildschirm im Hintergrund löschen
dbg.setColor (getBackground ());
dbg.fillRect (0, 0, this.getSize().width, this.getSize().height);
// Auf gelöschten Hintergrund Vordergrund zeichnen
dbg.setColor (getForeground());
paint (dbg);
// Nun fertig gezeichnetes Bild Offscreen auf dem richtigen Bildschirm anzeigen
g.drawImage (dbImage, 0, 0, this);
}
public void paint(Graphics g)
{
g.drawImage(level, 0,0,this);
g.drawImage(spieler, x_pos,y_pos,this);
};
}