Oppure

Loading
05/10/08 16:47
Thejuster
Qualcuno puo aiutarmi?
Sto letteralmente uscendo pazzo.
anche perchè non trovo tutorial nella rete
preferirei in vb.net che ho gia un po di roba pronta
come telecamera, personaggio che si muove, offset ecc.

il problema e che non so come eseguire una collisione tra oggetti.

non saprei per iniziare mi basta anche un semplice esempio, magari anche su come rilevare una traiettoria approssimativa tra il pg e l'oggetto.

anche perchè non si puo essere super precisi inserendo una cordinata specifica potrebbe anche sballare di qualche unità, quindi chiedo aiuto a voi, magari al totem, el pisano.
che siete già ad un punto avanzato rispetto a me che sono partito direttamente dalla base delle DirectX.
mire.forumfree.it/ - Mire Engine
C# UI Designer
05/10/08 17:36
pierotofy
La maniera più semplice è calcolare il diametro della prima mesh (supponendo che tu stia usando delle meshes) e controllare che l'estremità non sia dentro il campo di influenza della seconda mesh. Esistono anche altri algoritmi più sofisticati (che adesso non mi ricordo quali) che permettono rilevazioni più accurate, ma che richiedono maggior tempo computazionale.
Il mio blog: piero.dev
05/10/08 17:47
Thejuster
uhm chiedo troppo un piccolissimo esempio?
riguardo alle mesh uso direttamente dei modelli fatti con 3dsmax.

anche un solo esempio mi renderebbe la vita facile.

io ho provato questo modo


Dim lol As Model

For Each mesh As ModelMesh In omino.Meshes

                If mesh.BoundingSphere.Intersects(lol) Then

                End If


            Next


ma mi da errore proprio nella posizione dopo all'interects non capisco il perchè.
Ultima modifica effettuata da Thejuster 06/10/08 11:17
mire.forumfree.it/ - Mire Engine
C# UI Designer
06/10/08 15:35
Il Totem
Il metodo intersects richiede come parametro un oggetto BoundingSphere o BoundingBox.
aaa
06/10/08 18:47
Thejuster
quindi manca un qualcosa.
e questo che non so.

in pratica mi dovrebbe realizzare attorno al modello un area virtuale o quadrata o circolare
preferisco quadrata
e quell'if serve appunto come verifica che i 2 oggetti si toccano.
su questo ci sono arrivato.
ma secondo me sbaglio proprio qualcosa nelle dichiarazioni. e qui che non capisco

sulla ratete ci sono solo tutorial ma non spiegano ogni parametro la propria funzione.

le guide che hai fatto tu, specificano perfettamente la funzione di ogni parametro.

sulla rete trovi solo immondizia. 8-|
mire.forumfree.it/ - Mire Engine
C# UI Designer
07/10/08 13:55
Il Totem
Tu hai usato "lol" come parametro, ma lol è di tipo Model. Puoi usare due for each nidificati:
For Each mesh As ModelMesh In omino.Meshes
  For Each lolmesh As ModelMesh In lol.Meshes
    If mesh.BoundingSphere.Intersects(lolmesh.BoundingSphere) Then
    End If
  Next
Next
aaa
08/10/08 8:06
Thejuster
ci provo e spero vivamente che funzioni.

allora totem ho fatto in questo modo allora io ho una navicella e tipo un persona

dunque se la navice tocca la persona dovrebbe scatenare l'evento ma mi sa che non worka

mi da il messaggio ogni secondo



  For Each mesh As ModelMesh In omino.Meshes
                For Each ships As ModelMesh In shipModel.Meshes
                    If mesh.BoundingSphere.Intersects(ships.BoundingSphere) Then
                    
                        MsgBox("toccato")

                    End If
                Next
            Next




sbaglio?
Ultima modifica effettuata da Thejuster 08/10/08 11:44
mire.forumfree.it/ - Mire Engine
C# UI Designer
09/10/08 15:46
Il Totem
Non mi sembra sbagliato... Ma non so quale possa essere l'errore.
aaa