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

Sleicreider

Frischling

  • »Sleicreider« ist der Autor dieses Themas

Beiträge: 45

Wohnort: Österreich,Steiermark

Beruf: Softwareentwickler

  • Private Nachricht senden

1

22.02.2013, 17:10

Mathe Problem! 2D Grafik Bewegung

Hey,

Ich habe ein Mathe Problem bei der Bewegung von meiner 2D Grafik.

http://s14.directupload.net/images/130222/irdpsfp6.png


Hier ist die Bewegung die es machen soll, vom linken oberen Punkt bis zum rechten unteren Punkt.
Wobei der linke Punkt max am oberen Rand eines Smartphones sein sollte und der rechte Max am unteren Rand.


Kann mir jemand eine Lösung sagn wie ich das am besten löse?

Habs mit ner Funktion versucht, doch die stimmt nicht ganz ;)


Freue mich auf eure Hilfe

mfg

slei

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

2

22.02.2013, 17:43

Was hast du denn versucht? Zeig die Funktion doch einfach mal. Und was genau ist dabei dein Problem. Wie du es allgemein umsetzt? Wie du eine Grafik bewegen kannst? Wie du sie langsam über einen Zeitraum von Punkt a nach Punkt b bewegen kannst? An sich musst du folgende Schritte verstehen und lösen:
Wie verändere ich die Position einer Grafik um diese zu verschieben.
Wie kann ich mit Hilfe dessen die Grafik nicht sofort verschieben, sondern mit einer bestimmten Geschwindigkeit in eine Richtung bewegen.
Wie kann ich damit eine Grafik auf geradem Weg von Punk A zu Punkt B bewegen.
Nun möchtest du keine Bewegung in eine Richtung. Du kannst aber die Grafik zuerst von Punkt A zu Punkt B bewegen. Dann von Punkt B zu Punkt C. Dann von Punkt C zu Punkt D. Damit kannst du im Prinzip dann deine Kurve annähern. Wichtig ist immer erst eine Sache zu lösen und dann mit Hilfe dieser Funktionalität das nächst größere Problem zu lösen.
„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.“

Sleicreider

Frischling

  • »Sleicreider« ist der Autor dieses Themas

Beiträge: 45

Wohnort: Österreich,Steiermark

Beruf: Softwareentwickler

  • Private Nachricht senden

3

22.02.2013, 18:07

Also,
es handelt sich ja hier um ein spiel also hab ich hier ne game loop die sich ! zurzeit noch ! alle 30ms durchläuft(später vllt pro frame usw)
und bis jetzt hab ich es so gemacht das ich einen wert x habe, der immer erhöht wird. z.B jeden durchlauf x += 10;
Zurzeit verwende ich eine Funktion mit y = 100 - x² -> x wird nur so lange erhöht bis es den punkt z.B 0 erreicht so hab ich mal das meine grafik von oben nach unten geht also den ersten abschnitt.
dann habe ich mir überlegt eine zweite funktion zu bauen die den nicht so stark steigenden und neigenden teil zeichnet.

vllt tut man sich leichter wenn man weis worums im spiel geht:

Ein Fahrrad Fahrer fährt eine Rampe bergab und springt über eine schanze - wobei der sprung nicht mit gravitation funktioniert sondern rein nur so aussieht und einfach einen "sprung" darstellt


in einem anderen Theard wurde mir geraten sogenannte "Wegpunkte" abzufahren doch das macht meine Theorie mit der allgemeinen funktion nicht mehr benützbar-

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

4

22.02.2013, 22:48

Ich erinnere mich an den Thread und der Vorschlag mit den Wegpunkten kam von mir. Das selbe habe ich dir hier ja auch vorgeschlagen, es nur nicht so benannt. Mit einer Funktion geht das ganze natürlich auch. Ich sehe nur keine wirkliche Frage. Du schreibst doch die Lösung selbst.
Für x zwischen Grenze1 und Grenze2, benutze Funktion1.
Für x zwischen Grenze2 und Grenze3, benutze Funktion2.
Und so weiter.
In diesem Fall musst du natürlich dann passende Funktionen suchen, die dir gefallen. Da musst du die Vor- und Nachteile abwägen. Aber das ist ja eigentlich im anderen Thread schon passiert, soweit ich das im Kopf habe. Was ist denn deine neue Frage jetzt hier genau. Du hast ein Problem und hast die Lösung dazu ja selbst geschrieben. Wolltest du dich nur noch mal vergewissern, dass das so ok ist? Wenn ja, dann natürlich. Natürlich kann man das so machen. Viele Wege führen nach Rom.
„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.“

Sleicreider

Frischling

  • »Sleicreider« ist der Autor dieses Themas

Beiträge: 45

Wohnort: Österreich,Steiermark

Beruf: Softwareentwickler

  • Private Nachricht senden

5

28.02.2013, 09:25

Also bis jetzt hab ich es so gemacht das ich z.B vom start links oben die erste Funktion habe in demfall zurzeit y = -(x - 10)² bis zu einem gewissen punkt.
und die zweite funktion welche von dem punkte weiter geht mit y = (x - 30)² (bei der ersten steht das minus wegen programmier koordinaten system)

selbst hier habe ich zur zeit 2 probleme nämlich: schaffe ich es nicht richtig das meine zweite funktion bei dem end punkt der ersten funktion weiter geht.
und mein X wird ja pro frame um += 3 erhöt, das heißt das je weiter weg y von 0 ist um so schneller wird mein Objekt.
wie könnte ich das am besten machen das meine geschwindigkeit konstant bleibt?

Und zwecks der Idee mit dem Wegpunkten welche, sowiso am besten wäre, weil für jedes Level 2 Funktionen zu machen ist sehr umständlich.
da wäre es viel leichter. Nur hab ich keinen Plan wie ich das machen soll das der gleich mäßig von punkt zu punkt fährt.

falls da jemand eine idee hat? wäre cool ;)

6

28.02.2013, 11:26

Du könntest es mal mit tanh() probieren und das ganze dann drehen...

tanh: http://www.wolframalpha.com/input/?i=tanh%28x%29
Drehen: http://de.wikipedia.org/wiki/Drehmatrix

viel erfolg.

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

7

01.03.2013, 15:49

Guck doch noch mal weiter oben meinen Beitrag an. Da erkläre ich doch die Schritte die du gehen musst um zum Ziel zu kommen. Fang da mal oben und arbeite dich dann langsam nach unten. Bis zu welchem Schritt kommst du denn da? Oft ist es sinnvoll Probleme zu stückeln und Stück für Stück zu lösen. Mach das einfach mal und guck wie weit du damit kommst. Wenn du dann an einem Punkt nicht weiter kommst, schreib hier noch mal dein genaues Problem. Dann ist es etwas einfacher dir zu helfen:)
„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.“

Werbeanzeige