Página 1 de 1

Movimentação

Enviado: Qua Jun 01, 2022 8:37 pm
por zxzinhu
Bom, estou com um problema, e acho que é no script(pelo menos é o que o GameMaker diz .-.).

O erro é o seguinte:
___________________________________________
############################################################################################
ERROR in
action number 1
of Create Event
for object <undefined>:

Variable <unknown_object>.y(1, -2147483648) not set before reading it.
at gml_GlobalScript_move_state (line 25) - if (place_meeting(x +hspd, y, obj_wall))
############################################################################################
gml_GlobalScript_move_state (line 25)



Este é o código usado no "move_state" script:


script_execute(get_input);

//Move
xaxis = (key_right - key_left);
yaxis = (key_down - key_up);

//Get Direction
var dir = point_direction(0,0,xaxis,yaxis)

//Get Lenght
if (xaxis == 0) and (yaxis == 0)
{
len = 0;
} else {

len = spd;

}
//Get speed variables
hspd = lengthdir_x(len,dir);
vspd = lengthdir_y(len,dir);


#region COLISION HORIZONTAL
if place_meeting(x+hspd, y, obj_wall) {
while !place_meeting(x+hspd, y, obj_wall) {
y += sign(hspd)
}
hspd = 0;
}

#endregion

#region COLISION VERTICAL
if place_meeting(x, y+vspd, obj_wall) {
while !place_meeting(x, y+vspd, obj_wall) {
y += sign(vspd)
}
vspd = 0;
}
y += vspd;


#endregion



O usado no "Create" do player:


spd = 4;
len = 0;
dir = 0;
hspd = 0;
vspd = 0;



E o do "Step" do player:


script_execute(move_state)

Re: Movimentação

Enviado: Sex Jun 03, 2022 10:19 am
por fehantaro
Irmão esse erro está falando que ele não está reconhecendo o "obj_wall". Você já viu se esse objeto foi criado ou se está com o mesmo nome? Da uma olhada tbm pra ver se vc colocou o obj_wall na room