• User

    Cambiare lo stage (scena) in flash

    Sono di nuovo io, questo è il listato del codice con il quale muovo una jeep (ship) con fari annessi, spara proiettili(il codice è in un altro fotogramma), quando colpisce una "buca" appare del fumo sul coffano etc. etc. Giorni fa' ho chiesto un consiglio su come cambiare scena, in un batibaleno mi è stata data la risposta che considero corretta( quella contrassegnata dall'icona) ma nonostante mille variazioni, la jeep se ne va tranquillamente olte lo stage senza cambiare niente. potete aiutarmi??
    spero di ricevere una risposta altrettanto veloce come la volta scorsa.

    onClipEvent(load) {
    //_root.startLevel();
    for(i=0;i<5;i++){
    // DUPLICA LE BUCHE
    _root.buca.duplicateMovieClip("buca"+i,i);
    // GLI DA' UNA POSIZIONE CASUALE
    _root["buca"+i]._x = int(Math.random()*550);
    _root["buca"+i]._y = int(Math.random()*400);

    // DICHIARA LE VARIABILI
    thrust = 3; //SLITTAMENTO LATERALE
    decay = .12;
    maxSpeed = 6;
    

    }
    }

    onClipEvent (enterFrame) {

    //SENZA QUESTA STRINGA I PROIETTILI RIMANGONO FERMI IMPORTANTISSIMO!!
    _root.bulletsMove();
    // CONTROLLA LE COLLISIONI
    _root.checkHits();
    //COLLISIONI TRA MOONBUGGY E LE FOSSE
    
    //CREA UN "CICLO"
    for(i=1;i<25;i++)
    //controlla se la jeep colpisce la buca 
    if (_root["buca"+i].hitTest(_root["ship"])) {
    
    //AZIONE QUANDO C'E LA COLLISIONE
    _root.ship.gotoAndPlay("fumo2"); 
    

    }

    :mmm: for(i=0;i<25;i++)
    :mmm: if (_root["ship"._x] <= 0); { gotoAndStop(Scena2);
    }
    //DICE: CON QUESTO CLIP(SHIP) COLLEGA IL CLIP FAR E FALLO MUOVERE INSIEME
    with (_root.fari) {
    _x = this._x+3;
    _y = this._y+3;
    _rotation = this._rotation+90;
    }

    // rotate right or left
    if (Key.isDown(Key.RIGHT)) {
    	_rotation += 10;
    	
    }
    if (Key.isDown(Key.LEFT)) {
    	_rotation -= 10;
    	
    }
    
    if (Key.isDown(Key.UP)) {
    	// calculate speed and trajectory based on rotation
    	xSpeed += thrust*Math.sin(_rotation*(Math.PI/180));
    	ySpeed += thrust*Math.cos(_rotation*(Math.PI/180));
    	
    } 
    
    
    ////SENZA DI QUESTE STRINGHE IL MOONBUGGY SI MUOVE E NON SI FERMA PIU'
    else {
    	xSpeed *= decay;
    	ySpeed *= decay;
    

    }

    // MANTIENE LA STESSA VELOCITA' ALTRIMENTI SCHIZZA VIA 
    speed = Math.sqrt((xSpeed*xSpeed)+(ySpeed*ySpeed));
    if (speed>maxSpeed) {
    	xSpeed *= maxSpeed/speed;
    	ySpeed *= maxSpeed/speed;
    }
    // muove il moonbuggy nella direzione scelta
    _y -= ySpeed;
    _x += xSpeed;
    

    }


  • Super User
    if &#40;_root&#91;"ship"._x&#93; <= 0&#41;; &#123; gotoAndStop&#40;Scena2&#41;; 
    

    cambialo in

    if &#40;_root.ship._x <= 0&#41;; &#123; _root.gotoAndStop&#40;"Scena2"&#41;; 
    

    Il ciclo for che io sappia non si usa così

     for&#40;i=1;i<25;i++&#41;
    

    ma così

     for&#40;i=1;i<25;i++&#41; &#123;
      // i assume il valore da 1 a 24 sequenzialmente
    &#125;
    
    

    C'era un bel libro in libreria per creare giochini con flash, se sei appassionato te lo consiglio.

    Ciao


  • User

    Speriamo che ora funzioni. Il libro che dici forse è "Programmare Flash 5 con Action Script" di Gary Rosenzweig. Molto bello pratico e con tantissimo codice. L'ho acquistato l'anno scorso.


  • Super User

    Uno su flash mx actionscript ce l'ho anch'io ma non mi era piaciuto... poi ho preso uno su mx aggiornamento ed era fatto veramente bene.

    Ne avevo visto uno specifico "actionscript x giochi" o qualcosa del genere, ma ne è passato di tempo.