Move to a state machine

This commit is contained in:
2014-06-14 12:10:24 -07:00
parent de58d5d1f3
commit 95b909b2c4

View File

@@ -663,7 +663,7 @@ var AISprite = function(game, x, y, key, frame) {
newstate = newstate | (STATE_FACE_DOWN | STATE_MOVING); newstate = newstate | (STATE_FACE_DOWN | STATE_MOVING);
} }
} }
exchangeState(this, (STATES_FACE | STATES_MOVEMENT), newstate); setMovingState(this, newstate);
setSpriteMovement(this); setSpriteMovement(this);
} }
@@ -683,7 +683,7 @@ var AISprite = function(game, x, y, key, frame) {
addAnimation(this, 'bipedrunright'); addAnimation(this, 'bipedrunright');
addAnimation(this, 'bipedrunup'); addAnimation(this, 'bipedrunup');
addAnimation(this, 'bipedrundown'); addAnimation(this, 'bipedrundown');
exchangeState(this, (STATES_FACE | STATES_MOVEMENT), STATE_FACE_DOWN); setMovingState(this, STATE_FACE_DOWN);
setSpriteMovement(this); setSpriteMovement(this);
} }
@@ -862,6 +862,7 @@ GameState.prototype.updateShadowTexture = function() {
function delState(spr, state) function delState(spr, state)
{ {
if ( hasState(spr, state) )
spr.state = spr.state ^ state; spr.state = spr.state ^ state;
} }
@@ -870,6 +871,17 @@ function addState(spr, state)
spr.state = spr.state | state; spr.state = spr.state | state;
} }
function setMovingState(spr, state)
{
delState(spr, STATE_FACE_LEFT);
delState(spr, STATE_FACE_RIGHT);
delStatr(spr, STATE_FACE_DOWN);
delState(spr, STATE_FACE_UP);
delState(spr, STATE_MOVING);
delState(spr, STATE_RUNNING);
setState(spr, state);
}
function exchangeState(spr, state1, state2) function exchangeState(spr, state1, state2)
{ {
delState(spr, state1); delState(spr, state1);
@@ -968,7 +980,7 @@ GameState.prototype.check_input = function()
newstate = STATE_NONE; newstate = STATE_NONE;
} }
exchangeState(player, (STATES_FACE | STATES_MOVEMENT), newstate); setMovingState(player, newstate);
setSpriteMovement(player); setSpriteMovement(player);
} }