Ich mache ein Spiel, in dem ich einen Ort mit einem Schwimmer setze, ist das Problem, der Schwimmer wird nicht höher sie 255? Dies ist, wie mache ich die Schwimmer höher gehen: 1. add-Methode:Float kann nicht über 256 gehen?
public Location add(float x, float y, float z){
this.x += x; this.y += y; this.z += z;
return this;
}
2. Update-Methode
public void update(){
float speed = 0.00001f;
float rotspeed = 0.00001f;
if (Keyboard.isKeyDown(Keyboard.KEY_UP)) Main.renderer.rotate(-rotspeed, 0, 0);
if (Keyboard.isKeyDown(Keyboard.KEY_DOWN)) Main.renderer.rotate(rotspeed, 0, 0);
if (Keyboard.isKeyDown(Keyboard.KEY_RIGHT)) Main.renderer.rotate(0, rotspeed, 0);
if (Keyboard.isKeyDown(Keyboard.KEY_LEFT)) Main.renderer.rotate(0, -rotspeed, 0);
if (Keyboard.isKeyDown(Keyboard.KEY_W)) Main.renderer.renderLocation.add(0, 0, speed);
if (Keyboard.isKeyDown(Keyboard.KEY_S)) Main.renderer.renderLocation.add(0, 0, -speed);
if (Keyboard.isKeyDown(Keyboard.KEY_D)) Main.renderer.renderLocation.add(-speed, 0, 0);
if (Keyboard.isKeyDown(Keyboard.KEY_A)) Main.renderer.renderLocation.add(speed, 0, 0);
if (Keyboard.isKeyDown(Keyboard.KEY_SPACE)) Main.renderer.renderLocation.add(0, -speed, 0);
if (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) Main.renderer.renderLocation.add(0, speed, 0);
fixRenderRotation();
}
Das Update in einer while-Schleife in einem untergeordneten Thread aufgerufen wird . Diese
ist, was ich für
public void update(){
System.out.println("render_location "+renderLocation.x+" "+renderLocation.y+" "+renderLocation.z+" rotation "+rotation.x+" "+rotation.y+" "+rotation.z);
GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
GL11.glLoadIdentity();
GL11.glTranslatef(renderLocation.x, renderLocation.y, renderLocation.z);
//GL11.glTranslatef(renderLocation.x, renderLocation.y, renderLocation.z);
GL11.glRotatef(rotation.x, 1F, 0F, 0F);
GL11.glRotatef(rotation.y, 0F, 1F, 0F);
GL11.glRotatef(rotation.z, 0F, 0F, 1F);
((RenderObject.UnknownRenderInformation) collection.getRenderInformation()).act();
}
den Schwimmer mit Es ist die renderLocaiton
Variable. Ich halte es nicht davon ab, höher zu gehen.
* Etwas * ist, und das ist nicht die interne Darstellung von Schwimmern. –
@DaveNewton bist du sicher? Ich würde mich fragen, ob ein "float" genau genug war, um "255.00001f" im Unterschied zu "255f" darzustellen. –
@LouisWasserman \t Sicher, aber das ist nicht, was die Frage fragt - OP sagt, es wird nicht über 256 gehen. Oder 255, je nachdem, welchen Satz Sie gelesen haben. –