Hola les comento mi problema,estoy en plena creación de mi primer juego,un top down shooter basado en supervivencia de oleadas zombis,el asunto es que para mi juego pretendo tener 4 personajes con un arma diferente cada uno,por ejemplo,jugador con ak 47,jugador con spas 12,jugadora con smg y jugador con rifle de sniper,hasta ahora creé 2,el de la ak y el de la spas,creé un objeto parent y funciona muy bien para lo que es el movimiento y la colisión pero a la hora de disparar,el personaje de la ak lo hace perfecto pero el de la spas dispara exactamente igual que el otro,no como debe disparar una escopeta,en qué estoy fallando? Les paso los códigos del objeto parent y de los 2 personajes,desde ya muchas gracias.
OBJETO PARENT
CREATE EVENT
hp_max=100;
hp=hp_max;
max_ammo=9999999;
ammo=max_ammo;
image_speed=0;
image_index=0;
setspeed=0.5;
walkingspeed=5;
STEP EVENT
image_angle=direction;
direction=point_direction(x,y,mouse_x,mouse_y);
if keyboard_check(ord("A")){speed=-walkingspeed}
if keyboard_check(ord("D")){speed=walkingspeed}
if keyboard_check(ord("S")){speed=-walkingspeed}
if keyboard_check(ord("W")){speed=walkingspeed}
friction=0.5;
if(speed>0 or speed<0){image_speed=setspeed;}
else{image_speed=0;image_index=0;}
firing+=1;
COLLISION EVENT W/ZOMBIE
obj_redscreen.red_screen_alpha=0.6;
health-=1;
if (health=0)
{
instance_destroy();
game_restart();
health=100;
}
COLLISION W/TREE
var a,xoff,yoff;
a=point_direction(x,y,other.x,other.y)
xoff=lengthdir_x(0.5,a);
yoff=lengthdir_y(0.5,a);
while(place_meeting(x,y,other))
{
x-=xoff;
y-=yoff;
}
OBJETO PLAYER_AK
CREATE EVENT
rate=7;
firing=0.15;
bspeed=71;
damage=50;
d&d/CALL EVENT
STEP EVENT
call event
COLLISION W/ZOMBIE
call event
COLLISION W/TREE
call event
GLOBAL LEFT BUTTON
if(ammo > 0 && firing > rate)
{
firing=0;
ammo-=1;
b=instance_create(x+lengthdir_x(16,image_angle),y+lengthdir_y(16,image_angle),obj_bullet);
b.speed=bspeed;
b.direction=image_angle;
b.image_angle=image_angle;
b.damage=damage;
sound_play(snd_ak);
}
OBJETO PLAYER_SPAS
CREATE EVENT
rate=10;
firing=1;
bspeed=47;
damage=100;
d&d/call event
STEP EVENT
call event
COLLISION W/ZOMBIE
call event
COLLISION W/TREE
call event
GLOBAL LEFT BUTTON
if(ammo > 0 && firing > rate)
{
firing=0;
ammo-=1;
b=instance_create(x+lengthdir_x(16,image_angle)+lengthdir_x(8,image_angle-90),y+lengthdir_y(16,image_angle)+lengthdir_y(8,image_angle-90),obj_pellet);
b.speed=bspeed;
b.direction=image_angle;
b.image_angle=image_angle;
b.damage=damage;
sound_play(snd_spas);
}
OBJETO PARENT
CREATE EVENT
hp_max=100;
hp=hp_max;
max_ammo=9999999;
ammo=max_ammo;
image_speed=0;
image_index=0;
setspeed=0.5;
walkingspeed=5;
STEP EVENT
image_angle=direction;
direction=point_direction(x,y,mouse_x,mouse_y);
if keyboard_check(ord("A")){speed=-walkingspeed}
if keyboard_check(ord("D")){speed=walkingspeed}
if keyboard_check(ord("S")){speed=-walkingspeed}
if keyboard_check(ord("W")){speed=walkingspeed}
friction=0.5;
if(speed>0 or speed<0){image_speed=setspeed;}
else{image_speed=0;image_index=0;}
firing+=1;
COLLISION EVENT W/ZOMBIE
obj_redscreen.red_screen_alpha=0.6;
health-=1;
if (health=0)
{
instance_destroy();
game_restart();
health=100;
}
COLLISION W/TREE
var a,xoff,yoff;
a=point_direction(x,y,other.x,other.y)
xoff=lengthdir_x(0.5,a);
yoff=lengthdir_y(0.5,a);
while(place_meeting(x,y,other))
{
x-=xoff;
y-=yoff;
}
OBJETO PLAYER_AK
CREATE EVENT
rate=7;
firing=0.15;
bspeed=71;
damage=50;
d&d/CALL EVENT
STEP EVENT
call event
COLLISION W/ZOMBIE
call event
COLLISION W/TREE
call event
GLOBAL LEFT BUTTON
if(ammo > 0 && firing > rate)
{
firing=0;
ammo-=1;
b=instance_create(x+lengthdir_x(16,image_angle),y+lengthdir_y(16,image_angle),obj_bullet);
b.speed=bspeed;
b.direction=image_angle;
b.image_angle=image_angle;
b.damage=damage;
sound_play(snd_ak);
}
OBJETO PLAYER_SPAS
CREATE EVENT
rate=10;
firing=1;
bspeed=47;
damage=100;
d&d/call event
STEP EVENT
call event
COLLISION W/ZOMBIE
call event
COLLISION W/TREE
call event
GLOBAL LEFT BUTTON
if(ammo > 0 && firing > rate)
{
firing=0;
ammo-=1;
b=instance_create(x+lengthdir_x(16,image_angle)+lengthdir_x(8,image_angle-90),y+lengthdir_y(16,image_angle)+lengthdir_y(8,image_angle-90),obj_pellet);
b.speed=bspeed;
b.direction=image_angle;
b.image_angle=image_angle;
b.damage=damage;
sound_play(snd_spas);
}