Problem mit zeitvariablen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Blitzkrieg Bop

Betreff: Problem mit zeitvariablen

BeitragDi, März 23, 2004 16:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Leute. Im Folgenden Codeausschnitt seht ihr so einige Sachen, was alles passiert, wenn die linke Maustaste gedrückt wird. Es geht eigentlich nur um folgende Zeile:
monsterkill_timer = monsterkill_timer + 1
bei jedem Maustastendruck geht der Timer um 1 höher.
Ich möchte aber, das ab dem ersten Tastendruck der Timer unendlich weiter um 1 steigt, ohne das man immer drücken muss. ALso ab dem ersten Tastendruck soll die Variable konstant um 1 steigen. Wo muss diese
monsterkill_timer = monsterkill_timer + 1
Variable hin, oder iwe kann ich sie abspeisen, das das obige eintrifft? Ich habe es shcon mit einer function probiert, klappt aber nicht. DAnke im VOraus Laughing Hier der Code:

For huhn2.gegner = Each gegner
If muni > 0
If ImagesOverlap(gegner,huhn2\posx,huhn2\posy,cursor_klein,x_maus,y_maus)
If MouseDown(1) And gegner_vordergrund_wart = 0


monsterkill_timer = monsterkill_timer + 1



punkte = punkte + 100
Text 400,400,"Getroffen!"
PlaySound(schrei)
Delete huhn2

monsterkill = monsterkill + 1


gegner_vordergrund_wart = 1 ; diese drei daten sorgen dafür das das gedrückt halten von der linken
gegner_mittelgrund_wart = 1 ; maustats nix bringt Smile
gegner_hintergrund_wart = 1

EndIf
EndIf
EndIf
Next
If MouseDown(1) = 0 Then
gegner_vordergrund_wart = 0
EndIf

Code: [AUSKLAPPEN]
~ Hey Ho Let's Go ~

General Alex

BeitragDi, März 23, 2004 17:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Da ich jetzt nicht so viel Zeit habe, kann ich es dir nicht ganz genau mit deiner Programmcode erklären, aber dafür benötigst du das Befehl "MilliSecs()". Hier mal ein Beispiel:
Code: [AUSKLAPPEN]

Const Verzoegerung = 2000
time = MilliSecs()
If (MilliSecs() - time) >= Verzoegerung then Monsterirgendetwas = 1

Die Variable "time" speichert den 1. Wert von MilliSecs(). Danach subtrahierst du den jetztigen Wert von MilliSecs() mit time, das gibt dann die Differenz. Und wenn die grösser ist als "Verzoegerung", dann passiert das und das ... Beim Beispiel wird die Variable "Monsterirgendetwas" auf 1 gesetzt, sobald 2 Sekunden = 2000 Millisekunden vergangen sind.

Blatolo

BeitragDi, März 23, 2004 19:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe Blitzkrieg Bop so verstanden dass er will dass wenn man einmal mit der maus drückt die vari ständig erhöht wird.

Dazu setzt du eine vari auf true und fragst dann später ab ob sie true ist und wenn ja dann erhöhe die vari.

Michi1988

BeitragDi, März 23, 2004 21:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Question Question Question Question
Hab ich net verstanden würde es so machen:

if mousehit(1) then
...
hoch=1
end if

if hoch=1 then
Paul=Paul+1
end if
 

Blitzkrieg Bop

BeitragDi, März 23, 2004 21:19
Antworten mit Zitat
Benutzer-Profile anzeigen
danke michi! deine lösung ist natürlich richtig, hatte wohl nen blavck out
~ Hey Ho Let's Go ~

Michi1988

BeitragDi, März 23, 2004 21:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Schiebs auf was du willst. Very Happy
Nie vergessen: The Offspring und SOAD sind die coolsten

Blatolo

BeitragMi, März 24, 2004 14:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hatte doch genau das vorgeschlagen was michi hingeschrieben hat.
Und Worte in Code umformen wirst du ja wohl noch können.
Und was soll daran nicht zu verstehen gewesen sein?
 

Blitzkrieg Bop

BeitragMi, März 24, 2004 20:24
Antworten mit Zitat
Benutzer-Profile anzeigen
stimmt auc wieder Wink
aber codebeispiele springen besser an und man kann sich in sie rienversetzen
~ Hey Ho Let's Go ~

Michi1988

BeitragDo, März 25, 2004 0:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Kommt druff an aber igall
 

Blitzkrieg Bop

BeitragDo, März 25, 2004 15:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm leute, ich bin dabei einen monstekrill zu proggn, odch es treten probs mit den variablen auf! man soll einfach 4 gegner killen und dann wird der text monsterkill eingeblendet und dann , nach ner kleinen pause, (damit man nicht ununterbrochen monsterkillen kann, kanns wieder losgehen.

Code: [AUSKLAPPEN]

; MONSTERKILL

If zaehler2 = 1
zaehler3 = zaehler3 + 1
EndIf

; 3 klick und der timer 'zaehler3 < 100' dann passiert das und das:

If zaehler = 4 ; d.h.: wenn 5 mal die maustatste gedrückt wurde:
If zaehler3 < 200 ;d.h.: wenn der timer 'zaehler3' unter 200 ist
textzaehler = 1
zaehler3 = 0
zaehler = 0
EndIf
EndIf 

; allgemein gilt, wenn der timer über 200 liegt, ist er wieder auf 0
If zaehler3 > 200
zaehler3 = 0
EndIf

; nun muss noch bestimmt werden, wie lange der text monsterkill etc. auf dem bildschirm steht.
; es gilt: der text bleibt so lange stehen, bis der timer 'textzaehler2' < 60 :
If textzaehler = 1
textzaehler2 = textzaehler2 + 1
If textzaehler2 < 100  ; eigentlich müsste der wert 100 höher gesetzt werden, damit er mit der zeile:
                       ; 'If textzaehler2 > 280' übereinstimmt. macht man das, bleibt aber der text
                       ; zu lange stehen. somit wird eine neue zeitvariable eingeschaltet, die dann in
                       ; der zeile : 'If textzaehler2 > 280' abgefragt wird.
testzaehler = testzaehler + 1
Text (1024/2),(768/2)-100,"WOW! ein Monsterkill!",True
Text (1024/2),(768/2)-70,"+30 Punkte",True
EndIf
EndIf


If textzaehler2 > testzaehler  ; hier wird der Textzähler wieder zurückgesetzt (280, damit man auch nicht
                       ; oft hintereinander son kill haben kann :P
textzaehler2 = 0
textzaehler = 0
EndIf



wie kannm an das vereinfachen oder ähnliches?
~ Hey Ho Let's Go ~

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group