Report a Bug

SIGN IN!

  • Impact ForumsLatest from the Impact Forums
  • Impact IRC ChatGet help from others on IRC
Visit Forums

Impact Forums

prevent Player to move
Posted May 24, 2016, 8:27 am — by KevMcKenzie
Hi Guys,

I need to stop the Player while he attacks and the running animation must not be interrupted.

Here is my Code:

(At this moment only the Attack_up animation is set.)
Oh and other tips for the code would be nice.
I'm new at the Impact Framework and Javascript.

 
ig.module(
  'game.entities.player'
)
 
.requires(
  'impact.entity'
)
 
.defines(function() {
 
 EntityPlayer = ig.Entity.extend({
 
   size: {x: 38, y: 38},
   friction: {x: 1, y: 1},
   walk: 110,
   run: 200,
   animSheet: new ig.AnimationSheet('media/hero.png', 38, 38),
 
   init: function (x, y, settings) {
     this.parent(x, y, settings);
     ig.game.player = this;
 
     // Idle Animation
     this.addAnim('idle_up',    1,   [48]);
     this.addAnim('idle_right',  1,   [49]);
     this.addAnim('idle_down',   1,   [51]);
     this.addAnim('idle_left',   1,   [50]);
 
     // Walk Animation
     this.addAnim('walk_up',    0.1,  [12,13,14,15,16,17]    , false );
     this.addAnim('walk_right',  0.1,  [0,1,2,3,4,5]       , false );
     this.addAnim('walk_down',   0.1,  [6,7,8,9,10,11]      , false );
     this.addAnim('walk_left',   0.1,  [18,19,20,21,22,23]    , false );
 
 
     // Run Animation
     this.addAnim('run_up',    0.1,  [24,25,26,27,28,29]    , false );
     this.addAnim('run_right',   0.1,  [30,30,31,32,33,33,34,31] , false );
     this.addAnim('run_down',   0.1,  [42,42,43,44,45,45,46,47] , false );
     this.addAnim('run_left',   0.1,  [40,40,39,38,37,37,36,39] , false );
 
     // Attack Animation
     this.addAnim('attack_up',    0.1,  [54,55,56,57,48] , true );
     this.addAnim('attack_right',   0.1,  [] , true );
     this.addAnim('attack_down',   0.1,  [] , true );
     this.addAnim('attack_left',   0.1,  [] , true );
 
 
   },
 
   update: function(){
     this.parent();
 
     // Walk and Run
     // Example Documentation at Walk/Run Up
 
     // Walk/ Run left
     if(ig.input.state("left")) {
       if(ig.input.state("run")) {
         this.vel.x = -this.run;
         this.currentAnim = this.anims.run_left;
       } else {
         this.vel.x = -this.walk;
         this.currentAnim = this.anims.walk_left;
       }
     }
 
     // Walk/Run right
     if(ig.input.state("right")) {
       if(ig.input.state("run")) {
         this.vel.x = this.run;
         this.currentAnim = this.anims.run_right;
       } else {
         this.vel.x = this.walk;
         this.currentAnim = this.anims.walk_right;
       }
     }
 
     // Walk/Run up
 
     // If Key Up is pressed
     if(ig.input.state("up")) {
      // If also Key Run is pressed
       if(ig.input.state("run")) {
         // Run Up 
         this.vel.y = -this.run;
         // If Key right is also Pressed
         if(ig.input.state("right")) {
           // Animation Run right
           this.currentAnim = this.anims.run_right;
         // If Key left is also Pressed
         } else if(ig.input.state("left")) {
           // Animation run left
           this.currentAnim = this.anims.run_left;
         } else {
           // Animation Run up
           this.currentAnim = this.anims.run_up;
         }
       } else {
         // Walk Up
         this.vel.y = -this.walk;
         // If Key right is also Pressed
         if(ig.input.state("right")) {
           // Animation Walk right
           this.currentAnim = this.anims.walk_right;
         // If Key left is also Pressed
         } else if(ig.input.state("left")) {
           // Animation Walk left
           this.currentAnim = this.anims.walk_left;
         } else {
           // Animation Walk up
           this.currentAnim = this.anims.walk_up;
         }
       }
     }
 
     // Walk/Run down
     if(ig.input.state("down")) {
       if(ig.input.state("run")) {
         this.vel.y = this.run;
         if(ig.input.state("right")) {
           this.currentAnim = this.anims.run_right;
         } else if(ig.input.state("left")) {
           this.currentAnim = this.anims.run_left;
         } else {
           this.currentAnim = this.anims.run_down;
         }
       } else {
         this.vel.y = this.walk;
         if(ig.input.state("right")) {
           this.currentAnim = this.anims.walk_right;
         } else if(ig.input.state("left")) {
           this.currentAnim = this.anims.walk_left;
         } else {
           this.currentAnim = this.anims.walk_down;
         }
       }
     }
 
 
      // After Release all Keys
     if(ig.input.released("left") || ig.input.released("right") || ig.input.released("up") || ig.input.released("down")) {
       if(ig.input.released("left")) {
         this.currentAnim = this.anims.idle_left;
       } else if(ig.input.released("right")) {
         this.currentAnim = this.anims.idle_right;
       } else if(ig.input.released("down")) {
         this.currentAnim = this.anims.idle_down;
       } else if(ig.input.released("up")) {
         this.currentAnim = this.anims.idle_up;
       }
       this.accel.x = 0;
       this.accel.y = 0;
       this.vel.x = 0;
       this.vel.y = 0;
     }
 
     // Walk and Run
     // END
 
     // Attack
 
     if(ig.input.state("attack")) {
      if(this.currentAnim == this.anims.idle_up || this.currentAnim == this.anims.walk_up || this.currentAnim == this.anims.run_up) {
       // Attack up
        this.currentAnim = this.anims.attack_up.rewind();
      }
      if(this.currentAnim == this.anims.idle_right || this.currentAnim == this.anims.walk_right || this.currentAnim == this.anims.run_right) {
       // Attack right
      }
      if(this.currentAnim == this.anims.idle_left || this.currentAnim == this.anims.walk_left || this.currentAnim == this.anims.run_left) {
       // Attack left
      }
      if(this.currentAnim == this.anims.idle_down || this.currentAnim == this.anims.walk_down || this.currentAnim == this.anims.run_down) {
       // Attack down
      }
     }
 
    // Attack
    // END
 
   }
 
 });
})
 

Hope you can Help me out.
And sorry for my bad English.

Older Posts

Ready to get to the point?

Your Email will remain private and is only used for good. We promise!


Please use only letters, numbers or underscores.

SIGN UP!