Zufallsproblem

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Roggi

Betreff: Zufallsproblem

BeitragSo, Okt 30, 2005 14:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Guckt euch mal den Code hier an:
BlitzBasic: [AUSKLAPPEN]
Graphics 800,600,32,1
SetBuffer BackBuffer()

links=203
rechts=205
hoch=200
runter=208

Spieler =LoadImage(\"GFX\Spieler.bmp\")
Hintergrund=LoadImage(\"GFX\Hintergrund.bmp\")
Geschenk1=LoadImage(\"GFX\kGeschenk.bmp\")
Geschenk2=LoadImage(\"GFX\gGeschenk.bmp\")
Weihnachtsbraten=LoadImage(\"GFX\Braten.bmp\")
punkte1=LoadImage(\"GFX\Punkte.bmp\")

xs#=350
ys#=510

yx=-200


Function neuesgeschenk()
yx = -300
xx = Rnd(10,700)
End Function
Repeat
Cls
;Bewegung
If KeyDown(rechts) And xs#<725Then xs#=xs#+ 0.9
If KeyDown(links) And xs#>-2 Then xs# =xs#-0.9



yt = yt + 1
If yt > 600 Then
; Wenn der Gegmner es schafft durchzukommen, geht sein Zähler eins weiter.
neuesgeschenk()
EndIf

If yt >600 Then
yx = yx + 1
If yt > 600 Then
; Wenn der Gegmner es schafft durchzukommen, geht sein Zähler eins weiter.
neuesgeschenk()
EndIf
EndIf

DrawImage Hintergrund,1,1

DrawImage Geschenk1,xt,yt
MaskImage Geschenk1,255,255,255
DrawImage Geschenk2,xx,yx
MaskImage Geschenk2,255,255,255
DrawImage Spieler,xs,ys
MaskImage Spieler,255,255,255
DrawImage punkte1,500,1
MaskImage punkte1,255,255,255


Color 0,0,0
Text 700, 40, Str$(Punkte)
If ImagesCollide(Spieler,xs,ys,0,Geschenk1,xt,yt,0) Then

If neuesgeschenk = True
Punkte = Punkte + 1
neuesgeschenk = False
EndIf

Else

neuesgeschenk = True

neuesgeschenk

EndIf




Flip


Aber die Geschenke(ob 1 oder 2) sollen nach zufall und nicht nach reihe kommen und sie sollen auf der x achse verteielt werden.

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSo, Okt 30, 2005 15:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab es mal überflogen:

Du hast einmal einen Variablen Namen [neuesgeschenk= true] und eine Function Name[neuesgeschenk()]
das kann evt. zu Fehlern führen

dann steht in der Function xx= rand...,
allerdings ist diese Variable nicht Global und wird auch nicht zurückgegen, demnach ist die Zeile über!
Da könnte auch der Fehler liegen!

Edit: Maskimage nur einmal direkt nach dem laden anwenden und nicht immer nach jedem Malen
[BB2D | BB3D | BB+]

Xalon

BeitragSo, Okt 30, 2005 15:26
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]
SeedRnd MilliSecs()


Xalon
>>Besucht doch mal meine Seite,mit NEUEN Tutorials<<
User posted image

Hubsi

BeitragSo, Okt 30, 2005 17:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
BlitzBasic: [AUSKLAPPEN]
If yt > 600 Then
; Wenn der Gegmner es schafft durchzukommen, geht sein Zähler eins weiter.
neuesgeschenk()
EndIf

If yt >600 Then
yx = yx + 1
If yt > 600 Then
; Wenn der Gegmner es schafft durchzukommen, geht sein Zähler eins weiter.
neuesgeschenk()
EndIf
EndIf
Ist auch etwas unglücklich Very Happy Das ganze kannst Du auch schön in eine If...EndIf-Konstruktion packen. Spart Zeilen, schafft Übersicht Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

Roggi

BeitragSo, Okt 30, 2005 17:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Nochmal, hab mich wohl unklar ausgedrückt. Laughing
Also hier der Problemteil:
BlitzBasic: [AUSKLAPPEN]
Spieler =LoadImage(\"GFX\Spieler.bmp\")
Hintergrund=LoadImage(\"GFX\Hintergrund.bmp\")
Geschenk1=LoadImage(\"GFX\kGeschenk.bmp\")
Geschenk2=LoadImage(\"GFX\gGeschenk.bmp\")
Weihnachtsbraten=LoadImage(\"GFX\Braten.bmp\")
punkte1=LoadImage(\"GFX\Punkte.bmp\")
Geschenk=LoadImage(\"GFX\Geschenk.bmp\")
MaskImage Geschenk,255,255,255

xs#=350
ys#=510

yx=-200


Function neuesgeschenk()
DrawImage Geschenk,yx,xx
yx = -300
xx = Rnd(10,700)
End Function

und weiter unten:BlitzBasic: [AUSKLAPPEN]
If ImagesCollide(Spieler,xs,ys,0,Geschenk1,xt,yt,0) Then 

If neuesgeschenk = True
Punkte = Punkte + 1
neuesgeschenk = False
EndIf

Else

neuesgeschenk = True

neuesgeschenk

EndIf

So der soll also wenn der Gegner durch kommt einen neuen erstellen. und zwar mit der Funktion neuesgeschenk. Da is doch alles ok oder. Doch er zeigt an: Images does not exist.

Hubsi

BeitragSo, Okt 30, 2005 17:53
Antworten mit Zitat
Benutzer-Profile anzeigen
DrawImage Geschenk,yx,xx steht in einer Function. Geschenk (also das handle des Bildes) ist aber nicht global und wird auch nicht übergeben an die Function Wink Also entweder die Variable als global deklarieren, oder den Wert an die Function übergeben Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

Roggi

BeitragSo, Okt 30, 2005 17:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Global geht schlecht(just in main program). Und wie geht das andre

Hubsi

BeitragSo, Okt 30, 2005 18:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Global geht natürlich nur im Mainprogramm (Beispielsweise Global geschenk=loadimage("...") ). Werte übergeben kannst Du so:BlitzBasic: [AUSKLAPPEN]
bla(3,\"tralala\",18643)

Function bla(a,b$,c,d=45)
; Die tollen Werte verwenden
End Function
Näheres dazu siehe Onlinehilfe -> http://www.blitzbase.de/befehle2d/function.htm Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group