Ciao a tutti!
Esiste una funzione per verificare se un punto (in coordinate rispetto allo stage) appartiene a una movieclip? Qual è?
Grazie!
![]()
Ciao a tutti!
Esiste una funzione per verificare se un punto (in coordinate rispetto allo stage) appartiene a una movieclip? Qual è?
Grazie!
![]()
mmh... i sistemi di coordinate sono diversi internamente ad ogni clip... quindi non si può proprio dire che una determinata coppia di coordinate appartenga ad un clip (anche perchè alcuni potrebbero essere sovrapposti, perciò "l'appartenenza" nella sovrapposizione sarebbe sempre del clip di più alto livello)
probabilmente quello che ti serve è di conoscere ad un determinato evento, se il puntatore del mouse si trova su di un determinato clip... è questo che vuoi?
Ciao!
Quello di cui avrei bisogno è proprio sapere se la coppia (Px, Py), misurata nel sistema di riferimento dello stage, fa parte della movieclip di nome mc. Credo di riuscire a implementare una funzione che faccia questo ("basta" prendere gli intervalli dx e dy appartenenti alla movie clip e vedere se :
(mc._x < Px < mc._x + dx) && (mc._y < Py < mc._y + dy)) ma essendo un procedimento macchinoso, ho preferito chiedere; magari esisteva già funzione di linguaggio con lo stesso compito. Devo dire che mi sembra strana una simile assenza... Dovrebbe essere un'operazione abbastanza utile e ricorrente.
In ogni caso grazie per l'aiuto!
certo che c'è il sistema, il problema è che non ho ancora capito da dove ricavi queste coordinate e sopratutto a cosa ti serve... è probabile che ci siano metodi più semplici e veloci per fare quel che chiedi
Riciao!
Visto che un moderatore mi chiede di spiegare a cosa mi serve non dovrei aver paura di fare spam
E' sempre per il solito programma del garagista: http://www.lyra.net/fabio/giochi/garage_def.html
Se provi a giocarci noterai che, se non si è più che precisi, quando un'auto collide un'altra, anche di pochissimo, questa viene riportata alla posizione di partenza. Vorrei trovare un modo elegante (a livello di codice) per far posizionare l'auto nella prima casella "libera". A parole è una banalità descrivere il procedimento, a codice è ben altra cosa. Comunque avevo pensato di vedere
E' un po' difficile da spiegare, ma qualunque idea alternativa è ben accetta...Codice PHP:
se auto._x e ._y fosse compreso nella movieclip che viene urtata (cioè se urta dal davanti). In questo caso,
se auto._height > auto._width allora
avrei dovuto togliere alle y diciamo 20 e poi invocare la funzione di posizionamento sulla griglia.
Altrimenti
avrei tolto a x 20
altrimenti (se urta dal retro)
se auto._height > auto._width allora
avrei dovutoaggiungere alle y diciamo 20 e poi invocare la funzione di posizionamento sulla griglia.
Altrimenti
avrei aggiunto a x 20
Saluti!
Fabio
mmh pressappoco ho capito, comunque se le caselle sono dei movieclip, è possibile utilizzare un listener per il mouse, che verifichi su quale casella si trova in quel momento il puntatore e di conseguenza, al rilascio del mouse, faccia l'update delle coordinate in cui riportare il clip "macchina" preso in quel momento
il codice generico per un listenere del mouse è questo
codice:var o = new Object(); o.onMouseMove = function(){ // azioni al movimento del mouse (update delle coordinate di riposizionamento del clip) } o.onMouseDown = function(){ // azioni alla pressione del pulsante sinistro del mouse (scelta del clip di cui ricalcolare le coordinate di riposizionamento } o.onMouseUp = function(){ // azioni al rilascio del pulsante sinistro del mouse (riposizionamento del clip scelto) } Mouse.addListener(o);
Heilà!
Interessante la roba sui listener, non ne avevo mai sentito parlare. In ogni caso gestire l'evento mouse è troppo fuorviante, nel caso uno lo muova troppo velocemente e lo rilasci prima che l'urto sia effettivamente registrato. Ho trovato un'altra soluzione che sembrerebbe soddisfacente. In pratica faccio controllare se c'è stato urto, poi allineo alla griglia e se c'è ancora urto sposto la macchina. Se qualcuno vuole testarlo![]()
http://www.lyra.net/fabio/giochi/garage_defPoint.html
Grazie!