vendredi 7 février 2020

Why is my Keyboardhandler list not importing

So the Keyboardhandler prints the right keycodes but in the Playerentity class nothing gets triggered in the IF-Statements. I tried to narrow down the problem to only this problem. In other classes i integrated an ESC-exit method it works there but sadly not in this class. Would be nice to receive some of your help and i hope i have now enough discription for StackOverflow because i dont know what to write. Its my first question and im very desperate and a java beginner so please help me:

package entities;

import java.awt.event.KeyEvent;
import controllers.KeyboardHandler;

public class PlayerEntity extends CircularEntity {

    private static final double VELOCITY = 36d;

    private KeyboardHandler keyboardHandler;
    private int moveX;
    private int moveY;

    public PlayerEntity(double x, double y) 
        super(40);
        keyboardHandler = new KeyboardHandler();
        this.x = x;
        this.y = y;

    }

    @Override
    public void tick(long milliSecondsPassed) {
        moveX = 0;
        moveY = 0;

        if (keyboardHandler.getPressedKeys().contains(KeyEvent.VK_W)) {
            moveY -= 1;
            System.out.println("move");
        }
        if (keyboardHandler.getPressedKeys().contains(KeyEvent.VK_S)) {
            moveY += 1;
        }
        if (keyboardHandler.getPressedKeys().contains(KeyEvent.VK_A)) {
            moveX -= 1;
        }
        if (keyboardHandler.getPressedKeys().contains(KeyEvent.VK_D)) {
            moveX += 1;
        }

        double moveDistance = (milliSecondsPassed / 1000d) * VELOCITY;
        move(moveDistance * moveX, moveDistance * moveY, moveDistance);
    }
}




package entities;

import java.awt.event.KeyEvent;
import controllers.KeyboardHandler;

public class PlayerEntity extends CircularEntity {

    private static final double VELOCITY = 36d;

    private KeyboardHandler keyboardHandler;
    private int moveX;
    private int moveY;

    public PlayerEntity(double x, double y) 
        super(40);
        keyboardHandler = new KeyboardHandler();
        this.x = x;
        this.y = y;

    }

    @Override
    public void tick(long milliSecondsPassed) {
        moveX = 0;
        moveY = 0;

        if (keyboardHandler.getPressedKeys().contains(KeyEvent.VK_W)) {
            moveY -= 1;
            System.out.println("move");
        }
        if (keyboardHandler.getPressedKeys().contains(KeyEvent.VK_S)) {
            moveY += 1;
        }
        if (keyboardHandler.getPressedKeys().contains(KeyEvent.VK_A)) {
           moveX -= 1;
        }
        if (keyboardHandler.getPressedKeys().contains(KeyEvent.VK_D)) {
            moveX += 1;
        }

         double moveDistance = (milliSecondsPassed / 1000d) * VELOCITY;
         move(moveDistance * moveX, moveDistance * moveY, moveDistance);
    }
}


package controllers;

import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import java.util.List;

public class KeyboardHandler extends KeyAdapter {

    List<Integer> keysPressed;

    public KeyboardHandler() {
        keysPressed = new ArrayList<Integer>();
    }

    public void keyPressed(KeyEvent e) {
        if (!keysPressed.contains(e.getKeyCode())) {
            keysPressed.add(e.getKeyCode());
            System.out.println("Add" + e.getKeyCode());
        }
    }

    public void keyReleased(KeyEvent e) {
         keysPressed.remove(Integer.valueOf(e.getKeyCode()));
    }

    public List<Integer> getPressedKeys() {
        return keysPressed;
    }
}

Aucun commentaire:

Enregistrer un commentaire