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
» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18

» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30

» Como ajustar velocidade de cada frame da animação no game maker
por Ralphed Qui 18 Abr 2024, 18:28

» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07

» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45

» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51

» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31

» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11

» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39

» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17

» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18

» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34

» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12

» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02

» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55

» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21

» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21

» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39


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 : 40
Número de Mensagens : 399
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 : 2209
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 : 2209
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 : 2209
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


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