Hola compañeros de Comunidad GM!
Soy nuevo aqui y quiero aprender del fantástico GML, uno de los juegos me más me gustaron en mi infancia fue de estilo The Legend Of Zelda,así que me puse a la meta de crear lo más parecido a eso. Busqué tutoriales en youtube para dicho estilo de juego. Encontré un lista entera de cómo hacer un RPG para principiantes en http://www.comunidadgm.org/Smileys/SmiCGM/gmstudio.gif,y me parecio fantástico http://www.comunidadgm.org/Smileys/SmiCGM/shocked.gif, ya terminé de ver los videos, el juego está bien, pero solo hay un error, y quisiera que me ayudaran:
Le puse al enemigo una vida de 3, (igual que en el video), pero cuando la vida está en 1 y lo ataco me aparece esto:
Code Error
___________________________________________
############################################################################################
FATAL ERROR in
action number 1
of Step Eventplayer
for object obj_damage:
Unable to find any instance for object index '100127' name '<undefined>'
at gml_Object_obj_damage_CollisionEvent_0_1 (line 6) - var dir = point_direction (creator.x,creator.y,other.x,other.y);
############################################################################################
Por favor que alguien me ayude, la razón es que así el juego estuviera completo este error arruinaria todo http://www.comunidadgm.org/Smileys/SmiCGM/lipsrsealed.gif
Gracias por su atención.
Por si alguien no me entendió dejo el editable
Aa! y díganme si ese es un buen nombre para el juego, jejej http://www.comunidadgm.org/Smileys/SmiCGM/embarrassed.gif
Podrias poner el codigo que usaste en ese enemigo?, Es que asi no creo que sea posible encontrar el error
Gracias por responder,
el enemigo usa una variable llamada state, que es el "estado del enemigo", por decirlo así.
Bueno , aqui va :
Create Event
event_inherited();
image_speed = 0.8;
spd =2
state = scr_enemy_idle_state;
alarm
- = room_speed*irandom_range(2,5);
sight = 64;
targetx = 0;
targety = 0;
Step Event
event_inherited();
script_execute(state)
Collision with player
if (state != scr_enemy_stall_state) {
var dir = point_direction(other.x, other.y, x, y);
var xdir = lengthdir_x(1, dir);
var ydir = lengthdir_y(1, dir);
var damage = instance_create(other.x+xdir,other.y+ydir,obj_damage);
damage.creator = id;
damage.knockback = 5;
if other.sprite_index = moveup
{
other.sprite_index = spr_damage_up;
}
if other.sprite_index = movedown
{
other.sprite_index = spr_damage_down;
}
state = scr_enemy_stall_state;
alarm[1] = room_speed;
}
Script scr_enemy_stall_state
scr_check_for_player();
if (alarm[1]<= 0)
{
state = scr_enemy_idle_state;
}
Script scr_enemy_idle_state
scr_check_for_player();
Script scr_check_for_player
if (instance_exists(player)) {
var dis = point_distance(x,y,player.x,player.y);
if (dis< sight) {
state = scr_enemy_chase_state;
targetx = player.x
targety = player.y
}else {
scr_enemy_choose_next_state();
}
} else {
scr_enemy_choose_next_state();
}
Script scr_enemy_choose_next_state
if (alarm[0]=0)
{
state = choose(scr_enemy_wander_state,scr_enemy_idle_state);
alarm[0] = room_speed*irandom_range(2,4)
targetx = random(room_width);
targety = random(room_height);
}
Script scr_enemy_wander_state
scr_check_for_player();
var dir = point_direction(x,y,targetx,targety);
var hsp = lengthdir_x(spd,dir);
var vsp = lengthdir_y(spd,dir);
phy_position_x += hsp
phy_position_y += vsp
bueno, eso es lo que estoy usando para el enemigo, si hace falta algo (scripts,etc). me avisas
Gracias.
aa y por si algo aca esta la lista de reproduccion https://www.youtube.com/watch?v=WB2alpO62GM&list=PL9FzW-m48fn2ug_FSNnfozQs3qYlBNyTd
El archivo que subiste es sólo el descriptor principal del proyecto, no sirve de mucho. Para exportar el proyecto completo, ve al menú File y elige Export.
wow, no lo sabía, gracias