1 decade ago by jch02140
I have managed to get the game running and control functioning without problem... However, for some reason when the character moves, it still plays the "idle" animation...
Not sure where is the problem...
The sample can be accessed here
main.js
player.js
Not sure where is the problem...
The sample can be accessed here
main.js
ig.module( 'game.main' ) .requires( 'impact.game', 'impact.font', 'game.entities.player', 'game.levels.test' ) .defines(function(){ MyGame = ig.Game.extend({ gravity: 100, // Load a font font: new ig.Font( 'media/04b03.font.png' ), init: function() { // Bind keys ig.input.bind( ig.KEY.LEFT_ARROW, 'left' ); ig.input.bind( ig.KEY.RIGHT_ARROW, 'right' ); ig.input.bind( ig.KEY.X, 'jump' ); // Load Level this.loadLevel(LevelTest); }, update: function() { // Update all entities and backgroundMaps this.parent(); // Add your own, additional update code here }, draw: function() { // Draw all entities and backgroundMaps this.parent(); // Add your own drawing code here var x = ig.system.width/2, y = ig.system.height/2; this.font.draw( 'It Works!', x, y, ig.Font.ALIGN.CENTER ); } }); // Start the Game with 60fps, a resolution of 320x240, scaled // up by a factor of 2 ig.main( '#canvas', MyGame, 60, 320, 240, 2 ); });
player.js
ig.module( 'game.entities.player' ) .requires( 'impact.entity' ) .defines(function(){ EntityPlayer = ig.Entity.extend({ size: {x: 40, y: 88}, offset: {x: 17, y: 10}, maxVel: {x: 100, y: 150}, friction: {x: 600, y: 0}, flip: false, animSheet: new ig.AnimationSheet( 'media/player.png', 75, 100 ), accelGround: 1200, accelAir: 600, jump: 300, init: function( x, y, settings ) { this.parent( x, y, settings ); // Add the animations this.addAnim( 'idle', 1, [15,15,15,15,15,14] ); this.addAnim( 'run', 0.07, [4,5,11,0,1,2,7,8,9,3] ); this.addAnim( 'jump', 1, [13] ); this.addAnim( 'fall', 0.4, [13,12], true ); // stop at the last frame //this.addAnim( 'pain', 0.3, [6], true ); ig.game.player = this; }, update: function(){ // Handle user input; move left or right var accel = this.standing ? this.accelGround : this.accelAir; if( ig.input.state('left') ) { this.accel.x = -accel; this.flip = true; } else if( ig.input.state('right') ) { this.accel.x = accel; this.flip = false; } else { this.accel.x = 0; } // jump if( this.standing && ig.input.pressed('jump') ) { this.vel.y = -this.jump; //this.sfxJump.play(); } this.currentAnim.flip.x = this.flip; this.parent(); } }); });