nächstest bild

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

darki

Betreff: nächstest bild

BeitragMo, März 26, 2007 19:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi ich habe mal ne frage. Warum wird das erste bild nicht gelöscht??

Code: [AUSKLAPPEN]

Graphics 640,480,0,1

SetBuffer BackBuffer()

SeedRnd MilliSecs()
HidePointer
Global geld#=1000

Global spielsb=LoadImage("spielstarten.bmp")
Global option=LoadImage("option.bmp")
Global maus=LoadImage("maus.bmp")
Global ende=LoadImage("ende.bmp")
Global hintergrund=LoadImage("hintergrund.bmp")

Repeat
Cls

ClsColor 0,132,193

   MidHandle spielsb
   MidHandle option
   MidHandle ende
   DrawImage ende,325,200
   DrawImage spielsb,325,107
   DrawImage option,325,300
   MaskImage maus,255,0,255
   DrawImage maus,mx-20,my-90
   
   Text 50,0,"X:"+mx
   Text 100,0,"Y"+my

   mx=MouseX()
   my=MouseY()
   
   
   
   
   
   If ImagesCollide(maus,mx-20,my-90,0,spielsb,325,107,0) And MouseHit(1)
   boerse()
   EndIf
   If ImagesCollide(maus,mx-20,my-90,0,ende,325,200,0) And MouseHit(1)
   End
   EndIf

Flip
Forever

Function boerse()
 
   DrawImage hintergrund ,0,0
   
End Function boerse()



   
   


darki

sirokuhl

BeitragMo, März 26, 2007 19:45
Antworten mit Zitat
Benutzer-Profile anzeigen
als allererstes macht man midhandle und maskimage nicht in der schleife, sondern davor..

und welches bild möchtest du überhaupt löschen?
 

darki

BeitragMo, März 26, 2007 19:47
Antworten mit Zitat
Benutzer-Profile anzeigen
das bild was man als erstes bekommt mit dem menü

Axe

BeitragMo, März 26, 2007 19:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Soweit ich das aus dem Code sehen kann, rufst du die Funktion, die das neue Bild zeichnet, nur ein einziges Mal auf. Du musst das so proggen, dass du eine Variable änderst und je nach dieser Variable springst oder nicht.

Also:
Code: [AUSKLAPPEN]

...
zeige_boerse=0

... Schleife

if [mausklick abfrage] then zeige_boerse=(zeige_boerse+1) Mod 1

if zeige_boerse=1 then boerse()

...


Weiterhin sind mir noch ein paar weitere Sachen aufgefallen:
die Vorbereitungsschritte für die Grafiken (MaskImage oder MidHandle) gehören nicht in die Schleife, sie müssen nur einmal ausgeführt werden.
Auch das ClsColor gehört zumindest vor das Cls.

Um später Speedproblemen aus dem Weg zu gehen, solltest du außerdem die Bildkollisionsbefehle nicht für eine Mausabfrage "missbrauchen", diese Erkennung kann man mit ein bisschen Mathematik deutlich schneller erreichen.
Projekte:
Ping Pong 2D Version 2.1
Weitere Infos: axesite.de
 

darki

BeitragMo, März 26, 2007 19:56
Antworten mit Zitat
Benutzer-Profile anzeigen
das erste bild löscht er immer noch nciht

EDIT: Sry das ich dränge aber ich bekomme das problem einfach nicht gelöst. Hier noch mal ein anderer code:

Code: [AUSKLAPPEN]

Graphics 640,480,0,1

SetBuffer BackBuffer()

SeedRnd MilliSecs()
HidePointer
Global geld#=1000
Global spielsb=LoadImage("spielstarten.bmp")
Global option=LoadImage("option.bmp")
Global maus=LoadImage("maus.bmp")
Global ende=LoadImage("ende.bmp")
Global hintergrund=LoadImage("hintergrund.bmp")

   MidHandle spielsb
   MidHandle option
   MidHandle ende

Repeat
ClsColor 0,132,193
Cls
   DrawImage ende,325,200
   DrawImage spielsb,325,107
   DrawImage option,325,300
   MaskImage maus,255,0,255
   DrawImage maus,mx-20,my-90
   
   Text 50,0,"X:"+mx
   Text 100,0,"Y"+my
   borse=0
   endee=0
   
   mx=MouseX()
   my=MouseY()
      
   If ImagesCollide(maus,mx-20,my-90,0,ende,325,200,0) And MouseHit(1)
   endee=endee+1
   EndIf
   If ImagesCollide(maus,mx-20,my-90,0,spielsb,325,207,0) And MouseHit(1)
   borse=borse+1
   EndIf
   If endee=1 Then End
   If borse=1 Then boerse()
   
Flip
Until KeyHit(1)

Function boerse()

   DrawImage hintergrund ,0,0

End Function boerse()



   
   
   

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group