Planet Battle 2

Spiele, Demos, Grafikzeug und anderes unterhaltendes.
Benutzeravatar
R4z0r1989
Beiträge: 521
Registriert: 12.06.2005 18:06
Kontaktdaten:

Beitrag von R4z0r1989 »

genau danilo ^^
die software is ja installiert von der maus :-)
schon immer.
und selbst als ich den pc platt gemacht hab und alles neu drauf.
es hing wieder so rum.
als ob wenn ich die maus schneller bewege er das nicht mehr erkennt!
Benutzeravatar
dllfreak2001
Beiträge: 2925
Registriert: 07.09.2004 23:44
Wohnort: Bayern

Beitrag von dllfreak2001 »

Ach jetzt eine verschörung gegen mich, na dann werde ich nicht mehr versuchen zu helfen.
I´a dllfreak2001
Benutzeravatar
kswb73
Beiträge: 319
Registriert: 04.02.2008 16:51
Kontaktdaten:

Beitrag von kswb73 »

MouseDeltaX() und MouseDeltaY() benutze ich nur, wenn man die Karte mit der mittlen Maustaste bewegt. Anstonsten benutze ich ganz normal MouseX(),MouseY().
Es könnte sein dass das an der niedrigen FrameRate die ich benutze (30).
Windows XP: PB 4.31, PB 4.4, PB 4.51
Open Suse 11.2: PB 4.4
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> an der niedrigen FrameRate die ich benutze (30)

hast du ein delay drin?
wenn nicht, bau doch mal eins ein, was ressourcen freigibt vorm flippen...

Code: Alles auswählen

#FrameRate = 30

SetFrameRate(#FrameRate)
FrameDauer = 1000 / #FrameRate - 4   ; -4 damit er ein bissel Luft hat...
Repeat
  LoopDauer = ElapsedMilliseconds()

  ; Hier den ganzen Game Kram,
  ; aber wirklich alles!

  ; wie lange haben wir gebraucht? =LoopDauer
  LoopDauer = ElapsedMilliseconds() - LoopDauer
  ; wir warten die Differenz zu FrameDauer
  Delay( FrameDauer - LoopDauer )
  FlipBuffers() ;erst jetzt Flippen wir
Until EXIT
FlipBuffers blockiert die CPU wenn es wartet.
mit einem angepassten Delay wie hier gibst du den Großteil der ungenutzten Zeit fürs OS und damit für Hintergrundtasks frei.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
kswb73
Beiträge: 319
Registriert: 04.02.2008 16:51
Kontaktdaten:

Beitrag von kswb73 »

danke, werd ich mal einbauen.

PS: du solltest vor dem Delay() abfragen ob die Zeit nicht negativ ist. Sonst block das Delay() das Programm nur.
Windows XP: PB 4.31, PB 4.4, PB 4.51
Open Suse 11.2: PB 4.4
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ja, is mir auch grad eingefallen... :mrgreen:
is ja gut wenn du's gemerkt hast. ;)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
gnasen
Beiträge: 578
Registriert: 01.08.2007 14:28
Computerausstattung: PB 4.60

Beitrag von gnasen »

Ist elapsedMilliseconds() nicht arg ungenau für diesen Zweck?
Ich meine der verzieht doch schonmal bis zu 50ms...
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

keine 50, nur 12-16...
da könnte man eine höhere genauigkeit aktivieren, gabs auch schon oft codes dazu...
danilo hat da etliche beispiele gepostet damals...

aber der kernpunkt ist, es ist ausreichend.
wenn bei so einem 30FpS Game mal ein Frame aussetzt, ist das nicht tragisch.
wenn der zusätzliche Maustreiber nicht genug CPU-Zeit bekommt, schon eher.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Josef Sniatecki
Beiträge: 657
Registriert: 02.06.2008 21:29
Kontaktdaten:

Beitrag von Josef Sniatecki »

@ Kaeru Gaman:
Das Beispiel mit dem "Framerate" kann ich gut in meinem Spiel gebrauchen.
Mich hat's immer gewundert, wenn mein Spiel auf manchen anderen
Computern viel zu schnell läuft.
Danke. :allright:
PB 4.61 | Windows Vista - 32Bit
Homepage

"Wahrlich es ist nicht das Wissen, sondern das Lernen, nicht das Besitzen sondern das Erwerben, nicht das Dasein, sondern das Hinkommen, was den grössten Genuss gewährt." - Carl Friedrich Gauß
Benutzeravatar
kswb73
Beiträge: 319
Registriert: 04.02.2008 16:51
Kontaktdaten:

Update

Beitrag von kswb73 »

Hab ein kleines Update erstellt. Jetzt sind drei Bugs raus.
  • Objecte werden an der richtigen Stelle angezeigt.
  • Fenster kann nach dem minimieren wieder maximiert werden
  • Beim Gruppieren wird die Gruppe wieder gelehrt. (alte Gruppenmitglieder sind nicht mehr drin.)
Windows XP: PB 4.31, PB 4.4, PB 4.51
Open Suse 11.2: PB 4.4
Antworten