Entrar
Últimos assuntos
» player não consegue andarpor lovn7 Qui 21 Nov 2024, 13:33
» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22
» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31
» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23
» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49
» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58
» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36
» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36
» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33
» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51
» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28
» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18
» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08
» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10
» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16
» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40
» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01
» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45
» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34
» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28
» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48
» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54
» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14
» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50
Movimentação de 4 lados
+2
GabrielXavier
Luca$
6 participantes
Página 1 de 1
Movimentação de 4 lados
Bom,o que quero fazer,é oque está na imagem.
Quero que o player ande pelas bordas da tela,como se fossem "trilhos".
Mas,como fazer para que,ele só ande pelas bordas,e de acordo com o lado que ele está,mudar o angulo?
Porque o "player" vai ser um canhão(sim,tipo aquilo do BomberMan ).
Tem jeito de fazer isso?
Luca$- Games Ranking :
Notas recebidas : D-C
Data de inscrição : 10/10/2010
Reputação : 1
Número de Mensagens : 582
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Movimentação de 4 lados
Você colocar objetos nos cantos para quando o canhão colidir com os objetos ele mudar de direção e sprite essas coisas mas isso é uma forma generica de faser isso deve ter maneiras mais simples com apenas algumas linhas de codigo,
não sei se o path funciona para essa função ai mas acho que sim funciona sim!
O user Kapoty um dia me mostrou uma engine com essas funcionalidades ai se ninguem te ajudar manda uma mp pra ele que ele deve te ajudar.
Edit:
Tipo se você não tiver conseguindo usa a forma generica ai depois pode voltar atraz e alterar fazer algo mais profissional
não sei se o path funciona para essa função ai mas acho que sim funciona sim!
O user Kapoty um dia me mostrou uma engine com essas funcionalidades ai se ninguem te ajudar manda uma mp pra ele que ele deve te ajudar.
Edit:
Tipo se você não tiver conseguindo usa a forma generica ai depois pode voltar atraz e alterar fazer algo mais profissional
GabrielXavier- Games Ranking :
Notas recebidas : A
Data de inscrição : 25/02/2012
Reputação : 45
Número de Mensagens : 403
Prêmios :
x 0 x 1 x 0
x 0 x 1 x 1
x 0 x 0 x 0
Plataformas :- Game Maker Studio 2.0
Re: Movimentação de 4 lados
usa A* pathfinding, o saim tem um tutorial e tem engines assim no fórum, acho que vai funcionar.
Tutorial do saim : https://gmbr.forumeiros.com/t18178-a-pathfinding-lite
As engines eu não achei
Tutorial do saim : https://gmbr.forumeiros.com/t18178-a-pathfinding-lite
As engines eu não achei
Re: Movimentação de 4 lados
A ideia de usar objetos para os cantos é boa,se não achar um jeito mais,como você disse,"profissional",vou usar
Sobre o A*,eu tenho algumas dúvidas sobre isso,ele retorna um path,certo?
E como se aplicaria ela no meu projeto?
Sobre o A*,eu tenho algumas dúvidas sobre isso,ele retorna um path,certo?
E como se aplicaria ela no meu projeto?
Luca$- Games Ranking :
Notas recebidas : D-C
Data de inscrição : 10/10/2010
Reputação : 1
Número de Mensagens : 582
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Movimentação de 4 lados
Eu tentei desse forma...
Repare que eu não precisei criar variáveis até então.
É útil pra você?
- Código:
//movimentos e animação
switch(keyboard_key)
{
case vk_left:
if y==100 || y==400
{
if x>=100 && x<=500
{
hspeed = -5;
if y==100
{
sprite_index = spr_down;
} else {
sprite_index = spr_up;
}
}
}
break;
case vk_right:
if (y==100 || y==400)
{
if (x>=100 && x<=500)
{
hspeed = 5;
if y==100
{
sprite_index = spr_down;
} else {
sprite_index = spr_up;
}
}
}
break;
case vk_up:
if x==100 || x==500
{
if y>=100 && y<=400
{
vspeed = -5;
if x==100
{
sprite_index = spr_left;
} else {
sprite_index = spr_right;
}
}
}
break;
case vk_down:
if x==100 || x==500
{
if y>=100 && y<=400
{
vspeed = 5;
if x==100
{
sprite_index = spr_left;
} else {
sprite_index = spr_right;
}
}
}
break;
case vk_nokey:
hspeed = 0;
vspeed = 0;
break;
}
//limites simples
if x<100
{
x = 100;
}
if x>500
{
x = 500;
}
if y<100
{
y = 100;
}
if y>400
{
y = 400;
}
Repare que eu não precisei criar variáveis até então.
É útil pra você?
Super Maker- Data de inscrição : 09/07/2011
Reputação : 6
Número de Mensagens : 646
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Movimentação de 4 lados
Entendi,você checa pelas posições né?
Achei um pouco complicado o código,pouco flexivel...
Mas eu queria uma coisa tipo assim:
São apenas duas teclas,a seta da direita e da esquerda,que só colocam uma velocidade,dai quando colidissem com o canto,trocassem a direção para o respectivo canto
Achei um pouco complicado o código,pouco flexivel...
Mas eu queria uma coisa tipo assim:
São apenas duas teclas,a seta da direita e da esquerda,que só colocam uma velocidade,dai quando colidissem com o canto,trocassem a direção para o respectivo canto
Luca$- Games Ranking :
Notas recebidas : D-C
Data de inscrição : 10/10/2010
Reputação : 1
Número de Mensagens : 582
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Movimentação de 4 lados
Pra simplificar em duas teclas o melhor mesmo é usar path.
Fiz esse exemplo pra você, aí você faz os blocos de image_angle do seu canhão.
No create:
Fiz esse exemplo pra você, aí você faz os blocos de image_angle do seu canhão.
No create:
- Código:
caminho = path_add();
path_add_point(caminho,100,100,30);
path_add_point(caminho,500,100,30);
path_add_point(caminho,500,400,30);
path_add_point(caminho,100,400,30);
path_set_closed(caminho,1);
- Código:
switch(keyboard_key)
{
case vk_right:
lugar = path_position;
path_start(caminho,30,1,1);
path_position = lugar;
break;
case vk_left:
lugar = path_position;
path_start(caminho,-30,1,1);
path_position = lugar;
break;
case vk_nokey:
path_end();
break;
}
Super Maker- Data de inscrição : 09/07/2011
Reputação : 6
Número de Mensagens : 646
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Movimentação de 4 lados
É,agora que eu percebi,com apenas 2 teclas fica estranho,pois os movimentos se invertem...
Peguei o seu primeiro código,e ao invez de usar sprites,coloquei image_angle,e as transições de angulo ficam duras.
Teria algum jeito de fazer o objeto ir rodando?
Peguei o seu primeiro código,e ao invez de usar sprites,coloquei image_angle,e as transições de angulo ficam duras.
Teria algum jeito de fazer o objeto ir rodando?
Luca$- Games Ranking :
Notas recebidas : D-C
Data de inscrição : 10/10/2010
Reputação : 1
Número de Mensagens : 582
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Movimentação de 4 lados
Sobre Girar Suavemente, acho que isso resolveria seu problema: https://gmbr.forumeiros.com/t24194-resolvido-ids-ainda-mas-dessa-vez-alvo-constante-e-giro-suave#179938 Engine te Thyago
Re: Movimentação de 4 lados
Valeu!
Fiz uma engine aqui do que mais ou menos eu quero:
http://www.mediafire.com/?su4onfoldyhuqy9
Só que falta adaptar a movimentação,e não sei como fazer isso =/
Pode ser só as 2 teclas ;)
Fiz uma engine aqui do que mais ou menos eu quero:
http://www.mediafire.com/?su4onfoldyhuqy9
Só que falta adaptar a movimentação,e não sei como fazer isso =/
Pode ser só as 2 teclas ;)
Luca$- Games Ranking :
Notas recebidas : D-C
Data de inscrição : 10/10/2010
Reputação : 1
Número de Mensagens : 582
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Movimentação de 4 lados
eu a faço para ti, mas eu sei que existe uma engine que tem esse sistema, se você tiver o Pacote de 203 Engines(acho que todos deveriam ter), você pode achá-la, não me lembro o nome dela, mas ela é com aquele bicho do mário que é um casco, e há uns com espinhos em cima.
Se Lembrar eu o coloco.
Se Lembrar eu o coloco.
Re: Movimentação de 4 lados
Objetos pras paredes são essenciais se você não quiser ficar checando a posição o tempo todo.
Bom, com duas teclas tem dois jeitos de fazer esse movimento. Um é fazer as teclas representarem sentidos "horário e anti-horário", que é relativamente simples num jogo ortogonal (como é o caso do bomberman e parece ser o seu caso).
Outro, um pouco menos simples, é fazer as teclas alternarem entre "direita a esquerda" e "sobe e desce".
Só pra não criar dúvidas: no primeiro caso, a mesma seta que faz o canhão andar pra direita na parte de baixo da tela faz ele andar pra esquerda na parte de cima.
Vou te dizer como eu faria pro primeiro caso. No evento da tecla estar apertada, você faz um loop, procurando por colisões com as paredes (que eu já falei que seriam uma boa, elas podem até ser invisíveis). Um loop assim:
Aí vem a parte que eu não tenho muita certeza do que fazer. É que depois do loop, a gente já tem a situação atual. Em função de onde está a parede, a gente sabe pra onde tem que ir. Primeiro a situação simples, aquela em que apenas uma das colisões retornou true. Se o evento estiver na tecla "sentido horário", a gente precisa andar na direção da colisão + 90 graus. Diacho de teclado sem símbolo de graus... Se for na outra tecla, usa essa direção MENOS 90m graus.
Mas nos casos em que duas direções retornam "true" (ou seja, nos cantos)? Não consigo imaginar uma equação simples pra isso... Acho que vai ser preciso tratar esses casos como exceções. Naquele loop acima, adiciona-se um contador de colisões, se ele for maior que um, é o caso de ir pra um switch, ou coisa do tipo.
Bom, com duas teclas tem dois jeitos de fazer esse movimento. Um é fazer as teclas representarem sentidos "horário e anti-horário", que é relativamente simples num jogo ortogonal (como é o caso do bomberman e parece ser o seu caso).
Outro, um pouco menos simples, é fazer as teclas alternarem entre "direita a esquerda" e "sobe e desce".
Só pra não criar dúvidas: no primeiro caso, a mesma seta que faz o canhão andar pra direita na parte de baixo da tela faz ele andar pra esquerda na parte de cima.
Vou te dizer como eu faria pro primeiro caso. No evento da tecla estar apertada, você faz um loop, procurando por colisões com as paredes (que eu já falei que seriam uma boa, elas podem até ser invisíveis). Um loop assim:
- Código:
var i;
for(i = 0; i < 4; i += 1){
if (place_meeting(x + lengthdir_x(1, i * 90), y + lengthdir_y(1, i * 90), objParede){
colisao[i] = true;
}
else {
colisao[i] = false;
}
}
Aí vem a parte que eu não tenho muita certeza do que fazer. É que depois do loop, a gente já tem a situação atual. Em função de onde está a parede, a gente sabe pra onde tem que ir. Primeiro a situação simples, aquela em que apenas uma das colisões retornou true. Se o evento estiver na tecla "sentido horário", a gente precisa andar na direção da colisão + 90 graus. Diacho de teclado sem símbolo de graus... Se for na outra tecla, usa essa direção MENOS 90m graus.
Mas nos casos em que duas direções retornam "true" (ou seja, nos cantos)? Não consigo imaginar uma equação simples pra isso... Acho que vai ser preciso tratar esses casos como exceções. Naquele loop acima, adiciona-se um contador de colisões, se ele for maior que um, é o caso de ir pra um switch, ou coisa do tipo.
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: Movimentação de 4 lados
Aqui está a Engine que fiz para você, foi em cima de seu exemplo, por isso fiz com 4 objetos:
http://www.mediafire.com/?uurvmkd9ebxm3g8
Se quizer (caso for necessário) eu posto no 4Shared.
http://www.mediafire.com/?uurvmkd9ebxm3g8
Se quizer (caso for necessário) eu posto no 4Shared.
Re: Movimentação de 4 lados
É exatamente oque eu queria!
Só que,se der uma volta,ele fica com os controles ao contrarío =/
Será que tem algum jeito de resolver isso?
Só que,se der uma volta,ele fica com os controles ao contrarío =/
Será que tem algum jeito de resolver isso?
Luca$- Games Ranking :
Notas recebidas : D-C
Data de inscrição : 10/10/2010
Reputação : 1
Número de Mensagens : 582
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Movimentação de 4 lados
Fiz um exemplo com algo a mais.
Mudança de ângulo de imagem de modo suave e um movimento bem diferente dos que somos acostumados a jogar. Quem sabe inovador.
Brinque por uns 5 minutos com esses movimentos e vai entender.
Link: https://dl.dropbox.com/u/70151484/bomber.gm81
As teclas o leva pro lugar certo, mas se não a soltar, o personagem fica se movimentando pro lado que corresponde a ela.
Mudança de ângulo de imagem de modo suave e um movimento bem diferente dos que somos acostumados a jogar. Quem sabe inovador.
Brinque por uns 5 minutos com esses movimentos e vai entender.
Link: https://dl.dropbox.com/u/70151484/bomber.gm81
As teclas o leva pro lugar certo, mas se não a soltar, o personagem fica se movimentando pro lado que corresponde a ela.
Super Maker- Data de inscrição : 09/07/2011
Reputação : 6
Número de Mensagens : 646
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Movimentação de 4 lados
Tem como fazer essa engine em GM8?É porque eu não tenho o 8.1...
Luca$- Games Ranking :
Notas recebidas : D-C
Data de inscrição : 10/10/2010
Reputação : 1
Número de Mensagens : 582
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Movimentação de 4 lados
Poxa amigo, desculpa!Luca$ escreveu:Tem como fazer essa engine em GM8?É porque eu não tenho o 8.1...
Vou ver se encontro um conversor aqui e já do um edite...
****Editado****
...pronto. Converti com o Lateral GM.
Pode usar esse link: https://dl.dropbox.com/u/70151484/bomber.gmk
Super Maker- Data de inscrição : 09/07/2011
Reputação : 6
Número de Mensagens : 646
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Movimentação de 4 lados
To percebendo que esse tipo de movimento é muito complicado...
Achei que fosse ser apenas com os objetos de 4 cantos,e quando colidisse mudasse a direção...
Porque de path eu não entendo mtu =X
Valeu pela engine
Achei que fosse ser apenas com os objetos de 4 cantos,e quando colidisse mudasse a direção...
Porque de path eu não entendo mtu =X
Valeu pela engine
Luca$- Games Ranking :
Notas recebidas : D-C
Data de inscrição : 10/10/2010
Reputação : 1
Número de Mensagens : 582
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Tópicos semelhantes
» Inverter lados
» player atirar em 2 lados
» [Resolvido]Imagem aos lados
» (pergunta)atacke para os lados
» Como atirar para todos os lados
» player atirar em 2 lados
» [Resolvido]Imagem aos lados
» (pergunta)atacke para os lados
» Como atirar para todos os lados
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos