Skip to main content
Inspiring
March 6, 2012
Question

Moving On hit Test??

  • March 6, 2012
  • 1 reply
  • 498 views

I have this script and it all works  but i want the enemy to jump back on hit test of the player.

This is my enemy script:

EnemysInScene = new Array();

tag=0;

SpawnEnemy = function ()

{

          //INITIALISE VARS

 

 

                    attachedObj = _root.attachMovie("Enemy", "EnemyStick"+tag, tag, {_x:600, _y:287});

 

 

                    attachedObj.health = 100;

                    attachedObj.speed=5;

                    attachedObj.hit=false;

                    attachedObj.alive = true;

                    attachedObj.gotoFunction = AIZombie;

                                

                    EnemysInScene.push(attachedObj);

 

 

                    //MonstersInScene

                    tag++;

 

}

function AIZombie()

{

          if(this.alive)

          {

                    this.gotoAndStop("walk");

                    //YOUR FIRST AI

 

                    if(Player._x<=this._x-40)

                    {

                              this._xscale = 100;

                              this._x-=this.speed;

                    }

                    else if(Player._x>=this._x+40)

                    {

                              this._x+=this.speed;

                              this._xscale = -100;

                    }

 

 

                    //We have to add a small offset of + and - 20 to stop the zombie

                    //from 'flickering' when he's close.  Remove the numbers and you'll see what I mean

 

 

 

          }

          else

          {

 

                    this.gotoAndStop("dead");

                    //Activates the dying animation, which automatically removes this movie clip/sprite

                    //when it reaches the final frame

          }

}

function RenderEnemy()

{

 

          for (counter=0;counter<EnemysInScene.length;counter++)

          {

                              EnemysInScene[counter].gotoFunction();

 

                              if(Attack == true)

                              {

                                        if(_root.Player.hitTest(EnemysInScene[counter]))

                                                  EnemysInScene[counter].health -= 10;

EnemysInScene = new Array();

tag=0;

SpawnEnemy = function ()

{

          //INITIALISE VARS

 

 

                    attachedObj = _root.attachMovie("Enemy", "EnemyStick"+tag, tag, {_x:600, _y:287});

 

 

                    attachedObj.health = 100;

                    attachedObj.speed=5;

                    attachedObj.hit=false;

                    attachedObj.alive = true;

                    attachedObj.gotoFunction = AIZombie;

                                

                    EnemysInScene.push(attachedObj);

 

 

                    //MonstersInScene

                    tag++;

 

}

function AIZombie()

{

          if(this.alive)

          {

                    this.gotoAndStop("walk");

                    //YOUR FIRST AI

 

                    if(Player._x<=this._x-40)

                    {

                              this._xscale = 100;

                              this._x-=this.speed;

                    }

                    else if(Player._x>=this._x+40)

                    {

                              this._x+=this.speed;

                              this._xscale = -100;

                    }

 

 

                    //We have to add a small offset of + and - 20 to stop the zombie

                    //from 'flickering' when he's close.  Remove the numbers and you'll see what I mean

 

 

 

          }

          else

          {

 

                    this.gotoAndStop("dead");

                    //Activates the dying animation, which automatically removes this movie clip/sprite

                    //when it reaches the final frame

          }

}

function RenderEnemy()

{

 

          for (counter=0;counter<EnemysInScene.length;counter++)

          {

                              EnemysInScene[counter].gotoFunction();

 

                              if(Attack == true)

                              {

                                        if(_root.Player.hitTest(EnemysInScene[counter]))

                                                  EnemysInScene[counter].health -= 100;

//I put this line in but the enemy just moves back I want it to move back like he has been hit and he jumps back then proceds foward again

if(Player._x<=this._x-40)

                    {

EnemysInScene[counter]._x-=2;

                    }

                    else if(Player._x>=this._x+40)

                    {

EnemysInScene[counter]._x+=10;

                    }

                              }

 

                              if(EnemysInScene[counter]._x==null)

                              {

                                        EnemysInScene.splice(counter,1);

                                        SpawnEnemy();

                                                      

                              }

                              if(EnemysInScene[counter].health <= 0){

                                        EnemysInScene[counter].alive = false;

                    }

          }

};

////////////// MAIN PROGRAM CALLS

SpawnEnemy();

Initialize();

onEnterFrame = function()

{

          RenderEnemy();

}

                              }

 

                              if(EnemysInScene[counter]._x==null)

                              {

                                        EnemysInScene.splice(counter,1);

                                        SpawnEnemy();

                                                      

                              }

                              if(EnemysInScene[counter].health <= 0){

                                        EnemysInScene[counter].alive = false;

                    }

          }

};

////////////// MAIN PROGRAM CALLS

SpawnEnemy();

Initialize();

onEnterFrame = function()

{

          RenderEnemy();

}

So Bacicly everything is working but not the way i want it and im not sure how to make it work the way I want it

This topic has been closed for replies.

1 reply

kglad
Community Expert
Community Expert
March 6, 2012

start by removing all code from objects so your code is easier to follow, debug and maintain.

Inspiring
March 6, 2012

ok I will Do that Now