Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mi Jul 16, 2025 10:37

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 38 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Fr Jan 06, 2006 12:24 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
:mrgreen:

Definiere diene Spielerposition doch so:
Code:
  1. TPlayerPosition = record
  2.   X,
  3.   Y,
  4.   Z: single;


Und schon dürfte Delphi nichts mehr meckern ;)

Beim Rendern solltest du aber, wenn du es pixelgenau machst, und das möchte ich dir bei 2D-Spielen ans Herz legen, aber dennoch runden. Allerdings auf keinen Fall das gerundete Ergebnis speichern, sondern stets das genaue. Somit hast du die optische Schönheit von gerundeten ganzen Pixeln und die Genauigkeit von timebased Movement ;)

_________________
"Für kein Tier wird so viel gearbeitet wie für die Katz'."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jan 06, 2006 12:44 
Offline
DGL Member
Benutzeravatar

Registriert: Di Nov 29, 2005 21:11
Beiträge: 88
Wohnort: Bonn
okay, das ist gut...

der timefaktor (wie im bomberman tut) war bei mir immer bei etwa 0,6 und es lief richtig flott
flotter als es im endeffekt sein soll
bei dem anderen test rechner, der es immernoch viel zu lahm anzeigt liegt der faktor bei 23 oder sogar 24
aber es läuft nichts anderes im hintergrund, also das programm hat 99% cpu power zur verfügung


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jan 06, 2006 12:51 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
doppelreim hat geschrieben:
wegen der schmach hab ich es bis jetzt noch nicht verraten, aber bis eben hab ich noch nen timer statt OnIdle verwendet... :oops:

Schmach? Wieso sollte das schlimm sein. Wenn ein Timer gut gemacht ist genügt das auch vollkommen aus. Als Beispiel kann ich dort mal Conquer anbieten. Die verwenden eine Feste 2D Ansicht aber Figuren etc sind in 3D. Reichlich nette Effekte und das Spiel läuft permanent mit ca. 30 fps. Nicht mehr nicht weniger. Damit benötigt es lächerliche 3-5% CPU Last aber das ist vollkommen ausreichend. Warum sollte das Spiel auch mit 300 FPS laufen? Man sieht eh nicht mehr. Und Notebookbesitzer würden es dir außerdem noch danken. Bei einem MMORPG kommt es ja nicht primär auf die Grafik an.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jan 07, 2006 17:51 
Offline
DGL Member
Benutzeravatar

Registriert: Di Nov 29, 2005 21:11
Beiträge: 88
Wohnort: Bonn
Argh, ich mach ihn platt, meinen Bruder... er hatte tatsächlich keine ordentlichen Treiber und somit wohl Software Rendering aktiviert :evil:

Puh, okay, dann gehts jetzt weiter *froi*


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jan 07, 2006 18:24 
Offline
DGL Member
Benutzeravatar

Registriert: Di Nov 29, 2005 21:11
Beiträge: 88
Wohnort: Bonn
wegen den abgehackten bewegungen und der lösung mit dem bool-array
ich glaub ich hab das in einer art schon drinne:

Code:
  1. procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
  2. begin
  3. case Key of
  4.   VK_LEFT: mainchar.richtung := 1;
  5.   VK_RIGHT: mainchar.richtung := 2;
  6.   VK_UP: mainchar.richtung := 3;
  7.   VK_DOWN: mainchar.richtung := 0;
  8.   end;
  9.  
  10. if (Key = VK_LEFT) or (Key = VK_RIGHT) or (Key = VK_UP) or (Key = VK_DOWN) then
  11.   walking := true;
  12. end;
  13.  
  14. procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
  15. begin
  16.   walking := false;
  17. end;


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jan 08, 2006 00:21 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
So in etwa schon. Geht bei dir eigentlich auch Diagonal? Bzw soll das gehen? Wenn dann würde ich das ein wenig umbauen. Also ein Array auf 4 Werten oder so. sollte vollkommen genügen. Oder auch nur 4 Bools.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jan 08, 2006 00:27 
Offline
DGL Member
Benutzeravatar

Registriert: Di Nov 29, 2005 21:11
Beiträge: 88
Wohnort: Bonn
nee, es soll bei 4 richtungen bleiben
aber so, wie ich es mache, ist die wiederholrate nicht umgangen...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jan 08, 2006 11:28 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Setzt du vielleicht das mainchar.richtung oder das Walking irgendwo wieder zurück? Also außer bei der KeyUp. Sonst wüsste ich keinen Grund warum es nicht gehen sollte.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 38 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 14 Queries | GZIP : On ]