Box-To-Box Kollision
Übersicht

ChristianKBetreff: Box-To-Box Kollision |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Kennt ihr eine Lib, die Box-To-Box Kollision unterstützt.
Wenns geht, kostenlos! ![]() |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Keine Anfragen in dlls und Userlibs.
Noch dazu sollte eine Box zu Box Kolli flott und effizient ohne jede dll machbar sein. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
TheMatrix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Öhm, weißt du eigentlich was Blitzbasic genau macht und kann? Oder wolltest du uns nur testen ? ![]() Hier mal n Code: Code: [AUSKLAPPEN] Graphics 640,480,16,2 box1 = CreateImage(100,100) : SetBuffer ImageBuffer(box1) : ClsColor 255,0,0 : Cls box2 = CreateImage(100,100) : SetBuffer ImageBuffer(box2) : ClsColor 0,0,255 : Cls ClsColor 0,0,0 SetBuffer BackBuffer() While Not KeyHit(1) Cls mx = MouseX() : my = MouseY() msx = MouseXSpeed() : msy = MouseYSpeed() bx2 = 200 : by2 = 200 If ImagesCollide(box1,mx,my,0,box2,bx2,by2,0) Color 255,0,0 : Text 0,0,"KOLLISION!!!" End If DrawImage box1,mx,my DrawImage box2,bx2,by2 Flip Wend Und lern erst mal kennen was Blitzbasic überhaupt ist ![]() |
||
°_° °.° °~° °v° .. -.- |
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Er meinte wohl 3D. Aber da frag ich mich grad, wie es andere geschafft haben, ohne auszukommen, respektive wofür man die überhaupt einsetzen sollte. | ||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
man muss ja nur checken, ob 4 punkte in einem bestimmten quader liegen...das soll wohl machbar sein*g* | ||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
eigentlich soll man prüfen, ob einer von 8 Punkten innerhalb eines Quaders, der durch 8 Punkte definiert ist, liegt.
Geht eigentlich mit Vektorengleichungen. Schriftlich kann ich es darstellen, aber hier? ^^ Mal schauen, ob ich was hinbekomme. |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
![]() |
DerHase |
![]() Antworten mit Zitat ![]() |
---|---|---|
TheMatrix hat Folgendes geschrieben: Öhm, weißt du eigentlich was Blitzbasic genau macht und kann? Oder wolltest du uns nur testen ?
![]() Hier mal n Code: Code: [AUSKLAPPEN] Graphics 640,480,16,2 box1 = CreateImage(100,100) : SetBuffer ImageBuffer(box1) : ClsColor 255,0,0 : Cls box2 = CreateImage(100,100) : SetBuffer ImageBuffer(box2) : ClsColor 0,0,255 : Cls ClsColor 0,0,0 SetBuffer BackBuffer() While Not KeyHit(1) Cls mx = MouseX() : my = MouseY() msx = MouseXSpeed() : msy = MouseYSpeed() bx2 = 200 : by2 = 200 If ImagesCollide(box1,mx,my,0,box2,bx2,by2,0) Color 255,0,0 : Text 0,0,"KOLLISION!!!" End If DrawImage box1,mx,my DrawImage box2,bx2,by2 Flip Wend Und lern erst mal kennen was Blitzbasic überhaupt ist ![]() Matrix Du wolltest sicher sagen ![]() Code: [AUSKLAPPEN] Function BoxCollide(b1x, b1y, b1w, b1h, b2x, b2y, b2w, b2h) If (b1y + b1h < b2y) Return 0 If (b1y > b2y + b2h) Return 0 If (b1x + b1w < b2x) Return 0 If (b1x > b1x + b1w) Return 0 Return 1 End Function b1? sind hierbei die Parameter des ersten Rechtecks und b2? die des zweiten, x die x-Position, y die y-Position, w die Breite und h die Höhe. |
||
![]() |
TheMatrix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wollte ich das sagen?
Ich glaube, ich war schon richtig mit meinenm Code ![]() Wozu sollte ich eine extra Kollisionsfunktion schreiben, wenn es dafür schon Funktionen gibt? Nagut, ich muss eingestehen, ich hätte dafür auch imagerectcollide nehmen können. Das arbeitet noch schneller, aber ich hab das mal eben 1-2min zusammengeschrieben und hatte nicht viel Lust dabei nachzudenken ^^. Mfg, TheMatrix |
||
°_° °.° °~° °v° .. -.- |
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Natürlich meine ich 3D, wenn ich von "Box" spreche!
Wofür ich das brauche: Ich will einen Würfel bewegen, aber Blitz3D unterstützt laut Hilfe nur "Sphere to..."-Kollision. Und einen Würfel als Kugel kollidieren zu lassen ist irgendwie unsinnig, oder? |
||
![]() |
DerHase |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dann schau Dir mal >>>DIES HIER<<< an. Btw. der erste Google Treffer... | ||
Play Satyr! |
MasterK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ähm... TheMatrix... willst du für ne simple rechteck-kollision wirklich extra 2 images erzeugen??? und was machst du wenn dieses rechteck nur eine bounding box für ein nicht rechteckiges objekt sein soll? | ||
+++ www.masterk.de.vu +++
Lila FTW! |
![]() |
TheMatrix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn ich zwei Boxen kollidieren lassen möchte, wieso möchte ich das denn nicht?
Und wenn du von nicht recteckigen Objekten Sprichst, dann sind sie das nur für den Betrachter. Du kannst genauso gut auch "nicht eckige"-Objekte mit der funktion RectsOverlap überprüfen, ohne diese "Bounding Box" zu benutzen. Also, ich sehe nicht wirklich einen Nutzen in deiner Funktion, da es sie schon in all ihren Variationen gibt ![]() |
||
°_° °.° °~° °v° .. -.- |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Matrix, er möchte eine 3D-Kollission. Es geht um Körper, nicht um Ebenen. Und da ist imagescollide schlicht falsch. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
TheMatrix |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Bladerunner
Es ist mir völlig bewusst, dass ProGamer.Coder von einer 3D-Kollision redet, da er dies nun sehr deutlich in diesem Thread ausgedrückt hat. Jedoch hat MasterK meinen Code bezüglich 2D angemekert, was ich mir einfach nicht bieten lassen konnte ![]() |
||
°_° °.° °~° °v° .. -.- |
![]() |
DerHase |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Matrix, die Frage ist nur, warum Du ein Image erstellst wenn man doch nur 2 Rechtecke kollidieren lassen möchte. Man hat nicht zwangsläufig ein Bild, es können auch Bereiche sein, die etwas triggern sollen etc etc. Dafür jeweils ein Image anzulegen ist doch totale Resourcenverschwendung. Und eine "fertige" Rechteckkollision hat Blitz nicht eingebaut, braucht es ja auch nicht, weil es nur 5 Zeilen Code sind und in 3d ist es auch nicht viel mehr. | ||
Play Satyr! |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Stimme Hase und Master voll zu. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
TheMatrix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ach, gibt es nicht? Dann solltest du dir eventuell nochmal diese Dokumentation zum Befehl Rectsoverlap zu Gemüte führen.
Und jetzt sage mir bitte nocheinmal, das es eine einfache Box-Abfrage in BlitzBasic nicht gibt, die auch ohne Image funtioniert ![]() (Also ich bleibe dabei: Ich finde diese Funktion von MeisterK immer noch unbrauchbar ![]() |
||
°_° °.° °~° °v° .. -.- |
![]() |
DerHase |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Funktion war von mir, und in der Tat ist sie überflüssig, da schon vorhanden, das hab ich voll übersehn ![]() |
||
Play Satyr! |
![]() |
TheMatrix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok, dann ist es auch nicht weiter schlimm. ![]() Ich dachte schon, ich versteh die Welt nicht mehr ^^. Aber ich glaube, wir haben für ProGamer.Coder das Problem immer noch nicht so ganz gelöst ![]() ![]() mfg,TheMatrix |
||
°_° °.° °~° °v° .. -.- |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mal so nebenbei:
Das ist nicht das Einfachste der Welt. So lange nur herausgefunden werden soll, ob sich die NICHT GEDREHTE Box innerhalb einer anderen NICHT GEDREHTEN Box befindet, so lange ist BladeRunners Link sinnvoll. Danach kommt Vektorenrechnung, glaube ich. Und das ist nicht einfach... Zumindest wenn es um Schnittpunkte und Reibung und Kollision geht |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group