Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
No, aspetta. Avevo letto male, pensavo che non venisse fuori il messaggio. Se ti viene in cotinuazione significa che l'omino e l'altra mesh si stanno toccando. Se usi msgbox, te ne viene fuori uno ogni volta che la verifica risulta vera, ossia ogni 0.02 secondi.
|
|
Thejuster (Admin)
Guru^2
Messaggi: 2331
Iscritto: 04/05/2008
|
si il problema e appunto questo che inizialmente l'omino sta da una parte mentre la navicella da un'altra parte
e come appena avvio continua a darmi il messaggio come se si toccassero invece non stanno nemmeno vicini.
|
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
Forse c'è un problema nella proprietà BoundingSphere, ma se è così il problema è più difficile del previsto. Prova a guarda sul sito XNA Creators, magari c'è qualche articolo:
http://creators.xna.com
|
|
il pisano (Ex-Member)
Pro
Messaggi: 95
Iscritto: 02/04/2007
|
In c#
Non usare la bounding della mesh, creane una nuova e muovila insieme alla mesh la proptieta' e' bounding.center = new vector3(x,y,z);
quindi crea altre bounding ed aggiungile ad un list<>; poi posizionale i giro per lo schermo.
quindi
foreach(BoundingSphere sp in list)
{
if (e.intersect(bounding che segue la mesh)
{
MessageBox.Show("Collisione");
}
}
Ultima modifica effettuata da il pisano il 13/10/2008 alle 22:58 |
|
Thejuster (Admin)
Guru^2
Messaggi: 2331
Iscritto: 04/05/2008
|
il pisano se funziona ti sposo
riguardo alla lista,
sono un newbie del c#
quindi non è che ci capisco molto riguardo agl'array che intendi
gentilmente potresti farmi un esempio piu dettagliato mi salveresti la vita grazie mille
|
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
Allora c'è effetivamente un problema con la proprietà BoundingSphere della mesh. Ma come fai a crearne un nuova? Ossia, c'è un proprietà della mesh che restituisce la sua grandezza (dato che non si può fare affidamento su BoundingSphere)?
|
|
Thejuster (Admin)
Guru^2
Messaggi: 2331
Iscritto: 04/05/2008
|
totem sei hai msn mi aggiungeresti?
il mio indirizzo e sotto il nick
ho diversi moduli di collisioni che funzionano
ed'è anche una libreria da usare con un appisito
comando tipo collision.add(
un bel po di roba con anche effetti glow e luci
con blur
vediamo di capirci qualcosa su questi moduli
magari riusciamo a capire il funzionamento e a poterli usare sempre se ti và.
|
|
il pisano (Ex-Member)
Pro
Messaggi: 95
Iscritto: 02/04/2007
|
BoundingSphere player = new BoundingSphere(new Vector3(0,0,0),5f);
BoundingSphere[] nemici = new BoundingSphere[5];
nemici[0]= new BoundingSphere(new Vector3(100,0,0),5f);
nemici[1]= new BoundingSphere(new Vector3(0,100,0),5f);
nemici[2]= new BoundingSphere(new Vector3(0,0,100),5f);
nemici[3]= new BoundingSphere(new Vector3(100,100,0),5f);
nemici[4]= new BoundingSphere(new Vector3(100,0,100),5f);
for(int i=0;i<nemici.Lenght;i++)
{
if(player.Intersect(nemici))MessageBox.Show("Collisione!");
}
Il Vector3 del player deve muoversi inseme alla mesh che la accompagna
Ultima modifica effettuata da il pisano il 15/10/2008 alle 0:05 |
|