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

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

21

13.04.2014, 12:01

Mit einer Maximalhöhe hat das gar nichts zu tun, sondern mit einer Geschwindigkeit. Beim Sprung hat man sobald man den Boden verlässt (quasi sobald du einmal (!) die Space-Taste verarbeitet hast) eine fixe Geschwindigkeit nach oben, die nicht mehr größer wird, sondern durch die Gravitation bei jeder Berechnung ein Stück weiter nach unten gezogen wird. Nach unten ziehst Du, aber Du gibst eben keine fixe Anfangsbewegung nach oben, sondern steigerst die. Und da liegt der Unfug. Da gibt's nix zu steigern. Einmal einen Wert setzen und das war's. Die Maximalhöhe hängt zwar von diesem Wert ab, aber die Geschwindigkeit sollte nicht anders sein, nur weil einmal direkt über ihm eine andere Plattform ist und einmal nicht. Man springt immer mit derselben Stärke ab und stößt dann halt eventuell oben an oder eben nicht.
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]

TSM

Frischling

  • »TSM« ist der Autor dieses Themas

Beiträge: 30

Beruf: Schüler

  • Private Nachricht senden

22

13.04.2014, 12:02

Eigentlich ja aber falls nicht hab ich mir gedacht das so zu machen => : float MaxHeight = Player.getPosition().y - 15; (Hier ist beispielsweise 15 die MaxHöhe) also 15 von der y Position des Spielers gesehen.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

23

13.04.2014, 12:03

Die Maximalhöhe des Sprungs sollte beim Absprung nicht berücksichtigt werden. Du musst dann halt behandeln, falls er oben irgendwo anstößt. Die Maximalhöhe anhand der Absprungstärke zu berechnen (oder aus der gewünschten Höhe die notwendige Stärke) übersteigt dein aktuelles Level an Mathematik. Du kannst natürlich gern mal Deine Lehrer bitten mit dir quadratische Gleichungen durchzugehen, da hast Du Dir sicher Respekt verdient und es kommt ohnehin bald.
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]

TSM

Frischling

  • »TSM« ist der Autor dieses Themas

Beiträge: 30

Beruf: Schüler

  • Private Nachricht senden

24

13.04.2014, 12:05

Ich weiß was du meinst BlueCobold aber wie soll ich das Problem denn Lösen? Kannst du mir ein Beispielscode geben?

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

25

13.04.2014, 12:07

Dein Code ist doch schon da. Nur statt immer wieder die Space-Taste abzufragen und immer wieder einen Geschwindigkeitswert nach oben drauf zu addieren, darfst Du das pro Sprung halt nur einmal machen und halt mit einem höheren Wert. Wenn Du es weiter treiben willst wie bei Mario z.B., dann darf die Space-Taste nur für eine kurze Zeit mehrmals verarbeitet werden pro Sprung.
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]

TSM

Frischling

  • »TSM« ist der Autor dieses Themas

Beiträge: 30

Beruf: Schüler

  • Private Nachricht senden

26

13.04.2014, 12:18

Den Geschwindigkeitswert erhöhe ich ja nur beim Fallen damit es realistischer Wirkt ;D
Ich versuch es mal irgendwie weiter ich hab da so ein Gefühl das mir sagt das ich irgendwas übersehe :dash:

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

27

13.04.2014, 12:32

Das folgende ist Pseudocode, den man auch ohne große Mathekenntnisse verstehen sollte.

Quellcode

1
2
3
4
5
6
7
8
9
WENN Leertaste.gedrückt UND Spieler.aufBoden
    Spieler.Geschwindigkeit.vertikal = Hoch
ENDE
...
...
...
WENN Spieler.nichtAufBoden
    Spieler.Geschwindigkeit.vertikal - Schwerkraft
ENDE
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

TSM

Frischling

  • »TSM« ist der Autor dieses Themas

Beiträge: 30

Beruf: Schüler

  • Private Nachricht senden

28

13.04.2014, 12:37

Das ist ja im grunde mein Code :D nur die Frage ist ja wie kann ich die taste einmal von mir aus lange drücken ohne das der Player anfängt zu fliegen ;D landen tu er ja sowieso nach dem loslassen

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

29

13.04.2014, 12:46

Die Schwerkraft wirkt immer. Deshalb würde ich sie auch immer anwenden. Dann muss die Kollision halt dafür sorgen, dass die vertikale Geschwindigkeit wieder auf 0 gesetzt wird(macht sie hoffentlich sowieso).

Deine Frage wurde schon beantwortet. Du setzt bei einem Tastendruck die Vertikale Geschwindigkeit auf einen bestimmten Wert und ermöglichst auslösen des Sprungs nur, wenn die Figur auf dem Boden steht. Wenn das bei dir nicht funktioniert würde ich sagen, dass deine Bedingung, ob die Figur auf dem Boden steht, nicht richtig funktioniert.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

TSM

Frischling

  • »TSM« ist der Autor dieses Themas

Beiträge: 30

Beruf: Schüler

  • Private Nachricht senden

30

13.04.2014, 12:58

Sorry wenn ich mich jetzt blöd anstelle aber Kannst du mir ein Code oder Pseudo Code schicken..?

Werbeanzeige