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

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

11

02.01.2011, 23:10

Läuft das ist richtig;) Aber der Reiz fehlt da wirklich noch. Sind hier ja schon ein paar gute Ideen genannt worden. Ich denke da wirst du schon was schönes umsetzen können;)
Kanns sein das deine Spielfigur bei diagonaler Bewegung noch zu schnell läuft? Wirte grad für mich so. Du solltest nicht so Sachen machen wie
wenn linke Taste dann bewege nach Links wenn obere Taste dann bewege nach Oben. Mach lieber wenn obere Taste und linke Taste gedrückt sind wird nach links Oben bewegt aber mit gleicher Geschwindigkeit. Den x- und y-Anteil kannst du mit Sinus und Kosinus berechnen.
Ansonsten weiter so:)
„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.“

12

03.01.2011, 21:50

Vielen Dank. Freut mich das es euch gefällt. Ich hab schon ein bisschen weiter gemacht und es fängt an sich allmählich zusammen zusetzen. Postet ruhig noch Verbesserungsvorschläge. Ich freu mich über jedes Feedback.

@codevine: Das ist ja komisch... Ich hab auch ein Win7 64-Bit aber bei mir läuft alles wunderbar. Lad doch einfach nochmal alles runter und entpacke es neu. Hast du mal einen Blick in die Log-Datei geworfen? Steht da was, ist sie leer oder wird sie gar nicht erstellt?

@Burning Wave: Wieso musstest du die openal32.dll löschen? Ich auch ein 64-Bit System und es funktioniert (er meckert sogar wenn sie fehlt).

@Schorch: Es kommt mir auch so vor, als ob die Figur sich horizontal noch zu schnell bewegt. Ich eingaben links und oben und links-oben sind übrigens schon getrennt. Das kam sonst nicht von der Animation hin. Wie genau errechnet man die richtigen wert für die diagonale?

Nexxtron

Alter Hase

Beiträge: 424

Wohnort: Heilbronn

Beruf: Student - Software Engineering

  • Private Nachricht senden

13

03.01.2011, 22:09

sieht schonmal nett aus. Weiter so!
aber versuch die Bilder alle schon ganz am Anfang zu laden, da es bei mir immer beim Hintergrundwechseln hängt, weil er da wahrscheinlich das Bild erst lädt. ( Oder vllt. liegt es an meinem Pc :D )
New Project: Operation CityRacer

14

04.01.2011, 02:08

@Foaly:

Also wenn du nur jeweils einen Winkel für die Diagonalrichtungen hast - also die Bewegungsrichtungen in 45° Schritte unterteilt sind (siehe unten) - dann brauchst du nicht mal Trigonometrie.

Nur 8 Richtungen:

Quellcode

1
2
3
    \ | /
  ---   ---
    / | \


Wenn wir davon ausgehen, dass du einen 2D Vektor hast (oder einfach ausgedrückt einen x- & y-Wert) für die Bewegungsrichtung, und du dann diesen einfach mit der Geschwindigkeit und der FrameTime multiplizierst um auf die tatsächliche Verschiebung zu kommen, dann musst du einfach immer dafür sorgen, dass die Länge des Vektors in jede Richtung gleich 1 ist.

Wenn du jetzt z.B. eine Bewegung nach rechts hast ist das denkbar einfach: (1|0) x-Wert also 1 und y-Wert 0. Jetzt kanst du beide Werte mit Geschwindigkeit und FrameTime multiplizieren und kommst auf eine reine Bewegung nach rechts.
Wenn du dich aber jetzt nach rechts-oben bewegen willst, dann wäre es falsch diesen Vektor zu nehmen: (1|1) - denn die Länge dieses Vektors ist ja (Pythagors) §sqrt{2} § und das ist mit ~1,414 ein gutes Stück mehr als 1 und somit multiplizierst du Geschwindigkeit und FrameTime nicht mehr mit 1 sondern mit etwas mehr als 1. -> Die Bewegung wird schneller.

Lösung: Der Pythagoras aus dem x- & y-Wert muss gleich 1 sein. Da wir ja eine Bewegung mit genau 45° haben (sozusagen eine Winkelhalbierende zwischen der Vertikalen und der Horizontalen gilt, dass x- & y-Wert beide gleich sind. x = y -> §1 = sqrt{x^{2}+x^{2}} §
Also §x = sqrt{ \frac {1}{2}}§ -> Richtungsvektor: ( §sqrt{ \frac {1}{2}§ | §sqrt{ \frac {1}{2}§ ).

Für die anderen Richtungen ändert sich natürlich nur entsprechend das Vorzeichen.

Hoffe das ist nicht zu kompliziert geworden!? :lol:

Gruß
SaRu_

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

15

04.01.2011, 09:39

Berechne dir den Wert aber vor. In jedem Schritt ein oder zwei mal die Wurzel zu berechnen ist nicht besonders schön;) Ansonsten stimme ich zu, hier reicht auch einfach Pythagoras. Zu dem Windows7 64Bit Problem. Habe ich auch drauf und konnte ohne Probleme starten.
„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.“

Stazer

Alter Hase

Beiträge: 468

Wohnort: Berlin

Beruf: Student

  • Private Nachricht senden

16

05.01.2011, 14:23

Ebenfalls 64 Bit und es funktioniert.

MfG Stazer

Werbeanzeige