Conectar-se
Quem está conectado
31 usuários online :: 2 usuários cadastrados, Nenhum Invisível e 29 Visitantes

diassis, rafaelviodres1

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 05/03/2013
Número de Mensagens : 64
Insígnias de JAM :

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

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

Movimentação em um jogo de plataforma endless run

em Qua 25 Dez 2013, 23:26
Gostaria de saber como posso fazer o player andar sem parar, estilo aqueles jogos endless run. Pra quem não sabe endless run são jogos parecidos com subway surfers e temple run. Se alguem puder me ajudar agradeceria, só pra lembrar o jogo é de plataforma.
avatar
Ranking : Sem avaliações
Notas recebidas : B
Data de inscrição : 28/02/2012
Número de Mensagens : 1908
Insígnias de JAM :

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

Prêmios
   : 2
   : 2
   : 1
Ver perfil do usuáriohttp://guitarmester.no.comunidades.net/index.php?pagina=19362978

Re: Movimentação em um jogo de plataforma endless run

em Qui 26 Dez 2013, 12:49
o jeito mais fácil e simples é colocar no hspeed=4(ou qualquer valor positivo), você pode colocar isso no create do corredor ou em outro lugar que faça ele começar a correr, um exemplo:

obj_corredor:
Create:
Código:
hspeed=6

E então, é só você aplicar a gravidade e os pulos normalmente(caso queira), só não alterando o hspeed, apenas o vspeed, e quando o Corredor morrer, é só colocar hspeed=0 para ele parar.
avatar
Data de inscrição : 26/12/2013
Número de Mensagens : 1
Insígnias de JAM :

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

Re: Movimentação em um jogo de plataforma endless run

em Qui 26 Dez 2013, 14:40
Bom, depende do jogo. Geralmente, não é o jogador que se move, e sim o cenário e os objetos ao redor dele. Falo isso para jogos 2D como Jetpack Joyride, mas o mesmo deve ser válido para jogos 3D, claro que utilizando 3 eixos e pontos de spawn estratégicos.

- Porque? Já que é infinito, não tem lógica você criar uma room gigantesca ou aumentar o tamanho dela em tempo real. É uma room no tamanho da tela que você quer que o jogo tenha, apenas criando os objetos fora da tela e mandando eles na direção contrária ao do jogador.

Claro que você vai animar a sprite para dar a ilusão de movimentos, acrescentar a gravidade e tudo mais. Como seu jogo vai operar é você quem decide. No geral, você irá colocar algo como isso num alarm:
Código:
// Cria um objeto fora da tela (caso a origem X da tua sprite for 0), 60 pixels acima da borda inferior (algo como o chão).
with(instance_create(room_width,room_height-60,obj_obstaculo))
{
    hspeed = -6; // Da uma velocidade a ele (hspeed negativo vai para a esquerda).
}

a = choose(30,60,90); // Escolhe um valor aleatorio
alarm[X] = a; // Chama novamente este código no tempo da variavel a

Onde X no alarm é o numero dele. Espero que você tenha uma noção básica de GML e como os steps (tempo) funcionam. Você poderia também criar numa posição aleatória acima do chão:
Código:
b = irandom(200); // Gera um valor de 0 a 200. Esse valor pode mudar dependendo do tamanho da room
// A alteração aqui foi no segundo argumento, onde agora ele vai criar os objetos 60 pixels acima da borda inferior, MAIS o valor gerado acima.
with(instance_create(room_width,room_height-(60+b),obj_obstaculo))
{
    hspeed = -6;
}

a = choose(30,60,90);
alarm[X] = a;

Teve um concurso de jogos infinitos aqui no fórum. Se quiser se aventurar dando uma procurada, talvez ache algo interessante. Não to em casa para fazer um exemplozinho pra você, espero que tenha entendido.

Qualquer coisa só falar Happy
avatar
Data de inscrição : 05/03/2013
Número de Mensagens : 64
Insígnias de JAM :

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

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

Re: Movimentação em um jogo de plataforma endless run

em Sab 04 Jan 2014, 16:34
Galera eu consegui fazer o personagem andar sem parar como eu queria, mas agora estou com dificudade de fazer o personagem pular e trocar as sprites... alguem poderia me ajudar??? Estou usando o hspeed
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