Conectar-se
Quem está conectado
27 usuários online :: 1 usuário cadastrado, Nenhum Invisível e 26 Visitantes

Tedi Ripper

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 10/11/2014
Número de Mensagens : 11
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Ver perfil do usuário

[Resolvido]Movimento/troca de sprites estilo zelda nes

em Ter 09 Jun 2015, 11:01
Olá pessoal do GM brasil! Estou aki mais uma vez para pedir um auxilio.
Eu estou fazendo um jogo estilo the legendo of zelda a link to the past, alguem ja jogol?
Bem, eu queria fezer os movimentos com as setas e mudando de sprites, até ai eu sei fazer mas uma coisa que eu percebi é q link tipo trava a direção que esta olhando quando pressiono duas teclas, tipo, quando ando pra direita e aperto para cima segurando o botão direito ele ainda continua olhando para a direita... e daí vai...
eu queria uma base de como faço isso em condigo. Desde já agradeço.
avatar
Ranking : Sem avaliações
Data de inscrição : 28/04/2015
Número de Mensagens : 100
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Ver perfil do usuário

Re: [Resolvido]Movimento/troca de sprites estilo zelda nes

em Ter 09 Jun 2015, 11:12
Reputação da mensagem: 100% (1 votos)
'-'-'-'-'-'-'-'. Isso é um bug cara, '-'-'-'-'-'-'-''-
Quer refazer um bug pq? '-'-'-'-'-'-'-'-'-'-'
Bom, mas esse é o mais comum dos bugs. Só fazer algo assim que você consegue repeti-lo:
'-'
Código:

if(keyboard_check(vk_up)){
  y -= 5;
  sprite_index = movendo_pra_cima;
}
if(keyboard_check(vk_right)){
  x += 5;
  sprite_index = movendo_pra_direita;
}
//Os outros dois
//Não esqueça que é só um exemplo, faça o movimento do jeito que
//você faz com uma estrutura de if's semelhante à acima

Quem ficar embaixo é quem vai mudar o sprite por ultimo. '-''-'-'-'-'-'-'-'-'
Tão ta, espero que tenha bugado seu jogo com sucesso. flw '-'-'-'-'-'-'-'-'-'-'

ATENÇÃO!!!!!!!!!!!!!!!
O código acima é um exemplo.


Última edição por Superbomber em Ter 09 Jun 2015, 15:19, editado 1 vez(es)
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 09/05/2013
Número de Mensagens : 820
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Ver perfil do usuário

Re: [Resolvido]Movimento/troca de sprites estilo zelda nes

em Ter 09 Jun 2015, 11:17
Amigo, talvez meu tutorial/engine aqui abaixo na minha assinatura possa te ajudar. Movimento topdown.
avatar
Data de inscrição : 10/11/2014
Número de Mensagens : 11
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Ver perfil do usuário

Re: [Resolvido]Movimento/troca de sprites estilo zelda nes

em Ter 09 Jun 2015, 14:33
Amigo Superbomber, se isso é um bug eu não sabia, mas é que ele funciona em todas as setas, no caso do zelda, e não em algumas no caso do seu cóndigo. Mas valew.
E amigo WellingtonBecker, seu sistema é muito legal, mas ele faz a mesma função do meu, mas obrigado pela resposta. o tópico ainda esta aberto.
avatar
Ranking : Sem avaliações
Data de inscrição : 28/04/2015
Número de Mensagens : 100
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Ver perfil do usuário

Re: [Resolvido]Movimento/troca de sprites estilo zelda nes

em Ter 09 Jun 2015, 15:18
Reputação da mensagem: 100% (1 votos)
Cof! Cof! Ninguém nunca leu um dicionário na vida? Cof! Cof!

Como falei, era só um exemplo. '-'-'-'-'-'-'-'-'
Código:

//Os outros dois(os outros dois códigos para as outras duas teclas)
//Não esqueça que é só um exemplo, faça o movimento do jeito que
//você faz com uma estrutura de if's semelhante à acima

'-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-''-'-'
avatar
Data de inscrição : 10/11/2014
Número de Mensagens : 11
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Ver perfil do usuário

Re: [Resolvido]Movimento/troca de sprites estilo zelda nes

em Ter 09 Jun 2015, 16:49
Eu entendi que isso é um exemplo, mas é a base. mesmo assim agradeço por sua atenção. Vou tentar explicar melhor. é como se a primeira posição que ele fica fosse a predominante. Como eu disse:
se eu apertar a tecla seta para baixo, o personagem vai andar olhando pra frente (no caso do topdown) e segurando a mesma tecla e apertando pra direita ou esquerda ele anda nas diagonais ainda olhando para frente, e o mesmo acontece com as outras teclas. Por favor mim ajudem.
avatar
Data de inscrição : 10/08/2014
Número de Mensagens : 395
Insígnias de JAM :

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

Prêmios
   : 1
   : 0
   : 0
Ver perfil do usuáriohttp://www.tutoriaisgamemaker.com.br

Re: [Resolvido]Movimento/troca de sprites estilo zelda nes

em Ter 09 Jun 2015, 19:14
Um jeito de fazer é verificar a primeira tecla pressionada, colocar o player em um estado movendo pra esse lado, checar se outras teclas estão sendo pressionadas (sem trocar o sprite), e, quando o botão da primeira pressionada for solto, ai voltar ao estado inicial, verificar se algum tecla está sendo pressionada e repetir o processo.
avatar
Ranking : Nota A
Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Número de Mensagens : 1834
Insígnias de JAM :

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

Prêmios
   : 2
   : 1
   : 1
Ver perfil do usuáriohttp://willy-gmbr.blogspot.com/

