thj7/objects/obj_youmu/Step_0.gml

122 lines
2.6 KiB
Plaintext
Raw Permalink Normal View History

if ( state == STATE_NEUTRAL || state == STATE_FORWARD || state == STATE_BACKSTEP ||
(state == STATE_JUMP && jumptime > 0) || (doublejump == false && jumptime == 0) ) {
var _jump = scr_input_get( INPUT_UP );
if ( _jump ) {
jumptime += 1;
if ( jumptime < JUMP_TIME_MAX ) {
state = STATE_JUMP;
vspeed = JUMP_SPEED;
vspeed -= (0.1 * jumptime);
}
}
if ( prevjump && !_jump ) {
jumptime = 0;
doublejump = !doublejump;
}
prevjump = _jump;
}
if ( state == STATE_JUMP ) {
var _fastfall = scr_input_get( INPUT_DOWN );
if ( _fastfall ) {
state = STATE_FALL;
vspeed = -JUMP_SPEED;
}
}
if ( state == STATE_NEUTRAL || state == STATE_CROUCH ) {
var _crouch = scr_input_get( INPUT_DOWN );
if ( _crouch ) {
state = STATE_CROUCH;
}
if (prevcrouch && !_crouch ) {
state = STATE_NEUTRAL;
}
prevcrouch = _crouch;
}
if ( state != STATE_CROUCH && state != STATE_BACKSTEP ) {
var _forwardleft = scr_input_get( INPUT_LEFT );
var _forwardright = scr_input_get( INPUT_RIGHT );
var _prevstate = state;
if ( _forwardleft == _forwardright ) {
_forwardleft = false;
_forwardright = false;
hspeed = 0;
}
if ( _forwardleft ) {
facedir = LEFT;
hspeed = facedir * WALK_SPEED;
state = STATE_FORWARD;
}
if ( _forwardright ) {
facedir = RIGHT;
hspeed = facedir * WALK_SPEED;
state = STATE_FORWARD;
}
2021-11-28 00:21:18 -08:00
if ( x < BOUNDARY_LEFT ) {
x = BOUNDARY_LEFT;
hspeed = 0;
}
if (x > BOUNDARY_RIGHT ) {
x = BOUNDARY_RIGHT;
hspeed = 0;
}
if ( _prevstate == STATE_FALL || _prevstate == STATE_JUMP ) {
state = _prevstate;
} else {
2021-11-28 00:21:18 -08:00
y = BOUNDARY_BOTTOM;
if (hspeed == 0) {
state = STATE_NEUTRAL;
}
}
}
2021-11-28 00:21:18 -08:00
canshoot -= 1;
if ( canshoot <= 0 ) {
var _shoot = scr_input_get( INPUT_SHOT_LEFT );
if ( _shoot ) {
if ( obj_mystia.phase == PHASE_ACTIVE ) {
audio_play_sound( snd_pew, -1, false );
var _shot = instance_create_layer( x, y - 30, "objects", obj_shot );
with ( _shot ) {
speed = 15;
direction = 90 + ( 90 * -other.facedir );
image_angle = direction;
}
canshoot = 4;
}
else {
if ( obj_mystia.phase == PHASE_WHEN ) {
audio_play_sound( snd_pew, -1, false );
var _shot = instance_create_layer( x, y - 30, "objects", obj_shot_toomuch );
with ( _shot ) {
speed = 15;
direction = 90 + ( 90 * -other.facedir );
image_angle = direction;
}
canshoot = 4;
}
}
}
}
if ( y < BOUNDARY_BOTTOM ) {
vspeed += GRAVITY;
}
if ( y >= BOUNDARY_BOTTOM && (state == STATE_FALL || state == STATE_NEUTRAL) ) {
y = BOUNDARY_BOTTOM;
vspeed = 0;
state = STATE_NEUTRAL;
doublejump = true;
jumptime = 0;
}
if ( vspeed > 0 ) {
state = STATE_FALL;
}
2021-11-28 00:21:18 -08:00