Timer
Übersicht

HolzfällerBetreff: Timer |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi! Ich bin ein blutiger Anfänger und habe eine Frage zu einem Befehl:
Was bedeutet das? If MilliSecs()-1000 => timer timer = MilliSecs() |
||
"Zirp Zirp" Zitat vom Holzfäller |
Holzfäller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke im Voraus | ||
"Zirp Zirp" Zitat vom Holzfäller |
Timo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
wenn man dies in eine Schleife einbaut, wird alles hinter dem then (was da irgendwie net drinne ist...) gemacht, wenn 1 sec vorbei ist
millisecs() gibt die Windowslaufzeit in Millisekunden zurück. wenn man den Befehl öfters aufruft, kann man die Differenz zwischen den Aufrufen bilden, um zu gucken, wie lange der Letzte zugriff vorbei ist. Code: [AUSKLAPPEN] if Millisecs()-1000 => timer then ; wenn eine Sekunde vorbei ist timer = Millisecs() ; stelle den timer neu ein ... ... endif |
||
Holzfäller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke! Jetzt will ich diesen Timer aber in eine function einbauen, nähmlich so:
Code: [AUSKLAPPEN] Function neuergegner()
If MilliSecs()-1000 => timer timer = MilliSecs() reset_timer = reset_timer - 1 EndIf If reset_timer = 0 DrawImage Gegner1,1,1 EndIf End Function Aber irgentwie funktieoniert das nicht, der Gergner leuchtet ca 1 Sekunda auf und verschwindet dann wieder, ich will aber das alle 5 sekunden ein neuer Gegner kommt. Kann mir mal jemand helfen? |
||
"Zirp Zirp" Zitat vom Holzfäller |
Timo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] Function neuergegner()
If MilliSecs()-5000 => timer timer = MilliSecs() DrawImage Gegner1,1,1 EndIf End Function Die 1000 sagte oben ,das eine Sekunde gewartet werden soll, mache bei dir einfach ne 5000 hin ![]() |
||
Holzfäller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ajaaaa!!!! Stimmt! O mann... Blitz basic ist wirklich logisch aufgebaut!!
*gg* ![]() Danke!! |
||
"Zirp Zirp" Zitat vom Holzfäller |
Holzfäller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Jetzt habe ich aber immer noch das Problem das der Gegner nur kurz aufblitz und erst nach 5 sekunden wieder kommt! | ||
"Zirp Zirp" Zitat vom Holzfäller |
Timo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ja das stimmt. das kommt daher das du ihn nur zeichnest, wenn die 5 sec vorbei sind. sofort dannach wird ja das ganze bild gelöscht. statt DrawImage in der Funktion neuergegner() solltest du eher in eine Variable speichern, dass es einen neuen gibt und ihn dann in der schleife zeichnen | ||
Holzfäller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das ist n bischen zu kompliziert für mich... Trotzdem danke! | ||
"Zirp Zirp" Zitat vom Holzfäller |
Holzfäller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ok... Ich hab alles ausprobiert und nichts davon geht! Kanst du mir mal n Beispielcode geben, wie du das machen würdest? | ||
"Zirp Zirp" Zitat vom Holzfäller |
![]() |
KabelbinderSieger des WM-Contest 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab mal einen Beispielcode gemacht. alle 500 millisekunden verändert sich die Farbe.
Code: [AUSKLAPPEN] Graphics 640,480,16,2
SetBuffer BackBuffer() timer = MilliSecs() farbe = 1 Repeat If MilliSecs()-timer>=500 timer = MilliSecs() If farbe = 1 Then farbe = 2 Else farbe = 1 EndIf EndIf If farbe = 1 Then Color 255,0,0 If farbe = 2 Then Color 0,0,255 Rect 100,100,100,100 Flip Cls Until KeyHit(1) End |
||
<Wing Avenger Download> ◊◊◊ <Macrophage Download> |
![]() |
eXceptION |
![]() Antworten mit Zitat ![]() |
---|---|---|
Gameskeleton:Code: [AUSKLAPPEN] type enemy
field x, y ;position field hp ;lebenspunkte field kind ;gegnertyp end type graphics(640, 480, 32, 0) setbuffer(backbuffer()) while not keyhit(1) ;mainloop acquireinput() gamelogic() drawenemies() drawplayers() flip() wend end ;programende ;--functions-------- function acquireinput() ;hier tasten / mouse / joystick testen und darauf reagieren end function function gamelogic() for gegner.enemy = each enemy ;hier alle sachen ausrechnen (AI - artificial intelligence), bewegungen, etc... if (gegner\hp <= 0) then ;monster hat 0 oder weniger hp delete gegner ;dann muss er weg! (hier könntest du stattessen die death-anim starten) end if next ;beispielsweise (wegen topic): if (millisecs() >= spawntime) then gegner.enemy = new enemy gegner\x = 320 ;horizontal mitte vom bildschirm gegner\y = 240 ;vertical mitte vom bildschirm gegner\hp = 50 ;muss ja hp haben gegner\kind = rand(0, 2) ;drei verschiedene monsters? :) spawntime = millisecs() + 5000 ;nächste monster kommt in 5 sekunden end if end function function drawenemies() for gegner.enemy = each enemy drawenemy(gegner\x, gegner\y, gegner\kind) next end function function drawenemy(x, y, kind) ;teste welche kind (gegnertyp) das ist, zeichne richtiges bild end function function drawplayers() ;zeichne die players hier end function |
||
Norweger...
Spreche aber verdammt gut 8086 |
Holzfäller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke das du dir die Mühe gemacht hast mir n Halbes Programm zu schrieben! Danke! | ||
"Zirp Zirp" Zitat vom Holzfäller |
Holzfäller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Leider bin ich draufgekommen das ich mit dem nicht viel anfangen kann, weil ich mich nicht mit Types auskenne ![]() ![]() ![]() Trotzdem Danke! |
||
"Zirp Zirp" Zitat vom Holzfäller |
Another progger |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,hier ein "programm" das alle 1000 millisecs ein bild dazuzeichnet.
Code: [AUSKLAPPEN] Graphics 800,600,0,1 SetBuffer BackBuffer() a=MilliSecs() bild=LoadImage("bild.bmp") Repeat If a+1000<MilliSecs() Flip DrawImage bild,Rand(800),Rand(600) Flip a=MilliSecs() EndIf Until KeyHit(1) ich hab 2* flip um immer in den selben buffer zu malen |
||
![]() |
eXceptION |
![]() Antworten mit Zitat ![]() |
---|---|---|
holzfäller hat Folgendes geschrieben: Leider bin ich draufgekommen das ich mit dem nicht viel anfangen kann, weil ich mich nicht mit Types auskenne gerade deswegen habe ich typen benutzt... so dass du es dir beibringen kannst...
EDIT: ob du es benutzen willst oder nicht, ist mir eigentlich egal, denn schliesslich bist du der jenige der dabei was verpasst... ausserdem habe ich nur 5 minuten benutzt... ![]() |
||
Norweger...
Spreche aber verdammt gut 8086 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group