Obstacle n'ai pas traversé par un objet en ActionScript 3 ??

Fermé
JonyBernard Messages postés 1 Date d'inscription vendredi 16 septembre 2016 Statut Membre Dernière intervention 16 septembre 2016 - Modifié par jordane45 le 16/09/2016 à 23:13
Salut j'ai un problème dans un code AS3 , dans le scène j'avait un objet et un obstacle mais je ne sais pas comment rendre cette obstacle traversé par l'objet! Voici le code et merci de m'aider! :)
Main.as :
package
{
  import flash.display.Shape;
  import flash.display.Sprite;
  import flash.events.Event;
  import flash.events.KeyboardEvent;

  public class Main extends Sprite 
  {
    private var right:Boolean = (false);
    private var left:Boolean = (false);
    private var up:Boolean = (false);
    private var down:Boolean = (false);
    private var recTanglee:Rectangle = new Rectangle();
    private var objett: Player = new Player();
    public function Main() 
    {

        objett.x = 400;
        objett.y = 300;
        addChild(objett);
        recTanglee.x = 600;
        recTanglee.y = 100;
        addChild(recTanglee);
        stage.addEventListener(Event.ENTER_FRAME, direction);
        stage.addEventListener(KeyboardEvent.KEY_DOWN, kDown);
        stage.addEventListener(KeyboardEvent.KEY_UP, kUp);

    }

    public function direction(e:Event):void
    {

        if (left)
            objett.x -= 10;
        if (right)
            objett.x += 10;
        if (up)
            objett.y -= 10; 
        if (down)
            objett.y += 10;
            objett.wall();

    }

    private function kDown(e:KeyboardEvent):void
    {
        if (e.keyCode == 68)
        {
            right = true;
        }
        if (e.keyCode == 81)
        {
            left = true;
        }
        if (e.keyCode == 90)
        {
            up = true;
        }
        if (e.keyCode == 83)
        {
            down = true;
        }

    }
    
   private function kUp(e:KeyboardEvent):void
  {
    if (e.keyCode == 68)
    {
         right = false;
    }
    else if (e.keyCode == 81)
    {
        left = false;
    }
    else if (e.keyCode == 90)
    {
        up = false;
    }
    if (e.keyCode == 83)
    {
        down = false;
    }


  }



  }

 }


Player.as:
package 
{
  import flash.display.MovieClip;

  public class Player extends MovieClip 
  {
    public var floor:int = 450;
    public function Player() 
   {
     this.graphics.beginFill(0xDB97DD);
     this.graphics.drawRect(this.x - 20, this.y - 20, 40, 40);
     this.graphics.endFill();
   }
  public function wall():void
  {
    if (this.x - this.width / 2 < 0)
      this.x = this.width/2;
    if (this.x + this.width / 2 > 800)
      this.x = 800 - this.width / 2;
    }
  }
}


Rectangle.as:
package 
{
import flash.display.MovieClip;

public class Rectangle extends MovieClip 
{

  public function Rectangle() 
  {
    this.graphics.beginFill(0x000000);
    this.graphics.drawRect(this.x, this.y, 50, 400);
    this.graphics.endFill();
  }
 }
}




EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.
A voir également: