Hi,
und zwar bin ich gerade neu mit JMonkey angefangen und habe ein Problem mit der CollisionDetecion. In dem Tutorial darüber, wird es nur Anhand eines Models erklärt wo man die Collision anhand der Vorder-/Hinterräder erkennen lässt. Jetzt habe ich jedoch nur einen "Ball" gemacht, welcher in einem Feld bleiben soll. Doch sobald ich deine Kollision erkenne, bleibt er natürlich an der Wand hängen und hat auch wenn ich die Richtung ändere immer noch eine Kollision.
Ich würd natürlich am liebsten vorher die Position testen, bevor der Ball in die Kollision "fährt" nur mit player.hasCollision kann ich nur die aktuelle Position testen.
Wäre für Hilfe/ Hinweise dankbar.
und zwar bin ich gerade neu mit JMonkey angefangen und habe ein Problem mit der CollisionDetecion. In dem Tutorial darüber, wird es nur Anhand eines Models erklärt wo man die Collision anhand der Vorder-/Hinterräder erkennen lässt. Jetzt habe ich jedoch nur einen "Ball" gemacht, welcher in einem Feld bleiben soll. Doch sobald ich deine Kollision erkenne, bleibt er natürlich an der Wand hängen und hat auch wenn ich die Richtung ändere immer noch eine Kollision.
Ich würd natürlich am liebsten vorher die Position testen, bevor der Ball in die Kollision "fährt" nur mit player.hasCollision kann ich nur die aktuelle Position testen.
Java:
protected void update(float interpolation) {
// update the time to get the framerate
timer.update();
interpolation = timer.getTimePerFrame();
Vector3f localTranslation = player.getLocalTranslation();
System.out.println("local " + localTranslation);
if (KeyBindingManager.getKeyBindingManager().isValidCommand(MOVE_UP,
true)) {
player.setDirection(new Vector3f(0,0,-1));
}
if (KeyBindingManager.getKeyBindingManager().isValidCommand(MOVE_DOWN,
true)) {
player.setDirection(new Vector3f(0,0,1));
}
if (KeyBindingManager.getKeyBindingManager().isValidCommand(MOVE_LEFT,
true)) {
player.setDirection(new Vector3f(-1,0,0));
}
if (KeyBindingManager.getKeyBindingManager().isValidCommand(MOVE_RIGHT,
true)) {
player.setDirection(new Vector3f(1,0,0));
}
if (!player.hasCollision(walls, false)){
System.out.println("no collision");
localTranslation.addLocal(player.getDirection().mult(interpolation * player.getSpeed()));
} else {
System.out.println("collision");
}
Wäre für Hilfe/ Hinweise dankbar.