Re: [Resolvido]Movimento/troca de sprites estilo zelda nes

em Ter 09 Jun 2015, 20:26
Certo... O personagem se move em quatro direções, portanto, temos quatro sprites diferentes.
É possível andar para a direita e para a esquerda ao mesmo tempo? Não, pois são direções totalmente opostas. Ou seja, devemos garantir que apenas uma direção seja executada.

Vou apontar um erro muito comum entre iniciantes baseado no código que o Superbomber deu de exemplo, incrementando com as outras duas direções que faltam:
Spoiler:

Código:
if(keyboard_check(vk_up)){
  y -= 5;
  sprite_index = movendo_pra_cima;
}
if(keyboard_check(vk_down)){
  y += 5;
  sprite_index = movendo_pra_baixo;
}
if(keyboard_check(vk_right)){
  x += 5;
  sprite_index = movendo_pra_direita;
}
if(keyboard_check(vk_left)){
  x -= 5;
  sprite_index = movendo_pra_esquerda;
}
Aparentemente, o código funcionará perfeitamente, mas, não é bem isso o que acontece. Entenda, se você teclar left e right ao mesmo tempo, left será executado porque vem depois de right na ordem do código, entretanto, por mais que não seja visível, você está andando para a direita e para a esquerda ao mesmo tempo. Uat?

Um dos princípios básicos da lógica de programação são as estruturas de if e de if-else. Como precisamos garantir que apenas uma direção seja executada, devemos encadear os códigos usando if-else ao invés de apenas ifs. Isso garantirá que apenas um código será executado e que a direção certa do sprite será tratada, ou seja, o código deve ficar parecido com isso:

Spoiler:

Código:
if(keyboard_check(vk_up)){
  y -= 5;
  sprite_index = movendo_pra_cima;
}else if(keyboard_check(vk_down)){
  y += 5;
  sprite_index = movendo_pra_baixo;
}else if(keyboard_check(vk_right)){
  x += 5;
  sprite_index = movendo_pra_direita;
}else if(keyboard_check(vk_left)){
  x -= 5;
  sprite_index = movendo_pra_esquerda;
}
Além disso, mesclar movimento horizontal com vertical, impedirá que seu personagem se mova na diagonal.

Me estendi um pouco, mas acho que fui claro.
Se tiver dúvidas, manifeste-se!
Flws... blz
avatar
Data de inscrição : 10/11/2014
Número de Mensagens : 11
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Ver perfil do usuário

Re: [Resolvido]Movimento/troca de sprites estilo zelda nes

em Qua 10 Jun 2015, 14:28
Caros amigos do GM brasil. Muito obrigado pela atenção de vocês e pelas respostas. Ontem a noite eu estava tentando resolver esse problema e consegui! Estou sem internet por isso não respondi de imediato. Não estou com o código aqui, pq to teclando do trabalho, mas eu fiz o que o nosso amigo matheusco falou e deu super certo, identifiquei as teclas com vaiáveis e fiz as condições e deu tudo certo do jeito que eu queria. Valew a todos! Hoje eu não tenho tempo mas depois eu posto o código. Valew! Tópico resolvido!
avatar
Ranking : Nota C
Notas recebidas : B+C
Data de inscrição : 15/05/2012
Número de Mensagens : 666
Insígnias de JAM :

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

Prêmios
   : 1
   : 0
   : 0
Ver perfil do usuário

Re: [Resolvido]Movimento/troca de sprites estilo zelda nes

em Qua 10 Jun 2015, 17:39
tipo, quando ando pra direita e aperto para cima segurando o botão direito ele ainda continua olhando para a direita... e daí vai...

Mas jovem??? o link anda assim mesmo!!! conheço ele desde que ele nasceu kkkkkk (Melhor jogo da historia link to the past).

Pelo seu exemplo, se vc soltar a direita ai sim ele olha para cima. Ele não tem sprite para diagonal.
avatar
Ranking : Sem avaliações
Data de inscrição : 16/01/2014
Número de Mensagens : 312
Insígnias de JAM :

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

Prêmios
   : 0
   : 1
   : 0
Ver perfil do usuáriohttp://google.com

Re: [Resolvido]Movimento/troca de sprites estilo zelda nes

em Qui 11 Jun 2015, 14:30
Porque ninguém usa motion_set(...)? É desvantajoso usar essa função, ou só é pouco típica entre os programadores ?


Última edição por Lighter em Sex 12 Jun 2015, 18:52, editado 1 vez(es)
avatar
Ranking : Nota A
Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Número de Mensagens : 1834
Insígnias de JAM :

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

Prêmios
   : 2
   : 1
   : 1
Ver perfil do usuáriohttp://willy-gmbr.blogspot.com/

Re: [Resolvido]Movimento/troca de sprites estilo zelda nes

em Qui 11 Jun 2015, 14:46
motion_set é "genérico de speed".
Programadores mais experientes sabe que o uso de funções variadas de speed costumam dar bastante problema quando o assunto é colisão.
avatar
Ranking : Sem avaliações
Data de inscrição : 16/01/2014
Número de Mensagens : 312
Insígnias de JAM :

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

Prêmios
   : 0
   : 1
   : 0
Ver perfil do usuáriohttp://google.com

Re: [Resolvido]Movimento/troca de sprites estilo zelda nes

em Qui 11 Jun 2015, 16:01
@Willy escreveu:motion_set é "genérico de speed".
Programadores mais experientes sabe que o uso de funções variadas de speed costumam dar bastante problema quando o assunto é colisão.

Faz sentido, até porque essas funções estão nos demos do GM. De colisões você entende né willy rsrsrs. flw
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum