2016-08-06 4 views
1

Ich habe den folgenden Code, um eine Ellipse nach links oben und unten zu bewegen. aber jetzt kann sich der Spieler nur in eine Richtung bewegen. Wenn der Spieler sich also nach links bewegt, kann er sich nicht nach oben oder unten bewegen. Wie mache ich meinen Code so, dass der Spieler gleichzeitig nach links und rechts und nach oben und unten gehen kann? Irgendwelche Vorschläge werden geschätzt. :)wie ich meinen Player in diagonalen Linien und horizontalen Linien bewegen kann

sehen Sie den Code, die ich bisher haben:

void userInput() { 
    if (keyPressed && (key == 's')) { 
     speedY = 1; 
     println("yes"); 
    } 
    if (keyPressed && (key == 'w')) { 
     speedY = -1; 
     println("yes"); 
    } 
    if (keyPressed && (key == 'd')) { 
     println("yes"); 
     speedX = 1; 
    } 
    if (keyPressed && (key == 'a')) { 
     println("yes"); 
     speedX = -1; 
    } 
    if (keyPressed &&(key != 'a' && key != 'd')) { 
     println("no"); 
     speedX = 0; 
    } 

    if (keyPressed &&(key != 'w' && key != 's')) { 
     println("no"); 
     speedY =0; 
    } 
    } 

void movement() { 
    x = x + speedX; 
    y = y + speedY; 

} 

Antwort

1

Eine Möglichkeit, dies zu tun boolean Werte zu verwenden ist, um zu verfolgen, welche Tasten gedrückt werden. Setzen Sie sie auf true in keyPressed(), setzen Sie sie auf false in keyReleased(), und verwenden Sie sie, um Ihren Akteur in der draw() Funktion zu bewegen.

boolean upPressed = false; 
boolean downPressed = false; 
boolean leftPressed = false; 
boolean rightPressed = false; 

float circleX = 50; 
float circleY = 50; 

void draw() { 
    background(200); 

    if (upPressed) { 
    circleY--; 
    } 

    if (downPressed) { 
    circleY++; 
    } 

    if (leftPressed) { 
    circleX--; 
    } 

    if (rightPressed) { 
    circleX++; 
    } 

    ellipse(circleX, circleY, 20, 20); 
} 

void keyPressed() { 
    if (keyCode == UP) { 
    upPressed = true; 
    } 
    else if (keyCode == DOWN) { 
    downPressed = true; 
    } 
    else if (keyCode == LEFT) { 
    leftPressed = true; 
    } 
    else if (keyCode == RIGHT) { 
    rightPressed = true; 
    } 
} 

void keyReleased() { 
    if (keyCode == UP) { 
    upPressed = false; 
    } 
    else if (keyCode == DOWN) { 
    downPressed = false; 
    } 
    else if (keyCode == LEFT) { 
    leftPressed = false; 
    } 
    else if (keyCode == RIGHT) { 
    rightPressed = false; 
    } 
} 

diagonal movement http://happycoding.io/tutorials/processing/images/input-14.gif

Weitere Informationen finden Sie in this tutorial auf Benutzereingaben in Verarbeitung zu finden.

+0

danke Kevin :) auch eine gute Referenz! – FutureCake

+0

@FutureCake Kein Problem. Vollständige Offenlegung: Ich habe dieses Tutorial geschrieben! –

Verwandte Themen