Startseite | Forum | Artikel/Tutorials | Downloads | Links
 
Navigation
Startseite
Forum
Artikel/Tutorials
Downloads
Bücher
Links
Kontakt
Galerie
Suche

Anzeige
FlashEcke.de

Shoutbox
Du musst Dich einloggen, um eine Nachricht zu schreiben.

philipp k
18.08.2010
Danke für die Info :-)

Marc
18.08.2010
Du darfst die Grafiken frei verwenden. Ein Hinweis, dass Sie von hier kommen wäre nett, ist aber nicht zwingend erforderlich

philipp k
18.08.2010
Unter welcher Lizenz stehen denn nun die Grafiken? "Isogames.de" ist keine mir bekannte Lizenz.

GSlang
03.01.2010
WoW

Himmelweiss
29.12.2009
Denk dir nix, bei mir antwort doch auch keiner smiley Naja k kurdt hat mal seinen Senf dazugegeben, aber sonst.. smiley

Shoutbox Archiv

Benutzer Online
Gäste Online: 6
Keine Mitglieder Online

Registrierte Mitglieder: 1,050
Neustes Mitglied: Hydralistika

Thread ansehen
Isogames.de | Programmieren | Game Engines
Autor Die GameLoop
SirMr
Mitglied

Beiträge: 3
Eingetreten: 10.01.10
Eingetragen um 10. Januar 2010 19:52
Hallo,
die GameLoop ist der Kern eines Spiels, das steht fest.
Nun habe ich mir das GameLoop Tutoriel, das unter der URL "http://dewitters.koonsolo.com/gameloop.html" zu finden ist, durchgelesen und mir ist diesbezüglich eine Frage zu der letzten GameLoop - Variante (Constant Game Speed independent of Variable FPS) aufgekommen.

In welcher Funktion prüfe ich, ob eine Kollision stattgefunden hat?
In der updateGame oder displayGame Funktion?

Angenommen ich prüfe die Kollision zwischen Objekten in updateGame und in displayGame berechne ich die neue Position des Objektes und zeichne es. Da displayGame viel häufiger aufgerufen wird als updateGame könnte doch geschen, dass ein Objekt das andere passiert, bevor eine Kollsion in updateGame bemerkt wird?

Danke im Voraus smiley.

ps: Bin neu in der Spieleprogrammierung.
Bearbeitet von SirMr auf 10. Januar 2010 19:53
Autor RE: Die GameLoop
kurdt
Administrator

User Avatar

Beiträge: 236
Eingetreten: 22.08.06
Eingetragen um 10. Januar 2010 20:26
Hey SirMr,
solche Sachen sollten auch immer in updateGame() gepackt werden, da logischerweise Werte verändert werden.
displayGame() ist zum Zeichnen gedacht und sollte auch für nichts anderes verwendet werden.


Autor RE: Die GameLoop
SirMr
Mitglied

Beiträge: 3
Eingetreten: 10.01.10
Eingetragen um 10. Januar 2010 21:37
kurdt schrieb:
Hey SirMr,
solche Sachen sollten auch immer in updateGame() gepackt werden, da logischerweise Werte verändert werden.
displayGame() ist zum Zeichnen gedacht und sollte auch für nichts anderes verwendet werden.


Hmm, warum dann eine hohe Framerate?
Wenn die Position der Objekte nur in der updateGame Funktion gändert wird, dann ist es nur eine Verschwendung von CPU Zyklen die displayGame Funktion ünnötig oft aufzurufen - das Dargestellte veränderst sich schließlich nur nach dem Aufruf von updateGame.

Wie realisieren ich die Bewegung von schnellen Objekten?
Zum Beispiel: Zwei Autos, eines fährt 100km/h, das andere 1000km/h. Es würde doch nicht
funktionieren, das schnelle Auto jedesmal um 10 Pixel zu verschieben und das langsame nur um ein Pixel. Dann würde es doch so aussehen, als ob das schnelle Auto springt.
Bearbeitet von SirMr auf 10. Januar 2010 21:38
Autor RE: Die GameLoop
kurdt
Administrator

User Avatar

Beiträge: 236
Eingetreten: 22.08.06
Eingetragen um 11. Januar 2010 09:46
SirMr schrieb:
Wie realisieren ich die Bewegung von schnellen Objekten?
Zum Beispiel: Zwei Autos, eines fährt 100km/h, das andere 1000km/h. Es würde doch nicht
funktionieren, das schnelle Auto jedesmal um 10 Pixel zu verschieben und das langsame nur um ein Pixel. Dann würde es doch so aussehen, als ob das schnelle Auto springt.


Das realisierst du wie gehabt.
So und ich hab mal flink dieses Tutorial überflogen. Du übergibst der renderGame() in diesem Fall einen Interpolationwert den du mit der Geschwindigkeit jedes Objects multiplizieren und dann zur aktuellen Position hinzuaddieren musst.
Durch dieses Interpolationsverfahren verhinderst du dann eben das sich das schnelle Auto mit 10 Pixel so sprunghaft vorbewegt da diese 10 Pixel dann v/s repräsentieren. Es bewegt sich 10 Pixel in einer Sekunde vorwärts, z.B.
Dies ist dann unabhängig von der FPS Rate und der zugrunde liegenden Hardware.

PS: Es ist früh am Morgen und ich bin noch ziemlich müde, bei Unverständlichkeit einfach warten bis ich die restlichen Vorlesungen gar ausgepennt hab ...
Bearbeitet von kurdt auf 11. Januar 2010 09:49
Autor RE: Die GameLoop
SirMr
Mitglied

Beiträge: 3
Eingetreten: 10.01.10
Eingetragen um 11. Januar 2010 16:43
Danke smiley
Springe zu Forum:
Login
Username

Passwort



Noch kein Mitglied?
Klicke hier um dich zu registrieren.

Passwort vergessen?
Fordere Hier ein neues an

Letzer Artikel
01 - Creating a 2D G...
Quellcode-Dokumentat...
IsoGuide Teil 2
C++ Basics
Teil 3: Serie zur En...

Letzten Kommentare
Artikel Kommentar Aber da ich mich die l...
Artikel Kommentar Hallo , ich weiß das i...
Artikel Kommentar Ich habe für einige In...
Artikel Kommentar Sehr schöner Beitrag! ...
Artikel Kommentar Wann kommt denn nun da...

Mitgliederstimme
Welche Programmier-/Scriptsprache benutzt du für dein derzeitiges Projekt?

C/C++

C#

Basic

Actionscript

PHP

Pascal/Delphi

Java

Andere

Du musst dich einloggen, um zu voten.

Partner
GameDev.de
GFX-Sector - Your GFX-Source No. 1
Partner werden!

 
Copyright © 2008 Isogames.de

733944 Eindeutige Besuche