Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Sparo

  1. #1

    Sparo

    buongiorno a tutti

    sto impazzendo da ieri sera.
    è da molto poco che mi sono addentrato nella programmazione e ho cominciato con actionscript.

    ora

    Sto provando a realizzare un giochino stupido

    ho una navicella che spara premendo la barra...

    Quando sparo la sconda volta scompare il primo proiettile e compare il secondo.
    invece vorrei che il secondo si accodasse

    ecco il codice sul clip "colpi" che sarebbe il proiettile
    //astro è l'astronave

    onClipEvent (enterFrame) {
    if (Key.isDown(Key.SPACE)) {
    count++;
    this.duplicateMovieClip("colpi"+count, 1);
    _root["colpi"+count]._y = _root.astro._y;
    _root["colpi"+count]._x = _root.astro._x;
    onEnterFrame = function (){
    _root["colpi"+count]._x= _root["colpi"+count]._x+20;
    if(_root["colpi"+count].hitTest(_root.aster)){
    removeMovieClip(_root.aster);
    removeMovieClip(_root["colpi"+count]);
    _root.punti=_root.punti+100;
    onEnterFrame = null;
    }
    if (_root["colpi"+count]._x > 850){
    removeMovieClip(_root["colpi"+count])
    onEnterFrame = null;
    }
    }
    }
    }

    qualcuno sa darmi qualche consiglio??

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    in questa riga: this.duplicateMovieClip("colpi"+count, 1); usi solo l'indice 1 che quindi viene sovrascritto ogni volta che viene richiamato il codice, dovrebbe esserci count al posto di 1

  3. #3
    Grazie mille, ho cmq risolto in altro modo.
    Posto il codice nel caso in cui potesse essere utile a qualcuno

    \\"astro" è la navicella spaziale
    \\"colpi" è il proiettile

    this.onEnterFrame = function() {
    if (Key.isDown(Key.UP) && astro._y>=80) {
    astro._y -= 10;
    }
    if (Key.isDown(Key.DOWN) && astro._y<=610) {
    astro._y += 10;
    }
    if (Key.isDown(Key.SPACE)) {
    i++;
    _root.attachMovie("colpi","colpi"+i,_root.getNextH ighestDepth());
    _root["colpi"+i]._x = astro._x+50;
    _root["colpi"+i]._y = astro._y+7;
    }
    }

    \\all'interno del mc "colpi":

    this.onEnterFrame = function() {
    this._x += 50;
    if (this._x>850) {
    this.removeMovieClip();
    }
    }

    sono impazzito perchè non sapevo che per farlo funzionare dovessi aprire le proprietà del mc "colpi" e spuntare la voce "Export to Actionscript"

    Per caso mi sai dire cosa fa esattamente questa opzione?

  4. #4
    Altro problemino...
    Ora lo sparo funziona, ma se tengo premuto spara a raffica....
    Esiste un modo analogo per sparare al rilascio del tasto invece che alla pressione?

    il mio codice:

    this.onEnterFrame = function() {
    if (Key.isDown(Key.SPACE)) {
    i++;
    _root.attachMovie("colpi","colpi"+i,_root.getNextH ighestDepth());
    _root["colpi"+i]._x = astro._x;
    _root["colpi"+i]._y = astro._y;
    }
    }

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    306
    io giocherei con le variabili...

    sparo = false //all'inizio non sta sparando
    this.onEnterFrame = function() {
    if (Key.isDown(Key.SPACE)) {
    if(sparo == false){//se prima non stava sparando, fallo
    i++;
    _root.attachMovie("colpi","colpi"+i,_root.getNextH ighestDepth());
    _root["colpi"+i]._x = astro._x;
    _root["colpi"+i]._y = astro._y;
    sparo = true //impedisci che spari in continuazione
    }

    }else{//se il tasto non è premuto, di sicuro non sta sparando
    sparo = false
    }

    }

    non l'ho provato, ma dovrebbe funzionare...
    buonuomo.tomma@tiscali.it

  6. #6
    Grazie mille!
    sei stato illuminante

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.