Wie kann man eine schräge Steuerung in Greenfoot progammieren (Auto soll schräg fahren)?

...komplette Frage anzeigen

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

kannst du bitte deinen Code herzeigen?

(bitte mit der <>(Code) funktion von gutefrage)

public class Spieler_Auto extends Actor

{

public void act()
{
if(Greenfoot.isKeyDown("right"))

{
this.moveRight();
}

if(Greenfoot.isKeyDown("left"))
{
this.moveLeft();
}


if(Greenfoot.isKeyDown("up"))
{
this.moveUp();
}

if(Greenfoot.isKeyDown("down"))

{
this.moveDown();
}

}


public void moveRight()

{
this.setLocation(this.getX()+5, this.getY());
}

public void moveLeft()

{
setLocation(this.getX()-5, this.getY());
}

public void moveUp()

{
this.setLocation(getX(), getY() - 5);
}

public void moveDown()

{
this.setLocation(getX(), getY() + 5);
}

}
0

Hoffe ist verständlich so mit der Einrückung

0
@321abca

sobald der zweite key gedrückt wird, wird der erste sozusagen "ausgeschaltet"

daher ist ein umweg notwendig

mach dir am Anfang von act() für jeden Button einen boolean z.B. keyRight = false

dann in den if abfragen statt sofort this.moveRight() 
setzt du keyRight auf true   ( das natürlich für alle richtungen)

und dann fragst du ab

if( keyRight==true && keyUp==true ) {
   this.moveUpRight);
}
else if(key Right==true && keyDown==true){
   this.moveDownRight();
}
...dasselbe mit left...
else if (keyRight == true){
   this.moveRight();
}
... wieder mit allen Richtungen

falls du es nicht hinbekommst bzw. weitere Fragen hast einfach melden ;)

0

Du müsstest doch schon im 45° Winkel fahren können. Falls du eine richtige Steuerung möchtest, musst du einen Winkel für die Vorderräder festlegen. Dann kannst du deine Geschwindigkeit mit Pythagoras auf die Streckenveränderungen umrechnen. Und den Drehpunkt muss auf der Hinterachse liegen. Das musst du ausprobieren ob es reicht die Streckenveränderung zum Mittelpunkt der Hinterachse addieren.

Was möchtest Du wissen?