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

Discussione: gioco "shoot em up"

  1. #1

    gioco "shoot em up"

    salve a tutti! grazie a voi sono riuscito a completare un gioco con le auto che funziona veramente bene.. e fatto quello.. ora mi sto dedicando ad un gioco 'sparatutto'.. ma come al solito trovo sempre un sacco di problemi.. al momento sono riuscito ad arrangiarmi ma ora incombo in un problema di forza maggiore a cui non so trovare una soluzione..

    vi spiego:

    nel primo frame dello stage c'è un movieClip che incorpora 4 MovieClip distinti (che sono 4 bersagli).. nel secondo frame c'è un altro movieClip che incorpora a sua volta altri 6 MovieClip distinti (6 bersagli)... e così via..

    problema:
    vorrei creare un controllo che mi permette di passare al frame successivo solo quando tutti i bersagli sono stati colpiti, altrimenti si rimane nello stesso frame. Per passare al frame2 bisogna quindi 'abbattere' i 4 bersagli del frame1, per passare al frame 3 bisogna abbattere tutti i 6 bersagli del frame2, ...

    qualcuno ha qualche consiglio da darmi?

    ciao ciao!
    duke

  2. #2
    Utente di HTML.it L'avatar di §elva
    Registrato dal
    Nov 2006
    Messaggi
    607
    in modo semplice semplice potresti settare 4 variabili di tipo booleano che registrano se i pulsanti sono stati abbattuti..
    nel primo frame inserisci: (nel secondo le variabili saranno 6..)
    b1=false;
    b2=false;
    b3=false;
    b4=false;
    poi quando il bersaglio viene abattuto setti la rispettiva variabile a true..
    infine inserisci questo nel evento onEnterFrame:
    Codice PHP:
    if((b1)&&(b2)&&(b3)&&(b4)){
    //cambia frame
    _root.nextFrame();

    da sempre l'ignoranza fa paura, ma il silenzio è uguale a morte

  3. #3
    ciao, scusami ma non riesco a capriti.. ho provato ma non funziona.. ho mi passa direttamente al frame 2, o non mi si muove dal primo..

    facciamo l'esempio:

    1. creo un PULSANTE rotondo e quando ci schiaccio sopra il pulsante svanisce..
    2. nel primo frame dello stage inserisco un MovieClip contenente 4 pulsanti;
    3. nel secondo frame dello stage inserisco un MovieClip contenente 5 pulsanti;
    4. ...?

    come faccio a controllare se i 4 pulsanti sono stati schiacciati per quindi passare al secondo frame dello stage?

    non capisco.. sorry

  4. #4
    Utente di HTML.it L'avatar di §elva
    Registrato dal
    Nov 2006
    Messaggi
    607
    ti ho steso una cosa del genere seguendo il metodo che ho indicato prima:
    http://img294.imageshack.us/my.php?i....swf&width=480

    facciamo che mi mandi la tua mail e te lo spedisco..
    te lo guardi e poi mi chiedi se non capisci..
    perchè se sto qua a spiegarti come gira il tutto ci metto un bel po'
    comunque ho commentato il fla..

    da sempre l'ignoranza fa paura, ma il silenzio è uguale a morte

  5. #5
    ciao! come prosegue il tuo gioco? io non ho ancora risolto il problema.. ma ora, dato che vorrei andare un po' in avanti.. ho deciso di procedere diversamente.. ho fatto cosi:

    quando si spara ad un personaggio parte il movie-clip dell'uomo colpito e alla fine di questo movieclip ho messo l'azione

    _root.fnl -= 1; // fnl starebbe a significare 'for next level'

    ora metterei nella scena principale un livello che chiamo 'fornextlevel' in cui ci metto un campo di testo dinamico trasparente (la variabile si chiamerà 'fnl') e per ogni frame, a dipendenza dei nemici che voglio caricare dovro' cambiare questa variabile.. ad esempio:

    nel primo frame c'è un nemico, quindi settero' la variabile fnl = 1;
    cosi nelle azioni del primo frame pensavo di mettere:
    fnl = 1;
    if (fnl == 0) {
    nextFrame();
    }

    se poi nel secondo frame ci sono 3 nemici pensavo di mettere questo codice:
    fnl = 3;
    if (fnl == 0) {
    nextFrame();
    }

    e cosi via..

    pero' ho provato ma non funziona.. cioe'.. ho lasciato il campo di testo dinamico sulla scena per vedere se cambiava ed effettivamente nel primo frame all'inizio il campo di testo 'fnl' marca 1, mentre che quando colpisco il nemico va a 0; pero' non mi cambia frame.. sapreste dirmi dove sbaglio?

    ciao ciao!
    duke

  6. #6
    Utente di HTML.it L'avatar di §elva
    Registrato dal
    Nov 2006
    Messaggi
    607
    questo blocco di codice
    Codice PHP:
    if (fnl == 0) {
    nextFrame();

    devi inserirlo all'interno del gestore onEnterFrame, cosi la verifica si ripete ad ogni frame..
    come avevi fatto te la verifica veniva fatta solo una volta..
    prova cosi
    Codice PHP:
    _root.onEnterFrame=function(){
    if (
    fnl == 0) {
    nextFrame();
    }

    @dukeilduca: il gioco prosegue bene ma non ho ancora dato un'occhiata al tuo

    da sempre l'ignoranza fa paura, ma il silenzio è uguale a morte

  7. #7
    hehe, grazie mille! ora funziona! lascia stare il mio gioco che tanto piano piano riesco a proseguire!

    ora pero' ho un altro problema.. ho creato un movieclip 'gun' che segue il mirino nella scena principale (è come se chi giocasse vedesse solo la propria pistola). il movieclip 'gun' è fatto da alcuni frames cosi composti:

    primo frame:
    c'è l'immagine della pistola, azioni: stop();

    secondo frame - quinto frame:
    la pistola in questa sequenza di frames si sposta leggermente per indicare l'effetto "rinculo" quando si spara.
    alla fine ho messo l'azione gotoAndStop(1);

    sesto frame - decimo frame:
    la pistola "esce dalla scena" (questo serve per il caricatore.. quando si finiscono le munizioni si dovrà schiacciare un tasto per ricaricare l'arma).
    alla fine ho messo l'azione gotoAndStop(1);

    ora ho messo il movieclip 'gun' sulla scena e gli ho "comandato" di seguire il mouse.. ed è qui che si pone il mio problema:

    quale azione dovrei mettere al movieclip per dire che quando si clicca il mouse si deve azionare il frame 2 (e quindi si vedrà il rinculo per poi tornare al punto di partenza) mentre che se si preme il tasto SPACE si deve azionare il frame 6 (sempre del movie clip 'gun') per ricaricare l'arma?

    prometto che poi per qualche giorno non domandero' piu' nulla..

  8. #8
    Utente di HTML.it L'avatar di §elva
    Registrato dal
    Nov 2006
    Messaggi
    607
    per lo space devi inserire una cosa del genere nel gestore onEnterfRAME:
    Codice PHP:
    _root.onEnterFrame=function(){
    if(
    Key.isDown(Key.SPACE)){ //se viene pigiato la barra spaziatrice
    if(_root.gun._currentframe==1){ //se la pistola.. ipotizzata con nome istanza "gun" è al frame 1.. 
    _root.gun.gotoAndStop(6); //avvia l'animazione
    }
    }

    il codice dovrebbe funzare.. l ho steso di fretta senza provarlo..
    per il sparo del mouse magari ti dico domani..
    ora son a casa di un mio amico...

    da sempre l'ignoranza fa paura, ma il silenzio è uguale a morte

  9. #9
    Utente di HTML.it L'avatar di §elva
    Registrato dal
    Nov 2006
    Messaggi
    607
    mi correggo
    Codice PHP:
    _root.onEnterFrame=function(){
      if(
    Key.isDown(Key.SPACE)){ //se viene pigiato la barra spaziatrice
       
    if(_root.gun._currentframe==1){ //se la pistola.. ipotizzata con nome istanza "gun" è al frame 1..
       
    _root.gun.gotoAndPlay(6); //avvia l'animazione
       
    }
      }

    da sempre l'ignoranza fa paura, ma il silenzio è uguale a morte

  10. #10
    Utente di HTML.it L'avatar di §elva
    Registrato dal
    Nov 2006
    Messaggi
    607
    per il clik del mouse:
    Codice PHP:
    var mouseList:Object = new Object();   //creo un oggetto listener
    Mouse.addListener(mouseList);             //lo aggiungo al mouse
    mouseList.onMouseDown = function() {  //quando notifica la pressione del tasto
        
    _root.gun.gotoAndPlay(2);          //avvia l'animazione..
    }; 
    alla prossima
    da sempre l'ignoranza fa paura, ma il silenzio è uguale a morte

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.