Sphere-To-Sphere Kollision
Übersicht

![]() |
ToeBBetreff: Sphere-To-Sphere Kollision |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also ich brauche für 3D schüsse eine berechnung, die sphere_to_sphere Kollision berechnet (weil wenn sich die Gegner bewegen, kann man ja net die BlitzKollision benutzen). Wie berechne ich das ?
Also die beiden spheren sollen beide einen xz-radius+yxradius haben (also wie bei EntityRadius), und wie berechne ich das ? mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
einfach die abstände vergleichen? wenn die spheren rund sind einfach nur den abstand<radius1+radius2, wenn sie eher oval sind wirst du wohl etwas komplizierter rechnen müssen, darüber hab ich noch nie nachgedacht | ||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
ja das mein ich ja... oval halt... sonst den abstand zwischen zwei kugeln und so berechnen... ist ja einfach ^^
mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
LinePick mit Schussradius benutzen und die Geschwindigkeit (als LinePick-Prüflänge) *2 nehmen, um das Problem der bewegten Gegner zu kompensieren sollte gehen. | ||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
nein da nehm ich doch lieber EntityPick, da kann ich auch die länge einstellen und es ist viel schneller aber danke trotzdem für den Tipp !!
mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
FreizeitCoder |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
mal eine Saublöde Frage..... Wieso kann man die Blitz-Kollision nicht benutzen, wenn sich die Gegner bewegen?
Gruß |
||
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Weil das so ist ![]() Die Blitz Kollision ist so ausgelegt, das ein Bewegtes Object nur mit einem Unbeweglichem Kollidieren kann (Frag mich net wieso ^^). Bewegt sich das andere aber auch, so wird die kollision für das Object nicht berechnet, da es ja vorher als "konstant" angegeben wurde (Collisions). mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
BIG BUG |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Kugel-Kugel-Kollisionen funktionieren auch wenn sich beide Objekte bewegen...
Wichtig ist nur, dass die Bewegungsschritte klein genug bleiben damit die Kugeln auch mindestens ein Frame kollidieren... |
||
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final) |
![]() |
Mr.Keks |
![]() Antworten mit Zitat ![]() |
---|---|---|
kollision funktioniert auch mit bewegten objekten. da kann es probleme geben, sodass das sliden nicht funktioniert und die objekte einander durchqueren, aber erkannt wird die kollision mit sicherheit. | ||
MrKeks.net |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also nur so am Rande: EntityPick ist mit LinePick nicht zu vergleichen, da bei EntityPick schon der Radius fehlt der von dir oben gefordert wird. Im Übrigen benötigt EntityPick auch ein Entity welches mit einem anderem Entity kollidiert. Dieses ist für Schüsse ein Unding, da das Programm sowas von uneffizient sein wird. Da nimmt man SingleSurface für Schüsse und LinePick ist dann die erste Wahl - da sehr schnell.
Aber wie mir auch grad einfällt und auch schon von anderen beschrieben, zwei Entity-Radien kollidieren auch wenn sich beide bewegen. Gibt ja genügend Beispielcodes dazu. Eine Kollision auf bewegte Objekte funktioniert nur auf Polygon-Kollision nicht. Hat aber meiner Meinung nach nichts mit Blitz3D zu tun. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also ich habs jetzt so gelöst, ich hab ja eine Laserstrahl Entity (loadMesh) und dann habe ich es so gemacht :
Code: [AUSKLAPPEN] entity = EntityPick(schuss\mesh,schuss\speed*2)
If entity = 0 MoveEntity schuss\mesh,0,0,schuss\speed Else ;finde heraus mit was der Kollidiert ist ... ;[...] ;----------------------------------- Endif Also ich bin sehr zu frieden mit dem ergebniss und ich glaub zwei kugeln zu berechnen wäre langsamer gewesen (ganz zu schweigen von Linepick). Linepick zwingt schon bei 16 fachen gebrauch meinen rechner in die knie... Hatte da mal ein Spiel, für das ich Bots geschrieben habe. es waren 4 Bots. Alle sollten in 4 richtungen mit linepick gucken ob da frei ist, und bei mir hats geruckelt wie sau... nee davon lass ich die finger ! Danke trotzdem ! ![]() mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
darth |
![]() Antworten mit Zitat ![]() |
---|---|---|
Normale Kugel-Kugel kollision berechnet man (im Prinzip jedenfalls) über den Abstand und die Radien. Dazu nimmt man Pythagoras. Ist es nun aber kein perfekter Kreis, sondern ein Oval, dann muss man lediglich den einen Radius etwas mehr gewichten.
Code: [AUSKLAPPEN] For x=100 To 700
For y=100 To 500 If 0.25*(x-400)^2+(y-300)^2<10000 Plot x,y EndIf Next Next Color 255,0,0 Oval 400-200,300-100,400,200,0 ;oval: M=(400/300), rx=200, ry=100 Flip WaitKey() End Das ist nur ein Beispiel. Wie man sieht ist der Radius in X-Richtung doppelt so gross, wie der Radius in Y-Richtung. Als Basis-Radius wähle ich (grundsätzlich) den kleineren der beiden, dann die Gewichtung. rX=r*2 -> gX=(1/2)^2 Dieses Prinzip funktioniert auch in 3D. Wie man aber sieht, ist das hier nur Punkt-Sphere Kollision. Wenn man zwei Ovale miteinander kollidieren lassen will, muss man einfach statt hinter dem < r^2 zu schreiben (die 100^2=10000) ein (r1+r2)^2 setzen. GG, HF mfg Darth |
||
Diese Signatur ist leer. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group