Fabseven
Member
Hello devs,
I am trying some experiences and testing how to create a rpg-boardgame
Maked a big map, take a look :
i am trying to make the player (in red) going through the obj_event (white)
It's not quite good at the moment, after i press UP => the player is going toward the target (the next event)
I donot know how to stop it properly, tried with distance_to_object or distance_to_point but it's not clean.
Either it's continuing up forever because the condition distance <= 1 is not true or when i changing the code i am with distance_to_object (instead of distance_to_point) it's stopping near the target ...
I think i am missing something, i need my obj_player center's to go to obj_event center's to be clean.
Source :
Any idea ?
I am trying some experiences and testing how to create a rpg-boardgame
Maked a big map, take a look :
i am trying to make the player (in red) going through the obj_event (white)
It's not quite good at the moment, after i press UP => the player is going toward the target (the next event)
I donot know how to stop it properly, tried with distance_to_object or distance_to_point but it's not clean.
Either it's continuing up forever because the condition distance <= 1 is not true or when i changing the code i am with distance_to_object (instead of distance_to_point) it's stopping near the target ...
I think i am missing something, i need my obj_player center's to go to obj_event center's to be clean.
Source :
Code:
Information about object: obj_player
Sprite: spr_player
Solid: false
Visible: true
Depth: -2000
Persistent: false
Parent:
Children:
Mask:
No Physics Object
Create Event:
execute code:
going_next_ev = false
going_next_ev_targetid = noone
current_event_id = noone
event_goto[EST] = noone
event_goto[SOUTH] = noone
event_goto[NORTH] = noone
event_goto[WEST] = noone
d= noone
speed = 0
speed_going = 2
move_launched = false
Step Event:
execute code:
///eva of col with event
if( going_next_ev == false)
{
if( place_meeting(x,y,obj_event))
{
current_event_id = instance_nearest(x,y,obj_event)
event_goto[EST] = current_event_id.event_goto[EST]
event_goto[SOUTH] = current_event_id.event_goto[SOUTH]
event_goto[NORTH] = current_event_id.event_goto[NORTH]
event_goto[WEST] = current_event_id.event_goto[WEST]
}
}
execute code:
///moving if having a target
if( going_next_ev = true and instance_exists( going_next_ev_targetid ))
{
if(move_launched == false)
{
move_towards_point( going_next_ev_targetid.x , going_next_ev_targetid.y, speed_going)
move_launched = true
}
t = instance_nearest(x,y,obj_event)
if (t == going_next_ev_targetid)
{
centerx = x + sprite_width/2
centery = y + sprite_height/2
t_centerx = t.x + sprite_get_width(t.sprite_index)
t_centery = t.y + sprite_get_height(t.sprite_index)
d = distance_to_point(t_centerx,t_centery)
if( d <= 1)
{
going_next_ev = false
speed = 0
going_next_ev_targetid = noone
//x = t.x
//y = t.y
move_launched =false
}
}
}
Draw GUI Event:
execute code:
draw_set_font(font_gui)
draw_set_color(c_red)
draw_text(100,100,"going next ev ="+string(going_next_ev))
draw_text(100,120,"going targetid ="+string(going_next_ev_targetid))
draw_text(100,140,"current_event_id ="+string(current_event_id))
draw_text(100,160,"d ="+string(d))
Key Release Event for <Up> Key:
execute code:
if( instance_exists(current_event_id))
{
var target = event_goto[NORTH]
with(obj_event)
{
if(event_id == target)
{
target = id
}
}
if (instance_exists(target))
{
going_next_ev = true
going_next_ev_targetid = target
current_event_id = noone //reset
}
}
Code:
Information about object: obj_event
Sprite: spr_event
Solid: false
Visible: true
Depth: -1000
Persistent: false
Parent:
Children:
Mask:
No Physics Object
Create Event:
execute code:
event_id = noone
event_goto[EST] = noone
event_goto[SOUTH] = noone
event_goto[NORTH] = noone
event_goto[WEST] = noone