GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» player não consegue andar
por 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

Ir para baixo

Movimentação de 4 lados Empty Movimentação de 4 lados

Mensagem por Luca$ Qua 21 Nov 2012, 18:27

Movimentação de 4 lados Keyrb

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 Smile ).

Tem jeito de fazer isso?
Luca$
Luca$

Games Ranking : Nota D

Notas recebidas : D-C
Data de inscrição : 10/10/2010
Reputação : 1
Número de Mensagens : 582
Prêmios : Movimentação de 4 lados Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Movimentação de 4 lados Empty Re: Movimentação de 4 lados

Mensagem por GabrielXavier Qua 21 Nov 2012, 19:38

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
GabrielXavier
GabrielXavier

Games Ranking : Nota A

Notas recebidas : A
Data de inscrição : 25/02/2012
Reputação : 45
Número de Mensagens : 403
Prêmios : Movimentação de 4 lados Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 1 Bronze x 1

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker Studio 2.0


Ir para o topo Ir para baixo

Movimentação de 4 lados Empty Re: Movimentação de 4 lados

Mensagem por Need 90 Qua 21 Nov 2012, 19:44

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
Need 90
Need 90

Games Ranking : Nota B

Notas recebidas : D+A+B
Data de inscrição : 16/01/2012
Reputação : 7
Número de Mensagens : 787
Prêmios : Movimentação de 4 lados Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://need90games.blogspot.com.br

Ir para o topo Ir para baixo

Movimentação de 4 lados Empty Re: Movimentação de 4 lados

Mensagem por Luca$ Qua 21 Nov 2012, 20:50

A ideia de usar objetos para os cantos é boa,se não achar um jeito mais,como você disse,"profissional",vou usar Smile

Sobre o A*,eu tenho algumas dúvidas sobre isso,ele retorna um path,certo?
E como se aplicaria ela no meu projeto?

Luca$
Luca$

Games Ranking : Nota D

Notas recebidas : D-C
Data de inscrição : 10/10/2010
Reputação : 1
Número de Mensagens : 582
Prêmios : Movimentação de 4 lados Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Movimentação de 4 lados Empty Re: Movimentação de 4 lados

Mensagem por Super Maker Qua 21 Nov 2012, 20:52

Eu tentei desse forma...
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;
}
...e deu certo aqui.
Repare que eu não precisei criar variáveis até então.
É útil pra você?
Super Maker
Super Maker

Data de inscrição : 09/07/2011
Reputação : 6
Número de Mensagens : 646
Prêmios : Movimentação de 4 lados Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Movimentação de 4 lados Empty Re: Movimentação de 4 lados

Mensagem por Luca$ Qui 22 Nov 2012, 14:08

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 Very Happy
Luca$
Luca$

Games Ranking : Nota D

Notas recebidas : D-C
Data de inscrição : 10/10/2010
Reputação : 1
Número de Mensagens : 582
Prêmios : Movimentação de 4 lados Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Movimentação de 4 lados Empty Re: Movimentação de 4 lados

Mensagem por Super Maker Qui 22 Nov 2012, 23:19

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:
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);
No step:
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;
}
Vê se ta legal assim!
Super Maker
Super Maker

Data de inscrição : 09/07/2011
Reputação : 6
Número de Mensagens : 646
Prêmios : Movimentação de 4 lados Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Movimentação de 4 lados Empty Re: Movimentação de 4 lados

Mensagem por Luca$ Sáb 24 Nov 2012, 11:24

É,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?
Luca$
Luca$

Games Ranking : Nota D

Notas recebidas : D-C
Data de inscrição : 10/10/2010
Reputação : 1
Número de Mensagens : 582
Prêmios : Movimentação de 4 lados Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Movimentação de 4 lados Empty Re: Movimentação de 4 lados

Mensagem por theguitarmester Sáb 24 Nov 2012, 11:34

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
theguitarmester
theguitarmester

Games Ranking : Nota C

Notas recebidas : B + C
Data de inscrição : 28/02/2012
Reputação : 139
Número de Mensagens : 2211
Prêmios : Movimentação de 4 lados Empty

Medalhas x 0 Tutoriais x 4 Moedas x 0

Ouro x 2 Prata x 2 Bronze x 1

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Plataformas :
  • Unity


http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Ir para o topo Ir para baixo

Movimentação de 4 lados Empty Re: Movimentação de 4 lados

Mensagem por Luca$ Sáb 24 Nov 2012, 11:51

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 ;)
Luca$
Luca$

Games Ranking : Nota D

Notas recebidas : D-C
Data de inscrição : 10/10/2010
Reputação : 1
Número de Mensagens : 582
Prêmios : Movimentação de 4 lados Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Movimentação de 4 lados Empty Re: Movimentação de 4 lados

Mensagem por theguitarmester Sáb 24 Nov 2012, 12:06

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.
theguitarmester
theguitarmester

Games Ranking : Nota C

Notas recebidas : B + C
Data de inscrição : 28/02/2012
Reputação : 139
Número de Mensagens : 2211
Prêmios : Movimentação de 4 lados Empty

Medalhas x 0 Tutoriais x 4 Moedas x 0

Ouro x 2 Prata x 2 Bronze x 1

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Plataformas :
  • Unity


http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Ir para o topo Ir para baixo

Movimentação de 4 lados Empty Re: Movimentação de 4 lados

Mensagem por saim Sáb 24 Nov 2012, 16:16

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:
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;
}
}
Simples, né? Se colide a um pixel na direção, a variável vira true, senão, 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
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : Movimentação de 4 lados Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Movimentação de 4 lados Empty Re: Movimentação de 4 lados

Mensagem por theguitarmester Sáb 24 Nov 2012, 16:33

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.
theguitarmester
theguitarmester

Games Ranking : Nota C

Notas recebidas : B + C
Data de inscrição : 28/02/2012
Reputação : 139
Número de Mensagens : 2211
Prêmios : Movimentação de 4 lados Empty

Medalhas x 0 Tutoriais x 4 Moedas x 0

Ouro x 2 Prata x 2 Bronze x 1

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Plataformas :
  • Unity


http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Ir para o topo Ir para baixo

Movimentação de 4 lados Empty Re: Movimentação de 4 lados

Mensagem por Luca$ Sáb 24 Nov 2012, 19:21

É 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?
Luca$
Luca$

Games Ranking : Nota D

Notas recebidas : D-C
Data de inscrição : 10/10/2010
Reputação : 1
Número de Mensagens : 582
Prêmios : Movimentação de 4 lados Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Movimentação de 4 lados Empty Re: Movimentação de 4 lados

Mensagem por Super Maker Sáb 24 Nov 2012, 20:00

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.
Super Maker
Super Maker

Data de inscrição : 09/07/2011
Reputação : 6
Número de Mensagens : 646
Prêmios : Movimentação de 4 lados Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Movimentação de 4 lados Empty Re: Movimentação de 4 lados

Mensagem por Luca$ Sáb 24 Nov 2012, 20:03

Tem como fazer essa engine em GM8?É porque eu não tenho o 8.1...
Luca$
Luca$

Games Ranking : Nota D

Notas recebidas : D-C
Data de inscrição : 10/10/2010
Reputação : 1
Número de Mensagens : 582
Prêmios : Movimentação de 4 lados Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Movimentação de 4 lados Empty Re: Movimentação de 4 lados

Mensagem por Super Maker Sáb 24 Nov 2012, 20:05

Luca$ escreveu:Tem como fazer essa engine em GM8?É porque eu não tenho o 8.1...
Poxa amigo, desculpa!
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
Super Maker

Data de inscrição : 09/07/2011
Reputação : 6
Número de Mensagens : 646
Prêmios : Movimentação de 4 lados Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Movimentação de 4 lados Empty Re: Movimentação de 4 lados

Mensagem por Luca$ Sáb 24 Nov 2012, 20:43

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
Luca$
Luca$

Games Ranking : Nota D

Notas recebidas : D-C
Data de inscrição : 10/10/2010
Reputação : 1
Número de Mensagens : 582
Prêmios : Movimentação de 4 lados Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Movimentação de 4 lados Empty Re: Movimentação de 4 lados

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos