imagecollide bei selbst-/intern gezeichneten Dingen
Übersicht
BlitzBasic
Beginners-Corner
NotbremseBetreff: imagecollide bei selbst-/intern gezeichneten Dingen |
Antworten mit Zitat |
|
|---|---|---|
|
Ich wollte heute ein kleines snake-Spiel ohne externe Grafiken machen. Dabei ist mir aufgefallen, dass ich gar nicht weiß wie ich eine Kollision von 2 Kreisen ,die ich mit BB gezeichnet habe, abfragen soll:
oval SpielerX, SpielerY , 40 ,40 1 oval FutterX , FutterY, 40 ,40, 1 imagescollide ( ?) Was soll ich dann in die Klammern schreiben? Verzeiht aber ich bin noch ziemlich neu |
||
Tritium |
Antworten mit Zitat |
|
|---|---|---|
|
Für zwei Kreise lässt sich auch der Satz des Pythagoras (wahrscheinlich steht das h jetzt genau an der falschen Stelle Abstand der Kreise = Quadratwurzel((x1-x2)^2+(y1-y2)^2) Als x1/x2/y1/y2 nimmst Du die Mittelpunkte der Kreise Da Deine Kreise einen Radius von 20 haben, überprüfst Du, ob der Abstand <= 40 ist (wg. zwei Radien), dann berühren sich die Kreise nämlich. |
||
Notbremse |
Antworten mit Zitat |
|
|---|---|---|
|
Wie kann ich den Abstand prüfen?(Befehl?) |
||
MadMental |
Antworten mit Zitat |
|
|---|---|---|
|
Das hat dir Tritium doch eben gepostet:
Code: [AUSKLAPPEN] abstand# = SQR#((x1-x2)^2+(y1-y2)^2) MM |
||
|
|
Eingeproggt |
Antworten mit Zitat |
|---|---|---|
Abstand prüfen mit If .
Zu deiner ursprünglichen Frage mit ImagesCollide: Das geht auch (wäre bei "komplexeren" Graphiken als Kreisen nötig) Dazu musst du die Kreise in Images zeichnen und diese dann auf Kollision prüfen. Zum beispiel: Code: [AUSKLAPPEN] Graphics 800,600,0,2
spieler=CreateImage(40,40) SetBuffer ImageBuffer(spieler) Color 255,0,0 Oval 0,0,40,40,1 futter=CreateImage(40,40) SetBuffer ImageBuffer(futter) Color 0,0,255 Oval 0,0,40,40,1 SetBuffer BackBuffer() Color 255,255,255 timer=CreateTimer(50) Repeat ;Spielersteuerung musst du selber machen ;-) DrawImage spieler,SpielerX,SpielerY DrawImage futter,FutterX,FutterY If ImagesCollide(spieler,SpielerX,SpielerY,0,futter,FutterX,FutterY,0) Then Text 10,10,"Futter gefressen" EndIf WaitTimer timer Flip 0 Cls Until KeyHit(1) mfG, Christoph. |
||
Notbremse |
Antworten mit Zitat |
|
|---|---|---|
|
Ja genau so was meinte ich. Vielen Dank |
||
Übersicht
BlitzBasic
Beginners-Corner
Powered by phpBB © 2001 - 2006, phpBB Group

