Que bueno que hayas encontrado la solución.
PD: Excelentes dibujos man.
PD: Excelentes dibujos man.
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
var x_centro = view_xview[0]+view_wview[0]/2;
var y_centro = view_yview[0]+view_hview[0]/2;
draw_text(0,0,x)
draw_text(0,16,y)
nombre = dif
valor = angle_difference(180,image_angle)
relativo = desmarcado
nombre = image_angle
valor = sign(dif)*(15)
relativa = Marcada
speed = 0 //hace que el personaje se quede quieto
x = xprevious //hace que el personaje retroceda a su coordenada anterior (vuelve al momento cuando no hacía colisión)
y = yprevious //Así evitamos que atraviese objetos no_solidos, eso detectaría colisión en cada STEP y nunca se va a activar la alarma
alarm[0] = room_speed //Establece 1 segundo de delay para elegir nueva dirección
speed = 8 //Reactiva el movimiento del personaje (ponle la variable o valor que corresponda)
if abs(angle_difference(direction,0)) <= 30 { //detecta que el personaje esté mirando a la derecha (con 30 grados de holgura)
direction = choose(150,180,210) //Elige una de las direcciones hacia la izquierda
}
else { //si tu personaje estaba mirando a la izquierda
direction = choose(30,0,330) //Elige una de las direcciones hacia la derecha
}
grid = ds_grid_create(1,1) //Creamos una grid cualquiera
if ds_exists(grid,ds_type_grid) ds_grid_destroy(grid) //Eliminamos la grid cuando termine el juego
var num = instance_number(obj_sort) //Recibe el número de objetos que debo dibujar
if num > 0 { //Evita que se ejecuta el código si no debo dibujar nada.
ds_grid_resize(grid,2,instance_number(obj_sort)) //Ajusta el tamaño de la grid a la cantidad de objetos a dibujar
var counter = 0 //Establece un contador para llenar la GRID
with obj_sort { //El código de abajo lo ejecuta una vez por cada obj_sort en la room
ds_grid_set(other.grid,0,counter,id) //Setea el ID en la columna 0
ds_grid_set(other.grid,1,counter,y) //Setea la coordenada Y en la columna 1
counter += 1 //Incrementa el contador para ingresar el siguiente registro
}
ds_grid_sort(grid,1,true) //Ordena la lista de ID según su coordenada Y
for (var i=0; i<ds_grid_height(grid); i+=1) { //Hace un loop por cada registro de la grid
var draw_id = ds_grid_get(grid,0,i) //Recibe el ID del objeto a dibujar
with draw_id draw_self() //Ejecuta el evento de dibujo de ese material.
}
}
direction = point_direction(other.x,other.y,x,y) //Calcula la dirección desde el otro objeto hasta mi. Si usas tu propia variable de dirección, pones tu variable en vez de "direction"
speed = velocidad //Setea mi velocidad (no es 100% necesaria esta línea, en teoría la velocidad debería estar seteada de antes)
hspeed = (velocidad)*sign(x-other.x) //Si usas tu propia variable de velocidad, usa esa en vez de "hspeed"
repeat(abs(intVX))
{
if (!place_meeting(x + intVX, y, Obj_Suelo))
{
x += intVX
}
else
{
intVX =0;
break;
}
}
Page generada en 0.026 segundos con 12 consultas.