MiniB3D - Pick Updaten

Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Neue Antwort erstellen

ToeB

Betreff: MiniB3D - Pick Updaten

BeitragSo, Apr 22, 2012 16:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo!

Ich habe ein wenig mit dem MiniB3D-Modul gearbeitet. Leider brauchte ich ein veränderbares Mesh und den Pick-Zugriff darauf, was Minib3D ja nicht macht. Ich habe mich ein wenig erkundigt hier im Forum über die Suche, und dort hat jemand sich einen Workaround geschrieben in dem er das Mesh einfach Kopiert hat und dann den Pick neu gesetzt. Daraufhin habe ich mir die MiniB3D mal genauer angeguckt und herausgefunden, wie man es auch einfacher machen kann:
BlitzMax: [AUSKLAPPEN]
mesh.col_tree.reset_col_tree = True 
mesh.col_tree.TreeCheck( mesh )


Denn das Pick-Verfahren der MiniB3D benutz den CollisionsTree des Meshes um das gepickte Entity herauszufinden. Doch der CollisionsTree wird nur am anfang des Meshes erstellt, deswegen muss man diesen erneut erstellen.

Edit: Leider kann es danach zu Problemen bei FreeEntity kommen. Dazu muss man die Methode "UpdateMAT" in TEntity.bmx (TEntity-Klasse) ändern:
BlitzMax: [AUSKLAPPEN]
Method UpdateMat(load_identity=False)
If mat <> Null Then 'Bedingung ob MAT existiert
If load_identity=True
mat.LoadIdentity()
mat.Translate(px,py,pz)
mat.Rotate(rx,ry,rz)
mat.Scale(sx,sy,sz)
Else
mat.Translate(px,py,pz)
mat.Rotate(rx,ry,rz)
mat.Scale(sx,sy,sz)
EndIf
EndIf
End Method


Und das Modul nochmal mit Strg-D (Oder Programm->Build Modules) nochmal Compilieren.

Ich hoffe das erleichtert ein paar leuten die Arbeit Wink

Lg
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!

Jan_

Ehemaliger Admin

BeitragMo, Apr 23, 2012 10:26
Antworten mit Zitat
Benutzer-Profile anzeigen
muss ich das nur in der Tentity geändert werden und dann updatemat bei Änderungen oder noch wo anders?
between angels and insects

ToeB

BeitragMo, Apr 23, 2012 14:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Also die Methode muss mit der Bedingung versehen werden weil sonst bei FreeEntity aus irgendwelchen Gründen die Methode nochmals aufruft. Die Zeilen

BlitzMax: [AUSKLAPPEN]
mesh.col_tree.reset_col_tree = True 
mesh.col_tree.TreeCheck( mesh )


Müssen nach der änderung des Mesches ausgeführt werden!

Lg
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!

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group