Hi Leuz, speziel Gernot,
hab da nen Fehler in der X_COLLISION-Reihe gefunden, einfach mal runterladen und anschauen. Wenn man mehrere Objekte zeichnet, aber die Kollisionsabfragen nicht sofort nach dem zeichnen eines solchen stellt, gibt diese "0" zurück.
http://rapidshare.de/files/40893405/COLLISION-BUG.rar.html (http://rapidshare.de/files/40893405/COLLISION-BUG.rar.html)
Gruß Tenorm
Is schon klar, oder?
X_COLLISION prüft: Objekt "n" bei aktuell eingestellter X_MOVEMENT/X_ROTATION Matrix mit einer glboalen Kugel.
Es gibt in GLBasic keine "Entities". Wer das will, soll das Entity System verwenden - das kann's auch anders.
Nicht speziel X_COLLISION(das alte war ja noch ohne Einbezug der aktuellen Matrix), bei X_COLLISIONAABB und X_COLLISIONRAY gehts ja auch ned, und die beziehn sich ja ned auf die aktuelle Matrix, wird ja bei den Argumenten angegeben, wohin gemessen wird oder wo die Box steht !?
Danke für die schnelle Antwort :good:
BSP anschauen =D
doch. Das Objekt ist immer * aktuelle Matrix.
Das Objekt schon, aber die Kollisions"box" nicht, hast des bsp scho angschaut?
Ja. Die Box/Kugel/Ray ist immer GLOBAL, das Objekt mit dem kollisiert wird immer LOKAL zur aktuellen Matrix.
Achsooooo. Hab ich falsch aufgeschnappt :S Aber kann man da nix geng machen? Wär nehmlich praktisch...
Quote from: Tenorm on 2008-Nov-15
Achsooooo. Hab ich falsch aufgeschnappt :S Aber kann man da nix geng machen? Wär nehmlich praktisch...
*auf nämlich zeig*
Da gibts doch diesen berühmten Spruch.... wie ging der noch gleich :nana:
ooops :x
=D macht ja nix, passiert halt :nana:
Was wäre praktisch?
Wie willst Du's haben?
Wär cool, wenn man, nachdem man ein Objekt gesetzt hat, an jeder Stelle des Codes eine Kollisionsabfrage mit Box(x,y,z,breite,länge,höhe) und Objekt(id,anim) machen kann. Wenns keine Umstände macht und den Prozessor nicht killt :whistle:
Danke
x_collisionAABB mach genau das.
Platzier ein Objekt.
(optional: Zeichne es)
mach X_COLLISIONAABB mit der globalen Box.
:S OK, jez bin ich verwirrt. Im BSP arbeit ich ja mit X_COLLISIONAABB und es geht ja nicht an jeder Stelle des Codes, eine der vier Col-Boxen wird im Debugmodus ja grün statt rot gezeichnet und behauptet somit, dass keine Kollision vorliegt obwohl eine da wäre... Ich frag ja extra einmal direkt nach dem Zeichnen und einmal am Ende des Codes ab.
Poste mal code.
Hatter doch oben...
In der BSP-zip-file is programm und code
Kein bug:
// --------------------------------- //
// Project: COLLISION-BUG
// Start: Wednesday, November 12, 2008
// IDE Version: 5.360
X_LOADOBJ "sphere.ddd" ,0
X_LOADOBJ "sphere.ddd" ,1 // Extra 2x die gleiche Datei, liegt nähmlich ned daran ;)
X_LOADOBJ "ground.ddd" ,2
WHILE TRUE
X_MAKE3D 1,20,45
X_CAMERA 15,5,0,0,0,0
X_AMBIENT_LT 1,RGB(0,0,255)
// draw 2
X_DRAWOBJ 2,0
X_COLLISIONAABB(2,0,0,0,5,2.5,2.5,2.5)
X_COLLISIONAABB(2,0,0,0,-5,2.5,2.5,2.5)
X_MOVEMENT 0,0,5
// draw 0
X_DRAWOBJ 0,0
X_COLLISIONAABB(0,0,0,0,5,2,2,2)
X_MOVEMENT 0,0,-5
// draw 1
X_DRAWOBJ 1,0
X_COLLISIONAABB(1,0,0,0,-5,2,2,2) // FEHLER !!!
SHOWSCREEN
WEND
Als debug anschauen(damit man die Kollisionslinien sieht), dann wir eine Kollisionsbox grün gezeichnet.
Hä!? Bei mir (V6) ist alles rot.
:S Brauch wahrschl die 6. Is aber noch beta oder?
Mittlerweile stabiler als die 5er ;)
Es wird sich aber noc was ändern - compilermäßig. Darum noch Beta.
Bei mir siehts (V5.360) so aus:
(http://bsp.jpg)
Eins der vier Koll-Quadrate is grün(kleinere, links)
[attachment deleted by admin]
Deshalb sagte ja Gernot du sollst die V6 Beta nehmen, da gehts...