Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: Aiuto Playmobil

  1. #1

    Aiuto Playmobil

    Dovrei realizzare un filmato che sia simile al filmato di questo indirizzo:

    http://195.143.92.204/is-bin/INTERSH...orefront-Start

    il fatto è che è più complicato di quanto pensassi.. per adesso sono riuscito a realizzare solo il movimento ellittico con:

    a += 5;
    y = Math.cos (a/500)*100;
    x = Math.sin (a/500)*200;

    Può aiutarmi qualcuno.. anche se ci fossero delle risorse scaricabili..
    grazie mille anticipatamente

  2. #2
    se è fatto come dovrebbe, usa un semplice algoritmmo 3D..
    gli oggetti sono disposti a raggiera lungo la circonferenze e girano...
    il punto di vista è sollevato rispetto l'intersezione degli assi...
    ti ci vorrebbe un minimo di infarinatura sul 3d..

    er il posizionamento degli oggetti sualla circonferenza e il loro movimento, se hai 2 nozioni base di trigonometria a livello scolastico te la cavi..
    il problema sorge quando devi rendere l'effetto della prospetttiva (perche a scuola non ce l'hanno insegnata!!! meledetti!)
    cmq con un po' di teoria sugli angoli vedrai che ce la puoi fare!

    ci sono tutorial sull'argomento un po' ovunque, ho visto qualcosa su ultrashock.com e warp9.it.

    fammi sapere come procede..
    ciao

  3. #3
    Ma perché andare a scomodare il 3d? Non so, secondo me basta una semplicissima ellisse in 2d, scalando la dimensione degli omini in base all'ordinata in cui si trovano.
    Non so se tu intendevi questo o no...

  4. #4
    bhe..insomma ...se vuoi fare le cose fatte bene..

    quello di playmobil sicuro usa un algoritmo 3d..
    cmq non è complicato..
    devi scalare i MC in base alla loro posizione sull'asse Z... quindi per ogni MC prevedi una variabile Z che poi usi per calcolarne la scala..

    todo qui!

  5. #5
    In realtà penavo di sbrigarmela senza l'uso del 3d. Però grazie mille Jacopo per la dritta ultrashock non lo conoscevo ed è veramente un gran sito.

    Il fatto è che la rotazione l'ho fatta.. e la scalatura in un modo la rimedio ( l'uso dell _scale su ordinata è un'ottima idea ).

    Il mio problema è che girano ma non si sovrappongono ..é difficile da spiegarlo ma se volete è in linea a questo indirizzo il fla:

    www.selfstation.net/play/_play.fla

    Grazie a tutti

  6. #6
    guarda questo esempio (ti basta un copia-incolla in un nuovo documento):

    codice:
    nC = 20;//numero movieclip
    aC = new Array();//un array che contiene i movieclip
    hEll = 100;//altezza ellissi
    wEll = 200;//larghezza ellissi
    cEll = {x:550/2, y:200};//centro ellissi
    ang = 0;//angolo di rotazione
    incAng = 0.01;//incremento angolo di rotazione
    
    //creo dei movieclip e riempio l'array
    for (i=0; i<nC; i++) {
    	this.createEmptyMovieClip("clip"+i, i);
    	aC.push(this["clip"+i]);
    	with (this["clip"+i]) {
    		lineStyle(0, 0x000000, 100);
    		beginFill(0xCCCCCC, 100);
    		moveTo(-25, -50);
    		lineTo(-25, 50);
    		lineTo(25, 50);
    		lineTo(25, -50);
    		endFill();
    	}
    }
    
    
    this.onEnterFrame = function() {
    	//posiziono i movieclip e li scalo in base alla posizione y
    	for (i=0; i<nC; i++) {
    		this["clip"+i]._x = cEll.x+wEll*Math.cos(2*Math.PI/nC*i+ang);
    		this["clip"+i]._y = cEll.y+hEll*Math.sin(2*Math.PI/nC*i+ang);
    		this["clip"+i]._xscale = this["clip"+i]._yscale=this["clip"+i]._y/(cEll.y+hEll.y)*100;
    	}
    	
    	//ordino i clip in base alla posizione y
    	aC.sort(confrontoSuY);
    	
    	//posiziono i clip alla giusta profondità
    	for (i=0; i<nC; i++) {
    		aC[i].swapDepths(i);
    	}
    	
    	//incremento l'angolo per la rotazione
    	ang += incAng;
    	ang = (ang<Math.PI*2) ? ang : 0;
    };
    
    
    function confrontoSuY(a, b) {
    	if (a._y>b._y) {
    		return 1;
    	} else if (a._y<b._y) {
    		return -1;
    	} else {
    		return 0;
    	}
    }
    [Il mio sito V2]
    ___________________
    I.m.The.Magic.Man

  7. #7
    non capisco la tua paura... guqrda che ho detto 3d, mica "bu'aiola tu ma'"...3d mica è un insulto..

    cmq scharzi a parte, forse ti spaventa la parola, però quando dico 3D, non si intende l'uso di plugin/conponent/lauree in ingenieria aerospaziale..

    3D in questo caso significa solamente scrivere 10 righe di AS(esattamente lo stesso numero di quelle scritte da lennynero) però con cognizione di un'ipotetico asse Z e della formula per calcolare le misure (cordinate X e Y e scala)in prospettiva.
    non solo il risultato verrà più bello (perche anche se naturalmente l'utente non ha idea di quale sia lo script alle spalle, ti assicuro che uno effetto scritto con una logica NATURALE da un'effetto molto più piacevole che non uno realizzato a tentativi) e poi una volta che capisci come funziona, visto che è molto semplice, ci puoi fare diversi giochini carini..

    cmq ti do un sugerimento iniziale (per li approfondimenti vatti a cercare un tutorial che è pieno..)

    immagina di dover inizialmente creare l'effetto playmobil in modo tale però che tutti gli omini siano pozionati sull'asse X , quindi semplifichiamo per ora la cosa eliminando il calcolo del Y

    immagina che i tuoi oggetti siano disposti in uno spazio 3dmensionale(quindi non fai altro che attribuire a ogni oggetto una variabile Z)

    una volta che hai posizionato tutti gli oggetti con un ciclo di FOR, devi scrivere la funzione che ne determina la grandezza e posizione in prospettiva..

    per fare questo..

    prendi un foglio di carta...
    disegnaci un triangolo rettangolo.
    ABC

    dove AB è il cateto corto BC quello lungo

    ora attraversa BC con una retta a esso normale in un punto a caso, che formerà il punto O nell'interezione con BC e P nell'interesezione con AC

    quindi avrai 2 triangoli rettangoli simili (cioè con gli stessi angoli) ABC e COP

    questo è tutto quello che ti serve..

    adesso..
    C è il punto di vista...(immagina l'angolo in C come il cono visivo di un occhio)

    AB è l'oggetto che osservi(il tuo MC)
    mentre la retta che hai disegnato prima è il piano di proiezione dell'oggetto..

    quindi:
    OP è la proiezione dell'oggetto AB sul piano.

    per la teoria dei triangoli simili:
    AB/OP = BC/OC
    >>
    OP = OC*AB/BC

    quindi la nuova misura in scala del tuo movie è OP
    ... lo stesso ragionamento vale per le coordinate naturalmente..

    ci avrai capito qualcosa? spero di si..
    io quando ho scoperto sta cosa mi sono divertito poi molto

    jalab.net [press F5]
    ciao

  8. #8
    Ho provato l'as di lennynero e funziona... ha però un piccolo problema con lo sfarfallio..


    Sostituendo i quadrati con delle bitmap vibrano...:master:

    Ho già provato con updateAfterevent()

    qualcuno ha già affrontato questo problema?

    Grazie

  9. #9
    updateafterevent serve per gli eventi legati ai movimenti del mouse..
    quindi non serve in questo caso..
    lo sfarfallio delle bitmap.. bhe... flash è cmq un programma coi suoi bei limiti per quel che riguarda l'uso del processore...
    può darsi che non ce la faccia...

  10. #10
    Si... :sgrat: penso anch'io!
    grazie

    Approfitto di te jacopo: ho provato quello che mi dicevi sulla prospettiva...

    in teoria mi torna tutto ma in pratica non so applicarla... non capisco proprio come posso utilizzarlo

    i fla scaricabili sono troppo complessi per tirarci fuori una base.. mi servirebbe qualcosa di elementare per iniziare :quipy:

    Appena hai un briciolo di tempo non è che mi mostreresti un as base che applica la prospettiva 3d?

    Se ti rompo dillo no problem!

    Grazie

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.