Alle 3 Sekunden

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Surat

Betreff: Alle 3 Sekunden

BeitragDo, Apr 14, 2005 13:37
Antworten mit Zitat
Benutzer-Profile anzeigen
HI@ALL,
ich möchte einen Gegner programmieren, der alle drei Sekunden einen
Angriff ausführt (also alle 3 Sekunden soll ein Bild gemalt werden).
Ich weiß nur nicht wie ich das (ohne Delay) machen soll.

Ich bin für jede Hilfe dankbar! Smile
"DER GRÖßTE FEIND IST IN DEN EIGENEN REIHEN" (Trygonia-Xen's Quest)

AZUON-Beyond the dark life (2%)
SOULS OF DESTINY (23%)

simi

BeitragDo, Apr 14, 2005 13:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

mit ql:Millisecs..:
Code: [AUSKLAPPEN]

if Millisecs()-time > 3000 then
  time=Millisecs()
  angriff()
end if

Lunatix

BeitragDo, Apr 14, 2005 14:12
Antworten mit Zitat
Benutzer-Profile anzeigen
also ich hab ja waffen die nur alle blubb sekunden schiessen sollen können
da mach ich immer in der repeat-schleife z.b.

BlitzBasic: [AUSKLAPPEN]

Repeat
....
time=time+1
If time = 50 ; zeit bei 50 wieder auf 0
time=0
EndIf
...
schiessen()
...
Until blubb=blabb

Function schiessen()
If MouseDown(1) And time=48
schuss=1
EndIf
...
...
End Function

mach ich das so eigendlich... naja nit richtig aber vielleicht zu kompliziert?
If
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

SpionAtom

BeitragDo, Apr 14, 2005 14:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Kleiner Tipp:
Variablen "blubb" zu nennen ist nicht sonderlich sinnvoll. Verwende aussagekräftige Namen.

Deine time-Schleife läuft nicht auf allen Rechnern gleichschnell. Wenn du das jetzt auf einem P100 laufen lässt, geht die Geschwindigkeit ja vielleicht noch. Aber wenn dann ein <<AMD Athlon 64 ..bla. bla.>> kommt, läuft dieselbe Schleife so schnell, dass man gar nix mehr mitbekommt. Also solltest du diese Schleife auch in irgendeiner Form zeitabhängig gestalten.
 

hitokiri

BeitragDo, Apr 14, 2005 16:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein frametimer=creatimer(irgendwas zwischen 50 und 100) ist ja wohl standard. das vor dem flip in der schleife, dann passt das auch Wink
 

Gast

BeitragDo, Apr 14, 2005 16:21
Antworten mit Zitat
Sorry, wenn ich falsch lieg korrigiert mich bitte...
(Man lernt ja nie aus)

Aber...
soviel ich weiß hängt es mit dieser Function stark von der Rechenleistung
des Spieler-PC's ab!!!!


Und das ist (nach meinem Herrn und Gott Re'ne Meyer)
bekanntlich SCHLECHT!!!
Rene vergibt ihnen, den sie wissen nicht was sie tun. Very Happy

Aber wie gesagt: Weiß nicht mehr genau!!
Machs mit Millisecs() und Punkt!!!
MFG DamienX
 

hitokiri

BeitragDo, Apr 14, 2005 16:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo....frametimer ist auch nicht wirklich konstant, weil er z.b. für einen schleifendurchlauf mal 50 millisekunden mehr brauchen kann als für den davor weswegen man mit dem befehl ja auch keine exakt konstante framerate bekommt, aber für den anfang passt es ^^

Ctuchik

BeitragDo, Apr 14, 2005 19:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Hä? Mit dem Timer ist es afaik so:
Man erstellt per my_timer = CreateTimer(50) einen Timer!

Dann macht man in der Schleife:

While Not KeyHit(1)
WaitTimer(my_timer)
mach tolle sachen und so...
Flip
Cls
Wend

Wenn das Programm jetzt zum WaitTimer-Befehl kommt schaut es, ob seit dem letzten Programmaufruf weniger als eine 50stel-Sekunde vergangen ist (wegen CreateTimer(50)) und wenn ja, dann wartet es solange bis die 50stel-Sekunde rum ist!

Damit dauert jeder Schleifendurchlauf unabhängig von der Rechnergeschwindigkeit eien 50stel-Sekunde (es sei denn der Rechner wäre zu langsam und braucht länger, da gibts dann noch ne Ergänzung in der Schleife, so dass das Zeichnen nur jeden 2ten Durchlauf gemacht wird um die Zeit aufzuholen, aber die soll jemand anders posten weil ich sonst wieder was falsch mach ^^)
Zu den Nebenwirkungen gehören trockener Mund, Übelkeit, Erbrechen, Harnstau, schmerzhafter rektaler Juckreiz, Halluzinationen, Demenz, Psychose, Koma, Tod und Mundgeruch!
Magie eignet sich nicht für alle!
Fraget euren Arzt oder Apotheker!
  • Zuletzt bearbeitet von Ctuchik am Do, Apr 14, 2005 19:49, insgesamt einmal bearbeitet

Ctuchik

BeitragDo, Apr 14, 2005 19:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Sorry für Doppelpost, mein Internet is wieder mal sau lahm und ich dachte er hätts net abgeschickt!
Bitte löschen!
Danke!
Zu den Nebenwirkungen gehören trockener Mund, Übelkeit, Erbrechen, Harnstau, schmerzhafter rektaler Juckreiz, Halluzinationen, Demenz, Psychose, Koma, Tod und Mundgeruch!
Magie eignet sich nicht für alle!
Fraget euren Arzt oder Apotheker!
 

hitokiri

BeitragDo, Apr 14, 2005 20:30
Antworten mit Zitat
Benutzer-Profile anzeigen
yep, das meinte ich eben, dass er mal für einen schleifendurchlauf länger brauchen kann und man mit createtimer nur ein ende nach oben setzt.

Hubsi

BeitragDo, Apr 14, 2005 21:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Es ist defintiv egal wie lange die schleife braucht, mit WaitTimer hats du eine konstante Framerate Wink
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Jack

BeitragFr, Apr 15, 2005 20:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, ich habe gerade in meinem Buch nachgeschlagen, um deine Frage zu beantworten. Im Buch steht folgendes:
Mit CreateTimer() erzeugst du einen Zeitgeber. Als Parameter übergibst du die gewünschte Anzahl an Durchläufen je Sekunde, etwa 30. Die Funktion koppelst du mit einer Variablenzuweisung:
takt = CreateTimer(30)
(Hack'n Play Spiele programmieren von René Meyer Laughing)

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group