Problème de programmation Jeu de Tir As3

Problème de programmation Jeu de Tir As3 - Flash/ActionScript - Programmation

Marsh Posté le 30-11-2012 à 21:14:04    

Bonjour à tous,
 
Dans le cadre de mon projet de diplôme je dois réaliser un jeu en flash. Le jeu en question et un jeu de type "Shoot them up" avec des aliens qui tombent. j'ai presque fini mais je suis confronté à trois problèmes que je n'arrive pas à gérer seul. En effet je souhaiterais faire tomber des vies de façon aléatoire lorsque mon nombre de vie est égale à 3/5 , puis faire tomber "des ralentisseurs" après avoir dépassé les 20 pts(les aliens augmentant de vitesse de chute tout les 10 pts). Enfin mon plus gros problème à l'heure actuel est lorsque je crée un bouton "try again" je n'arrive pas à cliquer dessus, j'ai réussi à faire réapparaitre le curseur de la souris à la place de la cible mais rien ne fonctionne...
 
Bref, j'espere que quelqu'un saura m'aider, merci. ;)  
 
Voici le code:
 
package  
{
 import flash.display.MovieClip;
 import flash.events.MouseEvent;
 import flash.events.Event;
 import flash.ui.Mouse;
 import flash.utils.*;
 import flash.media.*;
 import flash.net.URLRequest;
 
 public class Main extends MovieClip
 {
  var alien:Alien = new Alien();
  var randomX:Number;
         var points:int;  
  var vitesse:int = 3;
  var _vitesse = vitesse;  
  var erreur:int = 5;
  var maxErreur:int = erreur;  
  var activTir:Boolean = true;
  var sound:sonFond_intro = new sonFond_intro();
  var channel:SoundChannel;
  var sound2:sonTir = new sonTir();
  var channel2:SoundChannel;
   
 
  public function Main()
  {
   btn_start.addEventListener(MouseEvent.MOUSE_DOWN,startGame);
   btn_start.addEventListener('mouseOver',function(me:MouseEvent){me.target.gotoAndPlay('over')});
   btn_start.addEventListener('mouseOut',function(me:MouseEvent){me.target.gotoAndPlay('out')});
   channel = sound.play();
   }
  function startGame(event:MouseEvent):void
  {
   channel.stop();
   gotoAndPlay(2);
   alien.x= (stage.stageWidth - alien.width) /2;
   err_txt.text = erreur + '/' + maxErreur;
   addChild(alien);
   Mouse.hide();
   alien.addEventListener(Event.ENTER_FRAME, aniAlien);
   stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseCible );
   var mySound:Sound = new sonFond();
   mySound.play(0,999);
   
   
  }
  function alea(min:Number, max:Number):Number
 
  {
   var aleaNum:Number =Math.floor(Math.random()*(max-min +1)) +min;
   return aleaNum;
   
  }
  function aniAlien(e:Event):void
   
  {
   setChildIndex(cible,this.numChildren -1);
   randomX= alea (alien.width/2, stage.stageWidth - (alien.width/2));
   niveau(points);
   alien.y +=  vitesse;
       
   if (alien.y > stage.stageHeight)
   {
    perdu.gotoAndPlay('loose');
    erreur--;
    removeChild(alien);
    addChild(alien);
    alien.x = randomX;
    alien.y =  -  alien.height;
    err_txt.text = erreur + '/' + maxErreur;
   
   }
   stage.addEventListener(MouseEvent.CLICK, tirer);
  }
  function mouseCible(me:MouseEvent):void
  {
   cible.x = mouseX;
   cible.y = mouseY;
   
  }
  function tirer(me:MouseEvent):void
  {
   if (activTir)
   {
    channel2 = sound2.play();
    if (cible.hitTestObject(alien))
    {
     var mySound3:Sound = new sonAlien();
     mySound3.play();
     activTir = false;
     points++;
     points_txt.text = points.toString();
     vitesse = 0;
     alien.gotoAndPlay('explosion');
     setTimeout(function(){alien.x =randomX; alien.y=0; vitesse=_vitesse; activTir=true},900);
     
    }
   }
  }
  function niveau($points):void
  {
   var p = int($points);
   if (p>9)
   {
    _vitesse = 5;
   }
   if (p>19)
   {
    _vitesse = 6;
   }
   if (p>29)
   {
    _vitesse = 7;
   }
   if (p>39)
   {
    _vitesse = 8;
   }
   if (p>49)
   {
    _vitesse = 9;
   }
   if (p>59)
   {
    _vitesse = 10;
   }
   if (p>69)
   {
    _vitesse = 12;
   }
   if (p>79)
   {
    _vitesse = 14;
   }
 
 
   if (erreur==0)
   {
    channel2.stop();
    perdu.gotoAndPlay('gameOver');
    alien.removeEventListener(Event.ENTER_FRAME, aniAlien);
    removeChild(alien);
    Mouse.show();
    removeChild (cible) ;  
     
   }
  }
 }
 
}

Reply

Marsh Posté le 30-11-2012 à 21:14:04   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed