Wie man sprite-springen in java?

Habe ich KeyEvents für ein sprite für eine Bewegung nach Links, rechts, oben und unten. Ich war nur Herumspielen und dachte Voraus für ein weiteres Projekt, in dem ich will das sprite zu springen. Es muss nicht komplett realistisch wie ich bin am Anfang. Was ich habe ist, wenn die Leertaste gedrückt wird, wird dazu führen, dass der sprite zu springen, können sagen, "dy = -3". So dann habe ich das KeyEvent für keyReleased, es wird fallen, "dy = -2". Dies funktioniert nicht, da der sprite nur weiter zu fallen...kann jemand glänzen etwas Licht?

Gesamte code:
Paket Kollision;

    import java.awt.Image;
    import java.awt.Rectangle;
    import java.awt.event.KeyEvent;

    import java.util.ArrayList;

    import javax.swing.ImageIcon;

    public class Craft {

    private String craft = "pelican.png";

    private int dx;
    private int dy;
    private int x;
    private int y;
    private int width;
    private int height;
    private boolean visible;
    private Image image;
    private ArrayList missiles;


    public Craft() {
    ImageIcon ii = new ImageIcon(this.getClass().getResource(craft));
    image = ii.getImage();
    width = image.getWidth(null);
    height = image.getHeight(null);
    missiles = new ArrayList();
    visible = true;
    x = 100;
    y = 300;
    }


    public void move() {

    x += dx;
    y += dy;

    if (x < 1) {
        x = 1;
    }

    if (y < 1) {
        y = 1;
    }

    }

    public int getX() {
    return x;
    }

    public int getY() {
    return y;
    }

    public Image getImage() {
    return image;
    }

    public ArrayList getMissiles() {
    return missiles;
    }

    public void setVisible(boolean visible) {
    this.visible = visible;
    }

    public boolean isVisible() {
    return visible;
    }

     public Rectangle getBounds() {
    return new Rectangle(x, y, width, height);
    }

    public void keyPressed(KeyEvent e) {

    int key = e.getKeyCode();

    if (key == KeyEvent.VK_SPACE) {

    }
    if (key == KeyEvent.VK_V){
        dx = 6;
    }

    if (key == KeyEvent.VK_LEFT) {
        dx = -1;
    }

    if (key == KeyEvent.VK_RIGHT) {
        dx = 2;
    }

    if (key == KeyEvent.VK_UP) {
        dy = -1;
    }

    if (key == KeyEvent.VK_DOWN) {
        dy = 1;
    }
    }

    public void fire() {
    missiles.add(new Missile(x + width, y + height/2));
    }

    public void keyReleased(KeyEvent e) {
    int key = e.getKeyCode();

    if (key == KeyEvent.VK_LEFT) {
        dx = 0;
    }
    if (key == KeyEvent.VK_SPACE) {

    }

    if (key == KeyEvent.VK_RIGHT) {
        dx = 0;
    }

    if (key == KeyEvent.VK_UP) {
        dy = 0;
    }

    if (key == KeyEvent.VK_DOWN) {
        dy = 0;
    }
    }
    }

Wie Sie vielleicht bemerkt haben, Im neu in Java sowie game programming. Alles was ich will ist der sprite zu gehen, dann kommen wieder nach unten. Es wird immer stationär bleiben, wenn das hilft. Der sprite einfach immer springen, bis er geschlagen wird, von einem kommenden Hindernis. Ich weiß, es ist der code für andere Bewegungen, aber diese werden entfernt, sobald ich beginnen, auf der nächsten sprite.

  • Darren: Erwägen Sie die Erstellung und Buchung der ein kleines Programm, das kompiliert, läuft und zeigt Ihre problem für uns und enthält keinen code, keinen Bezug zu Ihrem problem, und sscce wie diese geben uns die beste Möglichkeit, zu verstehen, Ihr problem und können Ihnen helfen. Auch, wenn das mein Programm und einem Swing-Programm, das ich verwenden würde, key bindings nicht einen KeyListener.
InformationsquelleAutor DarrenKing | 2013-05-11
Schreibe einen Kommentar