sistema de movimentação de personagem

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

sistema de movimentação de personagem

Mensagem por 7hiagomp em Seg 21 Abr 2014, 21:15

Oi galera, meu primeiro tópico!

estou acompanhando bastante o fórum e aprendendo um monte com os posts, muito bom trabalho, já indiquei a vários amigos, mas acredito que estou com uma dúvida bem específica que não está aqui, ou eu não soube juntar as peças.
Estou criando um jogo em que o movimento do personagem é realizado em posições fixas num grid de 6 casas.  Similar aqueles joguinhos de corrida bem antigos.

Imagina esse sistema em que existem 4 posições apenas, cada uma tem uma coordenada fixa e um desenho diferente do outro.

A questão é, não estou conseguindo controlar isso;
a lógica que estou tentando fazer é gerar 1 variável para cada posição (já que são poucas), e então, usar o teclado para ficar trocando de váriável, (cada toque no direcional troca a variável), ao mesmo tempo em que a troca acende e apaga os objetos.

Minhas dúvidas são;
- a melhor maneira de fazer os objetos acenderem e apagarem de acordo com uma variável.  Estou tentando usar 'visible = true/false'. Mas ainda não deu certo.
- o controle da variável (que é o controle do jogo), código que indica como as setas direcionais mudam as variáveis, tem q ficar em que objeto? Devo criar um objeto invisível e específico só pra ele? aplico no add event>create ou no add event>game start?
- em que objeto eu posso iniciar as variáveis de maneira mais eficaz?
- o grid de posicionamento do comando draw sprite (x, y) parece que é diferente das coordenadas que podemos ver na janela de room. São duas coordenadas diferentes?

Minhas limitações são;
- os objetos devem se mover apenas nas 'casas' específicas e cada uma delas tem um desenho (sprite) específico.
- o objeto só muda (de casa e de sprite) quando o jogador indica alguma direção
- os sprites além de desenhos diferentes, tem tamanhos diferentes também.

Desculpa as delongas, mas acho que todas essas duvidas são referentes a um único problema, que ainda estou tentando encontrar a melhor maneira de solucionar.  É isso, obrigado desde já a quem puder ajudar.  Flws

7hiagomp

Número de Mensagens : 124
Idade : 31
Data de inscrição : 21/04/2014
Reputação : 24
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: sistema de movimentação de personagem

Mensagem por Gabreel em Seg 21 Abr 2014, 21:20

Rapaz, vc deu sorte que eu ia desenvolver um jogo tipo isso, exatamente com 4 casas, o resto é caso de você adaptar. Só está feita a movimentação! A engine tá aí, para GMS e se tiver dificuldades, você pode abrir com o winrar.

http://sharesend.com/q0g6aw26

Gabreel

Número de Mensagens : 2227
Idade : 20
Data de inscrição : 02/10/2009
Reputação : 52
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: sistema de movimentação de personagem

Mensagem por 7hiagomp em Seg 21 Abr 2014, 21:49

Gabreel, obrigadão pelo arquivo, mas não era bem isso.  O seu personagem está se movimentando para os lados e ele sempre tem a mesma animação.
o caso que estou tentando solucionar tem desenhos diferentes e não tem "movimento".  Os objs apagam de um lado e acendem em outro.

mas obrigadão.

7hiagomp

Número de Mensagens : 124
Idade : 31
Data de inscrição : 21/04/2014
Reputação : 24
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: sistema de movimentação de personagem

Mensagem por Gabreel em Seg 21 Abr 2014, 21:55

Como eu disse, é questão de adaptar. É exatamente a mesma coisa, só que com outros efeitos!

Gabreel

Número de Mensagens : 2227
Idade : 20
Data de inscrição : 02/10/2009
Reputação : 52
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: sistema de movimentação de personagem

Mensagem por Markituh em Seg 21 Abr 2014, 22:24

