AJUDA: Seguir objeto sem parar

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

AJUDA: Seguir objeto sem parar

Mensagem por pedr0bandeira em Sab 26 Jun 2010, 15:43

Salve galera, o negócio é o seguinte: estou fazendo um jogo de futebol (bem tosco, é meu primeiro jogo) e queria que meu adversário ( sim , é 1vs1) seguisse a bola sem parar. Já fiz o modo multiplayer, que é human vs human e é só a bola encostar no gol e eles voltam à posiçao inicial. Até ai tudo bem, mas no singleplayer eu coloquei um script que vi aqui no site mesmo e o adversário segue a bola e quando encosta nela, ele para. Queria que ele continuasse batendo nela até alguem acertar o gol. Valeu! Cool

pedr0bandeira

Número de Mensagens : 58
Data de inscrição : 26/06/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: AJUDA: Seguir objeto sem parar

Mensagem por Denis Lemos em Sab 26 Jun 2010, 16:06

Coloque no STEP do adiverssário:
Código:

move_towards_point(obj_bola.x,obj_bola.y,5)
Assim faz ele ir sempre onde está a bola com uma velocidade de 5 pixeis por STEP, mas claro que quando ele chegar na bola ele vai parar né, pois ela estará ali paradinha !
Então tem que fazer ela se mover quando encostar com o adiverssário !

Adicione no objeto adiverssário uma colisão com a bola, e coloque o seguinte código:
Código:

with(other) // O other é a bola !
{
    direction=point_direction(obj_adiverssario.x,obj_adiverssario.y,obj_gol.x,obj_gol.y)
    speed=10
}
Isso fará com que a direção da bola será, tipo o sentido de uma reta do objeto adiverssario apontada para o obj_gol
e ela se moverá naquela direção com uma velocidade de 10 pixeis por step !
Mas assim a bola irá em uma velocidade constante de 10px por step e não vai parar nunca, então coloque no STEP do objeto bola isto:
Código:
friction=0.2
Isso é a fricção da bola, fará ela ir parando aos poucos em vez de se mover em velocidade constante !

Agora mude o nome dos objetos para os seus objetos, e regule os valores da velocidade de acordo com o que fique melhor com o seu game !

Obs: Fiz de cabeça, se aparecer algum erro, reporte o erro para que seja corrigido !

Denis Lemos

Número de Mensagens : 938
Idade : 28
Data de inscrição : 17/05/2009
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: AJUDA: Seguir objeto sem parar

Mensagem por pedr0bandeira em Sab 26 Jun 2010, 16:22

Valeu cara, só que eu nao consigo fazer gol no meu próprio jogo! eauaeheauh. Deu certo mas ainda tem um problema, quando a bola ta no campo dele, ele nao se meche, fica meio que "protegendo" a bola. Ele até segue a bola, mas para na frente dela e tranca ela com a parede (pq nao tem lateral, pega na parede e volta). Very Happy e só ele faz gol agora ): nao consigo pegar a bola.

AH, entendi o que ele faz. Ele só toca a bola quando ele está de frente para o gol. :/

pedr0bandeira

Número de Mensagens : 58
Data de inscrição : 26/06/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: AJUDA: Seguir objeto sem parar

Mensagem por Denis Lemos em Sab 26 Jun 2010, 17:14

Para a bola não trancar na parede, você pode adicionar no objeto bola um evento de colisão com os objetos laterias, e na aba "move" arrastar o ícone "BONCE" e dar OK !
Ele fará a bola rebater na parede como se fosse uma bolinha de sinuca, talvez ajude a evitar o outro jogador trancá-la entre parede e ele !

Bom, sobre ele ficar parado quando a bola está no campo dele, eu não tinha pensado nisso antes, mas aconteceu um baita erro de lógica, pois bem vamos ver o que deve estar acontecendo:

