Warum geht das mit den Types net?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Blitzkrieg Bop

Betreff: Warum geht das mit den Types net?

BeitragMo, Apr 05, 2004 10:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi! Ich frage mich, warum ich bei folgendem Code mit der Leertaste keine Types löschen kann.

Code: [AUSKLAPPEN]

Graphics 800,600,16,2
SetBuffer BackBuffer()


Type power
Field posx
Field posy
End Type




Repeat

timer = timer + 1

If timer < 20
neuespowerding()
EndIf


For bums.power = Each power
Text bums\posx,bums\posy,"O"
Next




For bums.power = Each power
If KeyDown(57)
Delete bums
EndIf
Next


Flip
Forever





Function neuespowerding()

bums.power = New power
bums\posx = Rand(50,150)
bums\posy = Rand(100,10)


End Function
~ Hey Ho Let's Go ~
 

Omenaton_2

BeitragMo, Apr 05, 2004 11:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielleicht weil die For-Next-Schleife wo die Tastaturabfrage drin ist so unglaublihc schnell durchläuft, daß es kaum möglich ist die Taste runterzudrüken.

Mach es, daß erst wenn die Taste gedrückte wird, zu einem Label mit dem Löschen gesprungen wird. Mach das Löschen nicht innerhalb der Hauptschleife. Entferne die For-Next-Schleife wo die Tastaturabfrage drin ist.

If KeyDown(57) = True Than Gosub Bums_Loeschen



. . . weiter unten, außerhalb der Schleife ...

.Bums_Loeschen

Delete bums

Return


In diesem Fall wird immer das aktuelle Typeobjekt gelöscht. Wenn du da auch noch For Next einbaust, dann löscht du alle.

Noch was: Nenne die Zähler-Variable nicht Timer, das ist irreführend. Das hier hat nichts mit Zeit zu tun.
Außerdem sollte das Erschaffen der Objekte auch nicht in der Hauptschleife sein, sondern Davor. Am Besten auch mit For Next.
 

Blitzkrieg Bop

BeitragMo, Apr 05, 2004 11:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, das ist klar! das ist auch nur ein Beispielcode Smile
~ Hey Ho Let's Go ~
 

Blitzkrieg Bop

BeitragMo, Apr 05, 2004 11:26
Antworten mit Zitat
Benutzer-Profile anzeigen
MAn, ich hab das nun in ner Funktion, aber das geht nicht.,... guckt mal:



Code: [AUSKLAPPEN]

Graphics 800,600,16,2
SetBuffer BackBuffer()


Type power
Field posx
Field posy
End Type




Repeat

timer = timer + 1

If timer < 6
neuespowerding()
EndIf


For bums.power = Each power
Text bums\posx,bums\posy,"O"
Next





If KeyDown(57)
loeschen()
EndIf



Flip
Forever





Function neuespowerding()

bums.power = New power
bums\posx = Rand(50,150)
bums\posy = Rand(100,10)

End Function



Function loeschen()
For bums.power = Each power
Delete bums
Next
End Function





ohne die for next shcleife in der funktion gehts garnicht und mit gosub auch net...
~ Hey Ho Let's Go ~
 

newkev

BeitragMo, Apr 05, 2004 11:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

Flip
Cls <---- Du hast Cls Vergessen.
Forever
Signatur? Gibts nich^^
 

Blitzkrieg Bop

BeitragMo, Apr 05, 2004 11:50
Antworten mit Zitat
Benutzer-Profile anzeigen
THX Smile 8) Laughing Embarassed Rolling Eyes Twisted Evil Evil or Very Mad Mad Very Happy Smile Sad Surprised
~ Hey Ho Let's Go ~

Hubsi

BeitragMo, Apr 05, 2004 14:40
Antworten mit Zitat
Benutzer-Profile anzeigen
bums ist nicht global, so wie ich das sehe. Außerdem werden hier alle Einträge gelöscht, weil die Schleife schneller durchlaufen wird als Du die Taste loslassen kannst. Ist vielleicht auch so gewollt, k. A.
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group