Also ich habe daein Problem - mein Charakter springt - auf gut deutsch bescheiden:
- zu schnell
- hackig
- kann in der Luft nicht gesteuert werden
Ich benutze die lwjgl und die Slick2d 'Engine'
Hier mein Code zur Spieler Steuerung:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
|
player.update(delta);if (player.pruefeKollision(t)){player.koll = true;}else{player.koll = false;}
if (player.jump == false){player.y = player.y + 1;}if (player.koll){player.jump = true;}else{}
if(Loop == 100){
if (input.isKeyPressed(Input.KEY_W) && player.jump == true){for(i = 0;i < 10;i++){if (input.isKeyPressed(Input.KEY_A)){player.x = player.x - 6;}
/*fortsetzung d. vorherigen Zeile*/if (input.isKeyPressed(Input.KEY_D)){player.x = player.x + 6;}player.y = player.y -16*delta;}
if(i == 9){i = 0;}player.jump = false;}
Loop = 0;}else{Loop++;}
if (input.isKeyPressed(Input.KEY_A)){player.x = player.x - 6;player.jump = false;}
if (input.isKeyPressed(Input.KEY_D)){player.x = player.x + 6;player.jump = false;}
|
Hier noch die Einstellungen für das Spiel:
Game Container:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
|
//Create ContainerAppGameContainer container = new AppGameContainer(new HalloWorld());
//Display INIT
container.setDisplayMode(screen_x, screen_y, fullscreenoption);
//start
containercontainer.start();
//render mode true == ever render
container.setAlwaysRender(renderoption);
//screen clear
container.setClearEachFrame(frameoption);
//Update Interval
container.setMinimumLogicUpdateInterval(mini);
container.setMaximumLogicUpdateInterval(maxi);
|
Update Methode:
|
Quellcode
|
1
2
3
4
|
//load Input from OpenCL (handeld by Slick)
Input input = container.getInput();
//key repeat (hold Keys)
input.enableKeyRepeat();
|
Meine Frage:
Was kann ich tun das, dass richtig funktioniert ?
Bzw. wie kann ich es optimieren?