ImageColldie funzt nicht. *gelöst*

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

new york

Betreff: ImageColldie funzt nicht. *gelöst*

BeitragMi, Jan 06, 2010 14:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey!
Ich bin gerade an einem Spiel, bei dem Tomaten runterfallen und vom Korb "aufgefangen" werden sollen.
Ich hatte vor, das die Tomaten gelöscht werden, wenn sie die Korb berühren und wollte dafür ImageCollide verwenden.

Das Spiel lässt sich zwar abspielen, aber es passiert nichts.

Kann mir jemand helfen??


Vielen dank.


Code: [AUSKLAPPEN]

m=MilliSecs()
score=0
;name
AppTitle "Veggi Life"

Graphics  800,600
i=MilliSecs()
zeit=i-m
;bilder hochladen
hintergrund=LoadImage ("winter.bmp")
korb=LoadImage("korb.bmp")
tomate=LoadImage("tomaten.bmp")

musik = LoadSound("forest.wav")

;bilder erstellen
MaskImage korb,0,0,0
MaskImage tomate, 255,255,255

ScaleImage tomate, 0.1,0.1;



;type erstellen
Type fruit
   Field x
   Field y
   Field punkte
   Field speed
   
End Type

SetBuffer BackBuffer()

Repeat

;Zählt ab wann die Tomaten fallen

counter=counter+1

If counter>60 Then

tom.fruit=New fruit
      tom\x=Rnd(1,800)
      tom\y=0
      tom\speed=Rnd(0.5,2)
      tom\punkte=10
counter=0
EndIf


;steuerung

   If KeyDown (205);
      a=a+10;
      EndIf
      If KeyDown(203);
      a=a-10;
      EndIf;     

Cls



LoopSound musik
PlaySound(musik)
;hintergrund anzeigen
DrawBlock hintergrund,0,0
DrawImage korb,a,510


     
If a>670
a=670 EndIf

If a<0
a=10 EndIf 
       
;Problem, IMAGECOLLIDE funzt nicht, weiß nicht warum??!

If ImagesCollide (korb,a,510,0,tomate,x,y,0)
score=score+10
EndIf
For tom.fruit=Each fruit 
 
DrawImage tomate, tom\x,tom\y
 tom\y = tom\y + tom\speed

;If ImagesCollide(kanone,a,510,0,tomate,x,y,0)
;Delete tom EndIf

If  tom\y>520 Then Delete tom
Next



;anzeige



Text 230, 20,"Punkte: "
;Print score


Flip

Forever
  • Zuletzt bearbeitet von new york am Mi, Jan 06, 2010 16:29, insgesamt einmal bearbeitet

robotx

BeitragMi, Jan 06, 2010 14:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
If ImagesCollide (korb,a,510,0,tomate,x,y,0)
score=score+10
EndIf


muss auch in die Schleife und die x,y variablen sind falsch: x -> tom\x usw.

Code: [AUSKLAPPEN]

For tom.fruit=Each fruit
 
DrawImage tomate, tom\x,tom\y
 tom\y = tom\y + tom\speed

;If ImagesCollide(kanone,a,510,0,tomate,x,y,0)
;Delete tom EndIf

If  tom\y>520 Then Delete tom
Next
www.botbomb.robotzgames.de
www.robotzgames.de
 

mDave

BeitragMi, Jan 06, 2010 14:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Es ist allgemein bekannt das ImageCollide verbuggt ist.
Bitte benutze stattdesses ImagesOverlap.

Midimaster

BeitragMi, Jan 06, 2010 14:30
Antworten mit Zitat
Benutzer-Profile anzeigen
muss denn das IMAGECOLLIDE für die Tomaten nicht in die FOR/EACH/NEXT rein?

BlitzBasic: [AUSKLAPPEN]
For tom.fruit=Each fruit
DrawImage tomate, tom\x,tom\y
tom\y = tom\y + tom\speed
If ImagesCollide (korb, a, 510, 0, tomate, tom\x, tom\y, 0)
score=score+10
;evetuell:
tom\y=999
EndIf
If tom\y>520 Then
Delete tom
EndIf
Next
 

new york

BeitragMi, Jan 06, 2010 16:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen dank Smile

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group