AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Cross-Platform Game Loop

Ein Thema von milos · begonnen am 31. Jul 2016 · letzter Beitrag vom 31. Jul 2016
Antwort Antwort
Benutzerbild von milos
milos

Registriert seit: 14. Jul 2008
Ort: Bern (CH)
510 Beiträge
 
Delphi 11 Alexandria
 
#1

Cross-Platform Game Loop

  Alt 31. Jul 2016, 02:23
Hi,

Meine kleine Spiele Engine hat momentan noch so einen loop mit Application.ProcessMessages:

Delphi-Quellcode:
begin
  while Running do
  begin
    Input;
    Update;
    Draw;
    Application.ProcessMessages;
  end;
end;
Mir ist bewusst dass das so nicht gut ist, jedoch habe ich es bisher so gemacht weil ich mich nur mit den form messages in windoof auskenne und nicht weiss wie ich sonst eine Schleife kriege ohne alle anderen Messages zu blockieren. Sollte man das lieber in einen weiteren Thread auslegen und dann von dort aus z.b. das Canvas neu zeichnen? Wie bekommt man das am besten hin ohne das es mal knallt?

Freundliche Grüsse
Milos
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Cross-Platform Game Loop

  Alt 31. Jul 2016, 08:47
Gleiche Frage => Gleiche Antwort
http://www.delphipraxis.net/1243108-post2.html

Ok, der Link läuft ins Leere (auch wenn man über die Homepage dahin navigiert) - aktuell muss man sich das SmartMobileStudio installieren um an die Demos zu kommen. Eine Registrierung oder ein Trial Key ist für die reine Installation nicht erforderlich.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (31. Jul 2016 um 09:22 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von milos
milos

Registriert seit: 14. Jul 2008
Ort: Bern (CH)
510 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Cross-Platform Game Loop

  Alt 31. Jul 2016, 09:43
Naja die Frage ist nicht die selbe. Hier frage ich wie ich die vorhandene Game Loop verbessere die auch auf Vorschläge im von dir verlinkten Thread basiert. Ausserdem scheint der Link tot zu sein... Und zwar möchte ich das anders machen, sodass während des "Loops" auch alle Form Events feuern ohne das ich unsichere aufrufe wie Application.ProcessMessages machen muss und das auf Windows UND iOS/Android...

Freundliche Grüsse
Milos
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Cross-Platform Game Loop

  Alt 31. Jul 2016, 09:48
Dann mach es doch so wie es da steht ... Für die Taktung nimmst du einen Timer und los geht es
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von milos
milos

Registriert seit: 14. Jul 2008
Ort: Bern (CH)
510 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Cross-Platform Game Loop

  Alt 31. Jul 2016, 11:10
Dann mach es doch so wie es da steht ... Für die Taktung nimmst du einen Timer und los geht es
Du willst mir doch nicht ernsthaft TTimer dafür vorschlagen? Soweit ich weiss ist der von Natur aus ungenau und das etwa zu 15ms. Mal mehr mal weniger und schon verabschiedet sich das flüssige Bild... Ich dachte eher an Window-Messages oder so ähnlich... Da ist mir gerade TApplication.OnIdle in den Sinn gekommen. Vielleicht geht es ja damit wie ich es mir vorstelle.

Freundliche Grüsse
Milos
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Cross-Platform Game Loop

  Alt 31. Jul 2016, 11:23
Schau dir das Konzept einmal genau an, dann siehst du dass diese "Ungenauigkeit" überhaupt nicht interessiert. Den Rest erledigt das "träge" Auge des Betrachters

Und egal wie genau dein Timer ist es bleibt immer eine Zeitspanne x zwischen Signalisierung durch den Timer und der Darstellung. Dieses x ist abhängig von der allgemeinen Systemperformance, der aktuellen Systemauslastung, ...

Meinst du wirklich, das da ein 15ms Delta ins Gewicht fällt? Das ist im Übrigen eine Zeitspanne, die das menschliche Auge nicht wahrnehmen kann
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.874 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Cross-Platform Game Loop

  Alt 31. Jul 2016, 09:46
Ich habe den Link im anderen Thread an die Änderung der Homepage angepasst.
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz