Pagina 1 di 5 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 42
  1. #1

    Movimento movieclip in diagonale

    Ragazzi ho trovato un tutorial su questo sito per il movimento di un movieclip in orizzontale:

    codice:
    // al caricamento del movieclip
    onClipEvent (load) {
    // setta come posizione iniziale quella attuale
    fine = _x;
    // setta la variabile "fine" come 3
    frame = 15;
    }
    // ad ogni riproduzione del movieclip
    onClipEvent (enterFrame) {
    // considera come inizio la posizione attuale del movieclip
    inizio = _x;
    // valuta come "spostamento" il valore di fine-inizio
    // fratto frame (valore sempre minore)
    spostamento = (fine-inizio)/frame;
    // somma al valore della _x del movieclip, quello di spostamento
    _x += spostamento;
    }
    e poi sul movieclip

    codice:
    onClipEvent (mouseDown) {
    if(this.hitTest(_root._xmouse,_root._ymouse,false)){
    _parent.scorrimento.fine -= 300;
    
    }
    }
    E tutto a posto mi funziona, ma se volessi far muovere il movieclip anche in diagonale come faccio?
    Grazie

  2. #2
    devi inserire le istruzione per agire anche sulla coordinata Y oltre che sulla X, in questo modo:
    codice:
    onClipEvent (load) {
    fine = _x;
    finey = _y;
    frame = 15;
    }
    // ad ogni riproduzione del movieclip
    onClipEvent (enterFrame) {
    inizio = _x;
    inizioy = _y;
    
    spostamento = (fine-inizio)/frame;
    spostamentoy = (finey-inizioy)/frame;
    _x += spostamento;
    _y += spostamentoy;
    }
    e poi sul movieclip:
    codice:
    onClipEvent (mouseDown) {
    if(this.hitTest(_root._xmouse,_root._ymouse,false)){
    _parent.scorrimento.fine -= 300;
    _parent.scorrimento.finey -= 200;
    
    }
    }

  3. #3
    non so perchè, ma avevo provato già questo metodo e non mi funzionava... evidentemente sbagliavo qualcosa.
    Grazie mille!!

  4. #4

  5. #5
    è tutto ok pasavign!
    Adesso devo studiare un metodo per far sì che arrivato al limite dello schermo il tasto che mi muove il movieclip sia disabilitato.
    Spero di riuscirci!!

  6. #6
    Cosa c'è di sbagliato in questo che ho scritto?
    In pratica ho realizzato delle frecce che mi muovono il movieclip con lo script visto sopra.
    Ho due frecce.
    Se clicco su di una assegno creo una variabile e le assegno il valore "ok".Quando clicco sull'altra a seconda se il valore della variabile è "ok" oppure no deve muoversi in un certo modo.
    L'ho scritto così, ma devo aver sbagliato qualcosa:

    QUI ASSEGNO IL VALORE ALLA VARIABILE:
    codice:
    onClipEvent (mouseDown) {
    	aeroporto = "ok";
    if(this.hitTest(_root._xmouse,_root._ymouse,false)){
    _parent.scorrimento.fine -= 320;
    _parent.scorrimento.finey += 130;
    }
    }
    E QUI DOVREI RECUPERARE QUEL VALORE:
    codice:
    onClipEvent (mouseDown) {
    	if (aeroporto == "ok") {
    	if(this.hitTest(_root._xmouse,_root._ymouse,false)){
    	_parent.scorrimento.fine += 320;
    	_parent.scorrimento.finey += 0;
    	}
    	else {
           if(this.hitTest(_root._xmouse,_root._ymouse,false)){
          _parent.scorrimento.fine += 120;
          _parent.scorrimento.finey += 130;
                 }
    }
    }
    }
    Grazie

  7. #7
    L'evento (mouseDown) è sempre lo stesso!

    Non puoi assegnare due funzioni diverse allo stesso evento!
    Se non vado errato, la seconda definizione ricopre la prima.

    Sempre che quel codice sia associato allo stesso clip.
    Per favore, specifica meglio.

  8. #8
    No i movieclip sono tre.
    Il primo è quello che deve muoversi, gli altri due sono quelli impostano le coordinate.
    Immagina che questi due movieclip siano due frecce: freccia_dx e freccia_sx.
    al movieclip freccia_dx è associato questocodice:
    codice:
    onClipEvent (mouseDown) {
    	aeroporto = "ok";
    if(this.hitTest(_root._xmouse,_root._ymouse,false)){
    _parent.scorrimento.fine -= 320;
    _parent.scorrimento.finey += 130;
    }
    }
    al movieclip freccia_sx invece quest'altro:
    codice:
    onClipEvent (mouseDown) {
    	if (aeroporto == "ok") {
    	if(this.hitTest(_root._xmouse,_root._ymouse,false)){
    	_parent.scorrimento.fine += 320;
    	_parent.scorrimento.finey += 0;
    	}
    	else {
           if(this.hitTest(_root._xmouse,_root._ymouse,false)){
          _parent.scorrimento.fine += 120;
          _parent.scorrimento.finey += 130;
                 }
    }
    }
    }
    quindi in pratica vorrei che se viene cliccato il movieclip freccia_dx sia assegnato quel valore alla variabile. Valore che poi vorrei recupeare quando clicco sul movieclip freccia_dx in modo da assegnargli coordinate diverse a seconda del valore della variabile.
    Spero di essermi spiegato meglio.
    Grazie

  9. #9
    NO, il codice dovrebbe essere "pressoché identico" per ewntrambi i pulsanti, ad eccezione delle coordinate.
    Ti serve una variabile (va benissimo aeroporto, che però definirei come "booleana").
    Detta variabile la metterei sul _parent.

    Per provare a buttar giù due righe di codice mi servono alcuni riferimenti...
    1) Coordinate di arrivo per freccia dx
    2) coordinate di arrivo per freccia sx

    Devi dirmi anche se queste coordinate sono "fisse" o "relative" alla posizione corrente.

  10. #10
    non ho capito molto bene coa mi chiedi, cmq ti posso postare il codice che ho scritto adesso e che funziona in parte.
    Vale a dire che la condizione if non la prende in considerazione, adesso non so se è perchè nonrecepisce la variabile aeroporto.

    'QUESTO E' IL CODICE DEL movieclip freccia_dx

    onClipEvent (mouseDown) {
    _root.aeroporto = "ok";
    if(this.hitTest(_root._xmouse,_root._ymouse,false) ){
    _parent.scorrimento.fine -= 320;
    _parent.scorrimento.finey += 130;
    }
    }

    'QUESTO INVECE DI freccia_sx:
    onClipEvent (mouseDown) {
    if (_root.aeroporto == "ok") {
    if(this.hitTest(_root._xmouse,_root._ymouse,false) ){
    _parent.scorrimento.fine += 320;
    _parent.scorrimento.finey += 0;
    }
    else {
    if(this.hitTest(_root._xmouse,_root._ymouse,false) ){
    _parent.scorrimento.fine -= 320;
    _parent.scorrimento.finey += 130;
    }
    }
    }
    }

    Come vedi ho aggiunto _root.aeroporto, e così il movieclip si muove, ma non accetta la condizione if. Infatti se clicco su freccia_sx prima o dopo aver cliccato su freccia_dx si muove sempre nella stessa direzione:
    _parent.scorrimento.fine += 320;
    _parent.scorrimento.finey += 0;

    Perchè?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.