O código faz o seguinte, quando o outro jogador encosta na bola ele caucula a direção da bola para onde a bola tem que ir, de acordo com as suas coordenadas em linha com o gol, então quando ele bate na bola no seu campo ele fica paradão entre a bola e o gol trancando o caminho, e a bola tenta ir para a direção do gol, mas como o bocó está persseguindo a bola, os dois ficam se precionando um contra o outro, causando o empacamento !

Tente ajustar o código de colisão do adiverssário com a bola, talvez corrija:
Código:

if not collision_line(obj_bola.x,obj_bola.y,obj_gol.x,obj_gol.y,self,true,true) // Se o bocó não estiver parado na frente
{
    with(other) // O other é a bola !
    {
        direction=point_direction(obj_adiverssario.x,obj_adiverssario.y,obj_gol.x,obj_gol.y)
        speed=10
    }
}
else // Igual hà "senão" ou seja, se estiver na frente da bola !
{
    with(other) // Other é a bola !
    {
        direction=obj_adiverssario.direction+90 // Regule o 90 ao seu gosto, quanto maior, mais rápido será a volta !
        speed=10
    }
}

Agora ele só vai chutar a bola se não estiver na frente da bola para o gol, ou seja se ele estiver encostando em uma linha imaginária desenhada da bola até o gol, "senão", se ele estiver na frente, ele vai chutar a bola para o lado até dar a voltinha, não sei se essa voltinha vai funcionar, mas creio que sim !

Obs: Onde está escrito "self" se der erro, mude para o nome do objeto adiverssário, é que estou fazendo de cabeça, e não lembro bem os argumentos e o nome das funções !

Denis Lemos

Número de Mensagens : 938
Idade : 28
Data de inscrição : 17/05/2009
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: AJUDA: Seguir objeto sem parar

Mensagem por pedr0bandeira em Sab 26 Jun 2010, 17:36

Ae cara, deu uma boa melhorada, agora ele ja tem mais "angulo" pra chutar, mas a voltinha deu fail haeiaeh e ele fica na frente da bola ainda. Man, tem algum site que explica a linguagem certinho do GM? Pq eu faço curso de web design e já tenho uma noçao de algoritimos e lógica. Valeu pelas dicas, vou continuar tentando aqui, só falta eu entender a linguagem =D.


e tipo, o negocio do bounce eu já tinha feito, só que de tanto prenssar a bola com a barreira, a bola buga e sai do mapa. dai eu fiz um esqueminha pra reiniciar o jogo afro

pedr0bandeira

Número de Mensagens : 58
Data de inscrição : 26/06/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: AJUDA: Seguir objeto sem parar

Mensagem por Denis Lemos em Sab 26 Jun 2010, 18:23

O melhor site para aprender a linguagem, é aqui no fórum mesmo, tem muitos tutorias, sempre tem alguém que sabe te responder !
Mas também, no próprio GM tem o help, onde se encontra todos os comandos da linguem do programa, é só apertar no ícone com sinal de interrogação dentro de uma bolinha azul, no cabeçário do programa, que abrira o help, procure pela seção GML, que ensina tudo sobre os códigos, só que está em ingles, mas nada que o google tradutor não resolva !

Mas lendo na seção de tutorias daqui do fórum, se aprende bem ligeiro os comandos mais usados e com o tempo se aprende todos eles !

Bom a voltinha era para funcionar, tente diminuir lá onde está o 90, coloque 45 ou menos, ou talvez outra função que você já tinha feito esteja em conflito, só fuçando mesmo você descobre o problema !

Qualquer dúvida é só perguntar aí que quem souber, certamente te ajudará, a galera daqui é tudo gente boa !

Denis Lemos

Número de Mensagens : 938
Idade : 28
Data de inscrição : 17/05/2009
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: AJUDA: Seguir objeto sem parar

Mensagem por pedr0bandeira em Sab 26 Jun 2010, 18:25

Já deu de perceber, tu mesmo ja me ajudou mto, vlw cara

pedr0bandeira

Número de Mensagens : 58
Data de inscrição : 26/06/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: AJUDA: Seguir objeto sem parar

Mensagem por Conteúdo patrocinado Hoje à(s) 06:15


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum