Obrigado por visitar a The Game Makers Brasil 😁 Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais.

Player não ficar preso em um obstáculo

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
Ismaelgames7
Membro
Membro
Reações: 0
Mensagens: 26

Player não ficar preso em um obstáculo

Mensagem por Ismaelgames7 » Sex Jul 01, 2016 8:18 pm

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.
Editado pela última vez por Ismaelgames7 em Sex Jul 01, 2016 8:54 pm, em um total de 1 vez.

Avatar do usuário
Adilson
Membro
Membro
Reações: 0
Mensagens: 114
Localização: Curitiba Parana

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

Mensagem por Adilson » Sex Jul 01, 2016 8:32 pm

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
Vlw, Flw !!

Avatar do usuário
Ismaelgames7
Membro
Membro
Reações: 0
Mensagens: 26

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

Mensagem por Ismaelgames7 » Sex Jul 01, 2016 8:53 pm

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

Avatar do usuário
Adilson
Membro
Membro
Reações: 0
Mensagens: 114
Localização: Curitiba Parana

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

Mensagem por Adilson » Sex Jul 01, 2016 8:59 pm

seu link nao leva pro download, arruma o link q arrumo o projeto pa vc
Vlw, Flw !!

Avatar do usuário
Ismaelgames7
Membro
Membro
Reações: 0
Mensagens: 26

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

Mensagem por Ismaelgames7 » Sáb Jul 02, 2016 4:43 pm

Aqui está o link (tomara q esse funcione):

... h5WjA/view

Trancado

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 0 visitante