HOLA! :) como saben eh estado trabajando en el proyecto beat em up y eh logrado añadir colisiones verticales y horizontales al juego y funcionaban del lo mejor ayer conseguí este código de este lugar https://marketplace.yoyogames.com/assets/759/top-down-shooter-engine:
este código funciona bien en colinas de 45 grados te permite deslizarte suavemente por ellas sin quedarte atorado y si estas junto a una colina y presionas arriba automáticamente se desliza por ella el problema es que solo funciona con angulos de 45 si tratas de meterle ángulos fuera de esa cifra deja de funcionar el código en vez de ser automático tienes que presionar las teclas de movimiento y arriba o abajo al mismo tiempo para que el personaje se deslice.. si han jugado los leyend of zelda de antaño sabran a que me refiero con deslizarce
hay alguna forma de quitar el bloqueo de los 45 grados o hay algún código que funcione bien en las colinas? el codigo que yo usaba antes de obtener ese es este y hace lo mismo que el anterior si me pego a la colina y presiono los botones el personaje la sobe y la baja pero se atora un poco y no la sube de forma automatica:
si alguien pudiera ayudarme seria genial! lo agradeceria mucho! :)
dejo aquí el editable de lo que llevo para que todos puedan usarlo :) y para todos aquellos que usan studio lo pase a esa versión
Gracias :D
Código [Seleccionar]
// Actual collision checks + movement
var i;
// Vertical
for (i = 0; i < abs(v); ++i) {
// UP slope
if (place_meeting(x, y + sign(v), oParSolid) && !place_meeting(x - 1, y + sign(v+1), oParSolid))
--x;
if (place_meeting(x, y + sign(v), oParSolid) && !place_meeting(x + 1, y + sign(v+1), oParSolid))
++x;
if (!place_meeting(x, y + sign(v), oParSolid))
y += sign(v);
else {
v = 0;
break;
}
}
// Horizontal
for (i = 0; i < abs(h); ++i) {
// Slopes
if (place_meeting(x + sign(h), y, oParSolid) && !place_meeting(x + sign(h), y - 1, oParSolid))
--y;
if (place_meeting(x + sign(h), y, oParSolid) && !place_meeting(x + sign(h), y + 1, oParSolid))
++y;
if (!place_meeting(x + sign(h), y, oParSolid))
x += sign(h);
else {
h = 0;
break;
}
}
///////////////////////////////////////////////////////////////////////////////
este código funciona bien en colinas de 45 grados te permite deslizarte suavemente por ellas sin quedarte atorado y si estas junto a una colina y presionas arriba automáticamente se desliza por ella el problema es que solo funciona con angulos de 45 si tratas de meterle ángulos fuera de esa cifra deja de funcionar el código en vez de ser automático tienes que presionar las teclas de movimiento y arriba o abajo al mismo tiempo para que el personaje se deslice.. si han jugado los leyend of zelda de antaño sabran a que me refiero con deslizarce
hay alguna forma de quitar el bloqueo de los 45 grados o hay algún código que funcione bien en las colinas? el codigo que yo usaba antes de obtener ese es este y hace lo mismo que el anterior si me pego a la colina y presiono los botones el personaje la sobe y la baja pero se atora un poco y no la sube de forma automatica:
Código [Seleccionar]
if place_meeting(x,y+velv,obj_solid)
{
if directionv=0
move_contact_solid(90,-1)
if directionv=1
move_contact_solid(270,-1)
velv=0 //esta variable controla la velocidad de movimiento vertical
if place_meeting(x+velh,y,obj_solid)
{
if direction=0
move_contact_solid(180,-1)
if direction=1
move_contact_solid(0,-1)
velv=0 //esta variable controla la velocidad de movimiento horizontal
si alguien pudiera ayudarme seria genial! lo agradeceria mucho! :)
dejo aquí el editable de lo que llevo para que todos puedan usarlo :) y para todos aquellos que usan studio lo pase a esa versión
Gracias :D