X
xtoph
Gast
hi
ich versuche gerade eine art autorennspiel zu programmieren. hierzu möchte ich das entsprechende auto steuern.
wenn ich vor und zurück drücke, soll es fahren und bei rechts und links, sich drehen.
jetzt hab ich folgendes problem. wenn ich auf der stelle drehen kann, kann ich nicht mehr vor und zurück fahren, sonder nur nach oben oder unten. ich möchte aber in fahrtrichtung fahren. und wenn ich in fahrtrichtung fahren kann, kann ich nicht mehr auf der stelle drehn, es ist wie verhext. probier jetzt schon 2tage.
vielleicht kann mir jemand helfen:
wenn ich die zeilen ändere:
kann ich zwar fahren, aba nich mehr auf der stelle drehn....
hier noch der KeyAdapter:
es wäre super, wenn mir jemand helfen könnte.
THX
ich versuche gerade eine art autorennspiel zu programmieren. hierzu möchte ich das entsprechende auto steuern.
wenn ich vor und zurück drücke, soll es fahren und bei rechts und links, sich drehen.
jetzt hab ich folgendes problem. wenn ich auf der stelle drehen kann, kann ich nicht mehr vor und zurück fahren, sonder nur nach oben oder unten. ich möchte aber in fahrtrichtung fahren. und wenn ich in fahrtrichtung fahren kann, kann ich nicht mehr auf der stelle drehn, es ist wie verhext. probier jetzt schon 2tage.
vielleicht kann mir jemand helfen:
Code:
import java.awt.Canvas;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
/*
* Created on 24.03.2004
*/
/**
* @author _xtoph_
*/
public class Bild extends Canvas {
Image i;
double a;
KeyListener kl = new KeyListener(this);
int xpos = 20;
int ypos = 20;
public Bild(Image i){
this.i=i;
a=0;
addKeyListener(kl);
}
public int getPosX(){
return i.getHeight(this);
//return getX();
}
public void paint(Graphics g){
Graphics2D g2d = (Graphics2D) g;
//rotation
// AffineTransform at = AffineTransform.getRotateInstance( a, 100 /2, 100 /2 );
// g2d.setTransform( at );
g2d.translate(xpos+75,ypos+50);
g2d.rotate(a);
g2d.translate(- (xpos+75),- (ypos+50));
g2d.drawImage(i, (int) xpos, (int) ypos, this);
g2d.drawString("bl"+i.getHeight(this) + i.getWidth(this) + g2d.getPaint() + this.i.getHeight(this), 200, 200);
}
}
wenn ich die zeilen ändere:
Code:
g2d.translate(xpos+75,xpos+50);
g2d.rotate(a);
g2d.translate(- (xpos+75),- (xpos+50));
kann ich zwar fahren, aba nich mehr auf der stelle drehn....
hier noch der KeyAdapter:
Code:
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
/**
* @author _xtoph_
*
* To change the template for this generated type comment go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
class KeyListener extends KeyAdapter {
Bild bild1;
KeyListener(Bild bi) {
bild1 = bi;
}
public void keyPressed(KeyEvent event) {
switch (event.getKeyCode()) {
case (KeyEvent.VK_DOWN) :
bild1.ypos = bild1.ypos + 2;
break;
case (KeyEvent.VK_UP) :
bild1.ypos = bild1.ypos - 2;
break;
case (KeyEvent.VK_LEFT) :
bild1.a = bild1.a - 0.03;
break;
case (KeyEvent.VK_RIGHT) :
bild1.a = bild1.a + 0.03;
break;
}
bild1.repaint();
}
}
es wäre super, wenn mir jemand helfen könnte.
THX