Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    movieclip che non si sovrappongono

    Ciao!

    Allora, volevo capire se era possibile rendere i movieclip "solidi", in modo che non si sovrappongano tra loro ma appena collidono si frenino.

    Mi spiego meglio.

    Nel mio stage ho tanti mc di varie forme, tutti draggabili, ai quali ho applicato il classico effetto delle forza di gravità verso il basso al rilascio. Ora, quel che vorrei e che lasciando "cadere" questi mc dall'alto dello stage non si sovrappongano tra loro, ma si vadano "ammucchiando" uno sul'altro, proprio come se fossero degli oggetti solidi.

    Ora, non so se c'è un semplice parametro che permetta questo o se la strada è più complicata.
    Pensavo che se fossero stati dei semplici cerchi sarebbe stato semplice utilizzando la distanza tra i centri come parametro, ma visto che i movieclip hatto tutti forme diverse e irregolari non so da dove cominciare.

    Grazie

    A.

  2. #2
    faccio un esempio per 2 clip di cui uno è master e l'altro slve nel senso che uno controlla se viene "tamponato" e l'altro invece subisce l'aggancio di colui che lo precede


    disegna 2 clip rettangolo "mc1" e palla "mc2" poni mc1._y = 40 e mc2._y=15 fai in moo che non si tocchino. Il codice prevede che alla pressione dei clip essi cadano con moto decelerao verso il basso, ma con velocità diverse Per intnderci mc1 lento e mc2 veloce così che lopossa raggiungere.


    codice:
    mc1.onPress=function(){
    	vai(this._name,8,"mc2", true) // master
    }
    mc2.onPress=function(){
    	vai(this._name,3,"mc1", false) // slave
    }
    
    function vai(nome, vel, alterEgo, master){
    	
    	this[nome].V = vel
    	this[nome]._ALT = alterEgo
    
    	this[nome].onEnterFrame=function(){
    
    		if(master){
    
    		     if(this.hitTest(eval(this._ALT))){
    			    trace("TOCCATO")
    			    delete _level0[this._ALT].onEnterFrame
    			    aggancia(this._name, this._ALT)
                  
                         }
    		}
    		
    		this.oldY = this.newY
    		this.newY = (Stage.height-this._height) - this._y
    		this._y += this.newY/this.V
    		trace(this._y)
    		if(this.oldY == this.newY){delete this.onEnterFrame}
    	}
    }
    
    
    function aggancia(clip1, clip2){
    	this[clip2].Chk = clip1
    	this[clip2].onEnterFrame=function(){
    		this._y = _level0[this.Chk]._y - this._height
    	}
    }

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.