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

    Emulare la gravità con AS 2.0

    Gente, ho un problema abbastanza ostico per i miei denti:

    Sto realizzando un giochino e devo far saltare il mio personaggio. Però, lo sceneggiatore di questo gioco è un pazzò e vuole fare in modo (secondo lui è fondamentale) che se un giocatore preme la freccetta su per pochi istanti il personaggio deve saltare poco, se invece lo pigiano decisi deve saltare tipo M.Jordan

    Ora, qualcuno di voi sa come realizzare questa cosa o devo iniziare a strappare le unghie al mio amico/sceneggatore??

    Alessio

  2. #2
    non ho ben capito la gravità.. che centra

    il tuo problema è quello di controllare se il tasto viene premuto per + di 5 secondi??

    il tuo problema è far fare un salto in avanti ed in alto cadendo con ....gravità ??


    qui intanto un vecchio esempio di gravità vedi se ti può essere utile.


  3. #3
    Dunque... la gravità mi serve perchè a seconda della forza presunta con cui il personaggio spicca il salto, questi deve saltare + o meno in alto.

    Quelloc che non so fare è:

    1) calcolare la forza con cui il personaggio salta
    2) fare in modo che salita e discesa sembrino vagamente realistici.

    Il file che hai postato, può aiutarmi per la seconda questione, ma per la prima mi serve ancora una mano.

    Spero di essere stato chiaro !

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    1,037
    prova con questo funzione
    codice:
    function alza(mc, altezza, velocita) {
    	mc._y += (altezza-mc._y)/velocita;
    }
    /*
    path.onEnterFrame = function() {
    	alza(babu_mc, -100, 10);
    };
    */
    ciao

  5. #5
    Ciao Polliotto

    stavo tentando di applicare il tuo Script, inserendo una modifica affinchè a secondo il tempo di Pressione del tasto 38, variasse il salto
    ma non riesco dov'è che sbaglio

    codice:
    tempo=0
    
    function alza(altezza, velocita) {
    	_root.mc._y += (altezza-_root.mc._y)/velocita;
    	
    }
    
    /*
    path.onEnterFrame = function() {
    	alza(babu_mc, -100, 10);
    };
    */
    _root.onEnterFrame = function(){
    if(Key.isDown(38)){
    	premuto=true
    	   tempo++
    }
    if(!Key.isDown(38)){
    if(premuto){	
    	if(tempo<20){ _root.mc.alza(-100, 10);premuto=false}
    	if(tempo>20 && tempo<50){_root.mc.alza(-50, 10);premuto=false}
    	tempo=0
    	//if(_root.mc._y=(altezza-mc._y)/velocita){premuto=false}
    }
    }
    }

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    1,037
    if(tempo<20){ _root.mc.alza(-100, 10);premuto=false}
    if(tempo>20 && tempo<50){_root.mc.alza(-50, 10);premuto=false}
    //
    //

    if(tempo<20){ alza(-100, 10);premuto=false}
    if(tempo>20 && tempo<50){alza(-50, 10);premuto=false}
    Se ti pspieghi un po' meglio cosa vuoi fare ti posso aiutare.
    Già un primo consiglio usa il listener della classe Key per verificare se è un tasto è premuto, non fare il controllo con onEnterFrame.
    ciao

  7. #7
    Stavo tentando di realizzare quanto richiesto nel 3d iniziale

    ovvero ho un pallina ferma sulla base dello stage

    premo il tasto (38) e la pallina fa un balzo in alto (alla fine della corsa dovrebbe ricadere giu seguendo le leggi della fisica)

    Per il momnto lasciamo stare lo spostamento in avanti o in dientro, po eventualmente lo uniremo con i tasti 37 e 39

    Torniamo alla richiesta iniziale, se il tasto 39 viene premuto per più tempo il salto della pallina deve essere maggiore.

    quindi avevo pensato di incrementare una variabile per tutto il tempo che il tasto 39 viene premuto

    poi semplicemente creare dei range di codifica ALTEZZA

    Probabilmente il mio codice è tutto sbagliato. Le modifiche che hai visto è perchè non avendo più clip da far saltare avevo eliminato un parametro nella funzione.

    Adesso la pallina la passo a te, che ci hai dato un spunto sul quale partire.


  8. #8
    Pure io avevo lo stesso problema di far saltare un personaggino,a dir la verità a me bastava che saltasse un tot senza contare quanto il player premeva il pulsante (avevo pensato anch'io ad un timer per il pulsante ma veniva fuori una cosa troppo complessa per un comando troppo semplice)alla fine ho fatto così:

    onClipEvent (enterFrame) {
    this._Y += 15;
    for (i=0;i<=5;++i)
    k = this._Y/i;
    if (Key.isDown(Key.SPACE)) {
    this._Y -=k;
    }

    in poche parole ho applicato questo script al MC del personaggino e premendo barra salta verso l'alto fino ad un certo punto fino a fermarsi,appena il player stacca il suo ditozzo tutto unto dalla barra il personaggino ricade a terra.C'è un problema però,se il player non stacca il suo ditozzo dalla barra il personaggino rimane a mezz'aria e quindi dovrei capire come fare a dire a flash che dovrebbe considerare solo una pulsantata invece che perpetuare l'azione finchè key.isdown.Per fare come dicevi si potrebbe programmare in modo che il pulsante schiacciato una volta fa saltare tot e schiacciato due volte fa saltare tot+1 (tanto per essere banali).

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.