Página 1 de 1

Player não ficar preso em um obstáculo

Enviado: Sex Jul 01, 2016 8:18 pm
por Ismaelgames7
Olá
Como eu faço para o meu player não ficar preso em um obstáculo?

Não da para explicar direito, vcs vendo a engine é melhor, aqui:

... sp=sharing

O que eu não to conseguindo fazer é quando o meu obstáculo voltar a ficar visível e sólido e se o player estiver encima desse obstáculo, o obstáculo vai empurrar o player pra trás.

Re: Player não ficar preso em um obstáculo

Enviado: Sex Jul 01, 2016 8:32 pm
por Adilson
tenta esse script q criei
cria um script no seu projeto com nome "contact" e adicione isso a ele

Código: Selecionar todos

x=xprevious;
y=yprevious;
if place_meeting(x,y,argument0)
{
    t=150;
    mx=x;
    my=y;
    c[0]=0;
    for(i=1;i<=t;i+=1)
    {
        x+=1;
        c[0]+=1;
        if not(place_meeting(x,y,argument0))
        i=t+1;
    }
    x=mx;
    c[1]=0;
    for(i=1;i<=t;i+=1)
    {
        y-=1;
        c[1]+=1;
        if not(place_meeting(x,y,argument0))
        i=t+1;
    }
    y=my;
    c[2]=0;
    for(i=1;i<=t;i+=1)
    {
        x-=1;
        c[2]+=1;
        if not(place_meeting(x,y,argument0))
        i=t+1;
    }
    x=mx;
    c[3]=0;
    for(i=1;i<=t;i+=1)
    {
        y+=1;
        c[3]+=1;
        if not(place_meeting(x,y,argument0))
        i=t+1;
    }
    y=my;
    mn=min(c[0],c[1],c[2],c[3]);
    if mn=c[0]
    {
        x+=(c[0]+1);
        if eff_anim=0
        hspeed=0;
    }
    if mn=c[1]
    {
        y-=(c[1]+1);
        if eff_anim=0
        vspeed=0;
    }
    if mn=c[2]
    {
        x-=(c[2]+1);
        if eff_anim=0
        hspeed=0;
    }
    if mn=c[3]
    {
        y+=(c[3]+1);
        if eff_anim=0
        vspeed=0;
    }
}
else
{
    t=speed_max;
    
    mx=x;
    for(i=0;i<t;i+=1)
    {
        x+=1;
        if place_meeting(x,y,argument0)
        {
            i=t;
            mx=x-1;
            if eff_anim=0
            hspeed=0;
        }
    }
    x=mx;
    for(i=0;i<t;i+=1)
    {
        x-=1;
        if place_meeting(x,y,argument0)
        {
            i=t;
            mx=x+1;
            if eff_anim=0
            hspeed=0;
        }
    }
    x=mx;
    my=y;
    for(i=0;i<t;i+=1)
    {
        y+=1;
        if place_meeting(x,y,argument0)
        {
            i=t+1;
            my=y-1;
            if eff_anim=0
            vspeed=0;
        }
    }
    y=my;
    for(i=0;i<t;i+=1)
    {
        y-=1;
        if place_meeting(x,y,argument0)
        {
            i=t+1;
            my=y+1;
            if eff_anim=0
            vspeed=0;
        }
    }
    y=my;
}
e depois coloque no player de preferencia no step
contact(obstaculo)
e RETTIRE o solid do obj da obstaculo

Re: Player não ficar preso em um obstáculo

Enviado: Sex Jul 01, 2016 8:53 pm
por Ismaelgames7
Adilson escreveu:tenta esse script q criei
cria um script no seu projeto com nome "contact" e adicione isso a ele

Código: Selecionar todos

x=xprevious;
y=yprevious;
if place_meeting(x,y,argument0)
{
    t=150;
    mx=x;
    my=y;
    c[0]=0;
    for(i=1;i<=t;i+=1)
    {
        x+=1;
        c[0]+=1;
        if not(place_meeting(x,y,argument0))
        i=t+1;
    }
    x=mx;
    c[1]=0;
    for(i=1;i<=t;i+=1)
    {
        y-=1;
        c[1]+=1;
        if not(place_meeting(x,y,argument0))
        i=t+1;
    }
    y=my;
    c[2]=0;
    for(i=1;i<=t;i+=1)
    {
        x-=1;
        c[2]+=1;
        if not(place_meeting(x,y,argument0))
        i=t+1;
    }
    x=mx;
    c[3]=0;
    for(i=1;i<=t;i+=1)
    {
        y+=1;
        c[3]+=1;
        if not(place_meeting(x,y,argument0))
        i=t+1;
    }
    y=my;
    mn=min(c[0],c[1],c[2],c[3]);
    if mn=c[0]
    {
        x+=(c[0]+1);
        if eff_anim=0
        hspeed=0;
    }
    if mn=c[1]
    {
        y-=(c[1]+1);
        if eff_anim=0
        vspeed=0;
    }
    if mn=c[2]
    {
        x-=(c[2]+1);
        if eff_anim=0
        hspeed=0;
    }
    if mn=c[3]
    {
        y+=(c[3]+1);
        if eff_anim=0
        vspeed=0;
    }
}
else
{
    t=speed_max;
    
    mx=x;
    for(i=0;i<t;i+=1)
    {
        x+=1;
        if place_meeting(x,y,argument0)
        {
            i=t;
            mx=x-1;
            if eff_anim=0
            hspeed=0;
        }
    }
    x=mx;
    for(i=0;i<t;i+=1)
    {
        x-=1;
        if place_meeting(x,y,argument0)
        {
            i=t;
            mx=x+1;
            if eff_anim=0
            hspeed=0;
        }
    }
    x=mx;
    my=y;
    for(i=0;i<t;i+=1)
    {
        y+=1;
        if place_meeting(x,y,argument0)
        {
            i=t+1;
            my=y-1;
            if eff_anim=0
            vspeed=0;
        }
    }
    y=my;
    for(i=0;i<t;i+=1)
    {
        y-=1;
        if place_meeting(x,y,argument0)
        {
            i=t+1;
            my=y+1;
            if eff_anim=0
            vspeed=0;
        }
    }
    y=my;
}
e depois coloque no player de preferencia no step
contact(obstaculo)
e RETTIRE o solid do obj da obstaculo
Eu não entendi... tbm testei esse código e não funcionou .-.
Pelo visto é algum muito pouco mais complicado de se programar, alguém pode meu explicar como faço isso para eu tentar imaginar o código pf

Re: Player não ficar preso em um obstáculo

Enviado: Sex Jul 01, 2016 8:59 pm
por Adilson
seu link nao leva pro download, arruma o link q arrumo o projeto pa vc

Re: Player não ficar preso em um obstáculo

Enviado: Sáb Jul 02, 2016 4:43 pm
por Ismaelgames7
Aqui está o link (tomara q esse funcione):

... h5WjA/view