Timer

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Ananas

Betreff: Timer

BeitragSa, Jun 20, 2009 9:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo hab folgendes Problem:
Ich möchte dass mein Spiel auf allen Rechnern gleich schnell läuft. Meine bisherigen Programme liefen an neuen Maschinen immer unglaublich schnell und an alten schlichen die Männchen im Schneckentempo über den Bildschirm... Das Programm war halt immer genau für meinen PC, an dem es Programmiert wurde, optimal.
Ich denke mal man kann da was machen ? Habe bereits mit Millisecs() einiges ausprobiert hatte aber kein Erfolg Sad

thx schonmal Wink
 

EwokonCrack

BeitragSa, Jun 20, 2009 9:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
timer=CreateTimer(30)


Du erstellst einen Timer mit einem beliebigen wert (der Parameter gibt an, wieviele Frames pro Sekunde über den Bildschirm düsen).

Code: [AUSKLAPPEN]
WaitTimer timer

Gibt dann das Kommando, überhaupt erst auf den timer zu warten.
 

Herox

BeitragSa, Jun 20, 2009 9:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Ananas,
Ich beschreibe zwar nicht so genau was die Kommandos machen dafür gibt es die Hilfe auf der Seite :
https://www.blitzforum.de/help/ von mir immer gern besucht, aber ich hab dies im Code wie es dann aussehen sollte wo der Timer stehen soll usw.

Hier der Code:
Code: [AUSKLAPPEN]
Graphics 800,600,32,2
Global Timer=CreateTimer(100)

While Not KeyDown(1)
   WaitTimer(Timer)
        Text 0,0,"Das ist mal ein Text, hoffe das Funktioniert bei mir ist das jedensfalls so."
        Flip 0
Wend


Ich hoffe ich habe dir geholfen!

MFG. Herox
SYSTEMINFO: AMD Phenom 9850 Quad-Core Processor 2500 MHz||4 GB RAM ||MAINBOARD: ASUSTek M3N78-EM|| GRAFIK: NVIDIA GeForce 9600 GT
|| SERVER-HOMEPAGE: http://gamerxl.de/ [IM AUFBAU]

Hagbard

BeitragSa, Jun 20, 2009 9:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei diesem Thema immer gerne verlinkt: Hurra, 100% Auslastung

Ananas

Betreff: Thx

BeitragSa, Jun 20, 2009 9:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen Dank hat mir sehr geholfen Smile

Tankbuster

BeitragSa, Jun 20, 2009 11:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Einfach einen Timer zu erstellen reicht nicht. Dadurch wird nur die Maximale FPS Zahl runtergeschraubt. Trotzdem wird das Spiel auf älteren Rechnern dann immernoch langsam laufen.

Um das hinzukriegen, musst du immer, wenn eine Bewegungsvariable, ect erhöht wird, diese noch mit der Schleifenzeit multiplizieren. Also so ungefähr:


Code: [AUSKLAPPEN]
Graphics 800,600
SetBuffer(BackBuffer())

Local SchleifenZeit#=1.0
Local x#=0.0

Timer=CreateTimer(60)

While Not KeyDown(1)
Cls
Start=MilliSecs()

x#=x#+1*SchleifenZeit

Rect x#,10,10,10
Text 10,100,SchleifenZeit

WaitTimer(Timer)
Flip 0
SchleifenZeit=Start-MilliSecs():SchleifenZeit=-SchleifenZeit/10
Wend


Egal ob du bei diesem Programm 1 oder 60 FPS hast, das Viereck erreicht immer in der selben Zeit das Ende des Bildschirms. Sieht bei wenigen FPS natürlich blöder aus, da es immer größere Schritte macht.

Kannst ja mal CreateTimer(6) schreiben oder so, dann siehst du, was ich meine Wink
Twitter
Download Jewel Snake!
Windows|Android

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group