Bom, você pode tanto ter 4 objetos e colocar variaveis em cada um deles - essas variáveis vão controlar colisões e o desenho da sprite - como também ter um objeto só para as 4 direções, apenas desenhando cada uma de acordo com o valor de uma variável "player_atual".

 É importante declarar a origem da sprite num ponto comum entre as quatro para evitar problemas de posicionamento - aliás, isso responde sua 4ª dúvida: como a sprite vai aparecer na room vai depender da origem dela. Ou o "offset" ( basicamente, vai ser desenhado do resultado de [posição]-[origem] ). Se elas tem tamanhos diferentes, só definir a origem num ponto em que quando forem jogadas nas coordenadas, não fiquem desalinhadas, como já falei. As coordenadas são uma só, aquela grid é só para efeito de posicionamento, não há um sistema de "unidades", digamos assim.

Um esboçozinho (clique no spoiler para abrir):
Spoiler:

Create:
Código:
player_atual = 1
player1_posx = 40   // Posição x do player 1
player2_posx = 150 //            "" do 2
player3_posx = 350 // E assim vai
player4_posx = 580
player_sprite = spr_player2 // Variavel geral
player_posx = player2_posx // Variavel geral
player_posy = room_height-30; // Definida corretamente a origem, da pra colocar todas no mesmo eixo
Step
Código:
// Apertou esquerda e a variavel esta nos limites
if (keyboard_check_pressed(vk_left) and player_atual > 1) {
   player_atual -= 1
// Apertou direita
} else if (keyboard_check_pressed(vk_right) and player_atual < 4) {
   player_atual += 1
}

switch(player_atual) {
    case 1:
         player_posx = player1_posx;
         player_sprite = spr_player1;
         break;
    case 2:
         player_posx = player2_posx;
         player_sprite = spr_player2;
         break;
    case 3:
         player_posx = player3_posx;
         player_sprite = spr_player3;
         break;
    case 4:
         player_posx = player4_posx;
         player_sprite = spr_player4;
         break;
}
Draw:
Código:
draw_sprite(player_sprite,image_index,player_posx,player_posy); // Usando image_index da ate pra você fazer uma animaçãozinha

Suponho que já tenha algum tipo de experiência com GML, já que você já está a um tempo frequentando o fórum [e indicando aos amigos, pergunto, você tem alguma experiência no ramo de gamedev também? Razz].

Abraços o/

___________

"Não deixe para amanhã o que se pode fazer hoje"

Links úteis:
Índice de Tutoriais
Manual online do GMS

Markituh

Ranking : Sem avaliações
Número de Mensagens : 2183
Data de inscrição : 11/10/2009
Reputação : 106
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: sistema de movimentação de personagem

Mensagem por 7hiagomp em Seg 21 Abr 2014, 22:39

tenho um pouquinho de experiência só, sempre aprendendo =).  
vou tentar aplicar aqui.

7hiagomp

Número de Mensagens : 124
Idade : 31
Data de inscrição : 21/04/2014
Reputação : 24
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: sistema de movimentação de personagem

Mensagem por Isaque Onix em Qua 23 Abr 2014, 23:31

olá, não sei bem como é esse jogo, mais pelo oque vi, ele pode ser feito com apenas o draw, sem precisar criar varios objetos. a colisão seria feita em retangulo e um unico objeto desenharia o seu personagem.

ou até mesmo criar um unico objeto para checar a colisão...

acredito que com isso seu jogo ficaria até mais leve ;)

flw, vlw Happy

Isaque Onix

Número de Mensagens : 1597
Idade : 23
Data de inscrição : 15/08/2010
Reputação : 147
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://spyreserver.16mb.com

Voltar ao Topo Ir em baixo

Re: sistema de movimentação de personagem

Mensagem por 7hiagomp em Qui 24 Abr 2014, 01:44

obrigado pela ajuda.
eu já terminei praticamente essa parte. estou apenas corrigindo os bugs agora.

Realmente é um sistema de movimentação bem particular, que eu não tinha tentado antes, mas agora já está resolvido.  O que fiz foi mais ou menos o que descrevi antes.  pus uma variável em cada casa, e fiz que o teclado alterasse a variável, depois pra checar a colisão apenas pedi para conferir se as variáveis eram iguais no disparador e no alvo.  Assim que estiver com menos bugs eu posto aqui mesmo.

o jogo está praticamente terminado e tem 4Mb

obrigado pela ajuda.

7hiagomp

Número de Mensagens : 124
Idade : 31
Data de inscrição : 21/04/2014
Reputação : 24
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: sistema de movimentação de personagem

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


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