Impact

This forum is read only and just serves as an archive. If you have any questions, please post them on github.com/phoboslab/impact

9 years ago 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.

9 years ago by Joncom

I need to stop the Player while he attacks
So then perhaps set vel.x and vel.y equal to 0 when he attacks.
Page 1 of 1
« first « previous next › last »