Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    336

    ottimizzazione gioco - movimento personaggio

    Ciao, a questo indirizzo potete vedere un giochino che sto facendo:

    http://www26.brinkster.com/jumpykun/gioco.html

    Il mio problema è che per dare il senso del movimento sui pattini ho creato questo codice:

    codice:
    onClipEvent (enterFrame) {
    	
    	if(_xmouse<this._x-50)
    	{
    		if (movimento>-10)
    		{
    			movimento-=1;
    			
    		}
    	}else if(_xmouse>this._x+50)
    	{
    		if (movimento<10)
    		{
    			movimento+=1;
    			
    		}
    	}
    	
    		
    	this._x+=movimento;
    	
    
    }

    Ma il movimento è molto pesante e succhia molta cpu. Sul mio portatile che è un pentium 4 2,6gh gira bene, ma sul mio desktop che è un pentium 3 450mh va a scatti.

    Avete qualche consiglio su come ottimizzare il codice per poterlo far andare su tutti i pc? Anche degli esempi di qualcosa di simile che possano dare un effetto del genere.

    un'altra cosa, come faccio a far rimanere il sacco aperto (provate a schiacciare la barra spaziatrice) solo per poco e fare in modo che non si riapra subito dopo? l'animazione non è altro che un gioco di alpha tra il frame aperto e quello chiuso.

    Grazie

  2. #2
    Visto che il tuo babbo natale si muove sinusoidalmente, potresti usare una cosa di questo tipo:

    PRIMO FRAME:
    codice:
    ascissa_iniziale = 200;
    ampiezza = 100;
    periodo = 10;
    i = 0;
    SECONDO FRAME:
    codice:
    _root.nome_mc._x = ascissa_iniziale + ampiezza*Math.sin(i/(2*Math.PI*periodo));
    i++;
    TERZO FRAME:
    codice:
    gotoAndPlay("start");
    NOTE:
    1 - "start" è l'etichetta del primo frame
    2 - "nome_mc" è il nome del clip con babbo natale;
    3 - per personalizzare il movimento, modifica le seguenti variabili:
    ascissa_iniziale
    ampiezza
    periodo
    4 - come traiettoria ho inserito semplicemente un seno, ma l'ho fatto tanto per farti capire il principio. Se tu, come nel tuo filmato, vuoi un traiettoria un pò più movimentata, non dovrai fare altro che inserire una somma di seni di frequenze diverse. Se non capsici cosa voglio dire chiedimelo.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    336
    grazie, il consiglio è ottimo, ma utilizza comunque molta cpu. Eseguendo il gioco, dal task manager, vedo che non vado mai sotto il 60% e considerando che il mio processore è un 2,6gh...


    Se qualcun altro avesse dei consigli da darmi per ottimizzare il gioco...

    grazie

  4. #4
    Se il clip all'interno avesse una animazione grafica regolare

    centro--> destra--> centro ---> sinistra----> centro


    ed al clip applicassi anche lo spostamento verso il mouse con ritardo ??

    onClipEvent (enterFrame){
    x=_root._xmouse-_x
    _x=_x+x/5
    }

    Potrebbe alleviare la CPU ??? magari però perde di effetto!!!

    Provalo.

    Cmq. per l'esempio di prima volendo mettere tutto su una frame:

    al clip
    codice:
    onClipEvent(load){
    ascissa_iniziale = 200;
    ampiezza = 250;
    periodo = 2;
    i = 0;
    }
    onClipEvent(enterFrame){
    _x = ascissa_iniziale + ampiezza*Math.sin(i/(2*Math.PI*periodo));
    i++;
    }

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    336
    Grazie a tutti e due, proverò anche questa soluzione

  6. #6
    Già, sono un idiota, perché 1. poteva benissimo andare tutto su un frame e 2. non risolleva troppo la CPU.
    Ma a dire la verità, l'unica cosa che mi viene in mente di usare è un controllo esplicito del movimento (una teoria che si applica al controllo digitale, non c'entra niente con flash), però non penso ne valga la pena... Mi spiace, non so in che altro modo aiutarti



    PS. ho iniziato da poco a "dare" consigli oltre che a chiederne. Forse però la mia preparazione non è ancora sufficiente. Sarebbe meglio che evitassi...

  7. #7
    Assolutamente no.. continua a dire la tua, e sempre..
    anche perchè la tua preparazione matematica non è da poco.

    Insieme poi mettiamo a posto il codice.

    Cioa

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.