Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

unused_data

Frischling

  • »unused_data« ist der Autor dieses Themas

Beiträge: 35

Beruf: Schüler

  • Private Nachricht senden

1

09.07.2013, 09:07

Java - Sprung Status

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?
Ferien und den Realschulabschluss in der Tasche (mit Q-Vermerk!!!) und gehe zum neuen Jahr aufs Berufskolleg ;)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »unused_data« (09.07.2013, 09:12)


unused_data

Frischling

  • »unused_data« ist der Autor dieses Themas

Beiträge: 35

Beruf: Schüler

  • Private Nachricht senden

2

09.07.2013, 14:33

Weil Slick es mir nicht erlaubt player.update(); mit Eingaben von der Tastertur zu füttern?

(Zumindest wüsste ich nicht wie)... :)

Loop 100 - ka dann springt er schonmal langsamer...

Edit - und die For-schleife wird verlassen ?(

Edit 2- Welches Buch ???
Ferien und den Realschulabschluss in der Tasche (mit Q-Vermerk!!!) und gehe zum neuen Jahr aufs Berufskolleg ;)

FSA

Community-Fossil

  • Private Nachricht senden

3

09.07.2013, 14:51

Zitat von »unused_data«

Edit 2- Welches Buch ???

Er meinte du machst typische Anfängerfehler, beziehungsweise du kannst noch nicht gut Programmabläufe erstellen oder verstehen. Deswgen solltest du erstmal das üben. Z.B. Mit einem Buch oder ähnlichem, bevor du dich an so etwas wagst. ;)

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

unused_data

Frischling

  • »unused_data« ist der Autor dieses Themas

Beiträge: 35

Beruf: Schüler

  • Private Nachricht senden

4

09.07.2013, 15:19

Dann lasst mich die Frage umformulieren - wie kriege ich den einen flüssigen Sprung für ein Spiel hin ?
Ferien und den Realschulabschluss in der Tasche (mit Q-Vermerk!!!) und gehe zum neuen Jahr aufs Berufskolleg ;)

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

5

09.07.2013, 16:24

Mit folgendem Code.

Quellcode

1
playert.Jump();

Brauchst halt nur ne passende Playerklasse mit passender Jump Funktion. Ganz ehrlich, wer programmieren möchte muss es nun mal lernen;) Wenn du da keine lust drauf hast dann ist das der falsche Weg. Dann guck dir lieber eines davon an:
http://www.yoyogames.com/gamemaker/studio oder
https://www.scirra.com/construct2
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

6

09.07.2013, 16:40

Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

unused_data

Frischling

  • »unused_data« ist der Autor dieses Themas

Beiträge: 35

Beruf: Schüler

  • Private Nachricht senden

7

09.07.2013, 18:45

Danke

Ergänzung: Wenn ich nichts lernen wollte würde ich hier nicht fragen!
Ferien und den Realschulabschluss in der Tasche (mit Q-Vermerk!!!) und gehe zum neuen Jahr aufs Berufskolleg ;)

FSA

Community-Fossil

  • Private Nachricht senden

8

09.07.2013, 19:16

Das hat doch gar nichts mit nicht lernen wollen zu tun. Ich wollte jediglich, bzw "LetsGo", sagen, dass du dich vielleicht etwas übernommen hast / übernimmst und somit der Spaß wegbleibt. Von mir aus kannst du Battlefield 3 in Java programmieren. Die Folgen sind aber wohl klar. ;)

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

unused_data

Frischling

  • »unused_data« ist der Autor dieses Themas

Beiträge: 35

Beruf: Schüler

  • Private Nachricht senden

9

09.07.2013, 20:02

Ich will einfach nur springen .... ich weiß nicht was ihr habt - heute ist aber sowieso ein 'Ich wäre besser im Bett geblieben Tag'.
Ferien und den Realschulabschluss in der Tasche (mit Q-Vermerk!!!) und gehe zum neuen Jahr aufs Berufskolleg ;)

unused_data

Frischling

  • »unused_data« ist der Autor dieses Themas

Beiträge: 35

Beruf: Schüler

  • Private Nachricht senden

10

10.07.2013, 18:42

Ist das besser?

player.update(...,...):

Quellcode

1
2
3
4
5
6
7
8
9
public void update(int delta, GameContainer container){
        acceleration = acceleration + Gravity;
        kollider.setCenterX(x);
        kollider.setCenterY(y);
        Input input = container.getInput();
        if(input.isKeyPressed(Input.KEY_W)){this.y = this.y - (Gravity+Sprungkraft);}
        if(!kollisionTerrain){this.y = this.y + acceleration;}
        if(kollisionTerrain){acceleration = 0;}
                }
Ferien und den Realschulabschluss in der Tasche (mit Q-Vermerk!!!) und gehe zum neuen Jahr aufs Berufskolleg ;)

Werbeanzeige