Mayo 11, 2017, 02:49:40 AM Ultima modificación: Mayo 11, 2017, 02:58:05 AM por cristopher2545
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:

// 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:


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


Programame! como a una de tus árcades chinas

GET BEHIND ME DOCTOR!