J
justloveme94
Guest
Hello everyone, I apologize for my newness but I have been banging my head against a wall trying to solve this problem. I have been following Friendly Cosmonaut's tutorial series. i decided to change up the code that was provided for the NPCs for the rest of my other sprites to walk around randomly. I thought I made the necessary changes, but my sprites will walk around randomly and then disappear and then reappear at a different location. I presume the problem lies with the draw event but I'm not sure.
CREATE Event
w_spd = 1;
n_spd = 2;
r_spd = 3;
spd = w_spd;
x_frame = 0;
y_frame = 1;
x_offset = sprite_get_xoffset(mask_index);
y_offset = sprite_get_yoffset(mask_index);
spr_chicken = spr_chicken_walk;
//c_shadow = spr_chicken_shadow;
moveX = 0;
moveY = 0;
can_move = true;
alarm[1] = 1;
DRAW Event
var c_anim_length = 4;
var c_frame_size = 32;
var c_anim_speed = 6;
var xx = x-x_offset;
var yy = y-y_offset;
// INCREMENT FRAME FOR ANIMATION
if(x_frame + (c_anim_speed/60) < c_anim_length -1) { x_frame += c_anim_speed/60; }
else { x_frame = 1; }
if (moveX < 0) y_frame = 1; //left
else if (moveX > 0) y_frame = 3; //right
else if (moveY < 0) y_frame = 4; //up
else if (moveY > 0) y_frame = 2; //down
else x_frame = 0;
//DRAW CHICKEN
if(spr_chicken != -1) draw_sprite_part(spr_chicken, 0, floor(x_frame)*c_frame_size, y_frame*c_frame_size, c_frame_size, c_frame_size, xx,yy);
ALARM
moveX = 0;
moveY = 0;
if(can_move){
var idle = choose(0,1);
if(idle == false) {
var dir = choose(1,2,3,4);
switch(dir) {
case 1: moveX = -spd; break;
case 2: moveX = spd; break;
case 3: moveY = -spd; break;
case 4: moveY = spd; break;
}
}
}
alarm[1] = random_range(2.5, 4)*room_speed;
CREATE Event
w_spd = 1;
n_spd = 2;
r_spd = 3;
spd = w_spd;
x_frame = 0;
y_frame = 1;
x_offset = sprite_get_xoffset(mask_index);
y_offset = sprite_get_yoffset(mask_index);
spr_chicken = spr_chicken_walk;
//c_shadow = spr_chicken_shadow;
moveX = 0;
moveY = 0;
can_move = true;
alarm[1] = 1;
DRAW Event
var c_anim_length = 4;
var c_frame_size = 32;
var c_anim_speed = 6;
var xx = x-x_offset;
var yy = y-y_offset;
// INCREMENT FRAME FOR ANIMATION
if(x_frame + (c_anim_speed/60) < c_anim_length -1) { x_frame += c_anim_speed/60; }
else { x_frame = 1; }
if (moveX < 0) y_frame = 1; //left
else if (moveX > 0) y_frame = 3; //right
else if (moveY < 0) y_frame = 4; //up
else if (moveY > 0) y_frame = 2; //down
else x_frame = 0;
//DRAW CHICKEN
if(spr_chicken != -1) draw_sprite_part(spr_chicken, 0, floor(x_frame)*c_frame_size, y_frame*c_frame_size, c_frame_size, c_frame_size, xx,yy);
ALARM
moveX = 0;
moveY = 0;
if(can_move){
var idle = choose(0,1);
if(idle == false) {
var dir = choose(1,2,3,4);
switch(dir) {
case 1: moveX = -spd; break;
case 2: moveX = spd; break;
case 3: moveY = -spd; break;
case 4: moveY = spd; break;
}
}
}
alarm[1] = random_range(2.5, 4)*room_speed;