imagecollide bei selbst-/intern gezeichneten Dingen
Übersicht

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


Powered by phpBB © 2001 - 2006, phpBB Group