Entrar
Últimos assuntos
» player não consegue andarpor 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
#IAJ Aula 01 - Movimentação Top Down
+4
Pit Bull
Geison Barillo
Viitor03
All-x
8 participantes
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
#IAJ Aula 01 - Movimentação Top Down
INTRODUÇÃO A JOGOS
Aula 01 - Movimentação Top Down
(Atualizado 08/02/2015)
Depois de estudar muito, vamos começar a fazer nosso primeiro jogo. Mas antes de começar realmente, você precisa entender o que é x, o que é y e o que é posição absoluta e posição relativa.
X: é a posição horizontal de algum elemento.
Y: é a posição vertical de algum elemento. OBS: na matemática que nós estudamos quando um elemento esta para cima o y é positivo e quando esta para baixo é negativo. Na computação isso é invertido, em cima é negativo e embaixo é positivo.
Posição absoluta:
A posição absoluta são as posições x e y em relação à room.
Exemplo: vamos criar um objeto na posição x 10 e y 10 na room:
- Código:
instance_create(10, 10, obj)
Posição relativa:
A posição relativa é a posição x e y em relação à outro número.
Exemplo: vamos criar um objeto na posição x+10 e y+10 no objeto que o criou:
- Código:
instance_create(x+10, y+10, obj)
O x e o y presentes no código são as posições do objeto na room, em que o código foi colocado. Ou seja se o x do objeto na room é 32 é como se fosse 32+10.
Começando a movimentar:
Antes de tudo baixe esta engine:
Guarde essa engine, usaremos ela nas próximas aulas.
Depois de baixar vamos começar a mover nosso player. Vamos ao step do player. Coloque o seguinte código:
- Código:
//direita
if keyboard_check(vk_right)
{
sprite_index = direita
if place_free(x+4, y){x += 4}
}
Saiba mais sobre a função place_free, no tutorial abaixo:
Colisões simples
Tradução:
- Código:
//direita
se tecla_estiver_sendo_pressionada(tecla_direita)
{
sprite=direita
se estiver_livre_de_colisão_com_sólidos(x+4,y){andará 4 pixels à direita x+=4}
}
- A função keyboard_check, verifica se alguma tecla esta sendo pressionada constantemente.
- A variável local sprite_index, muda a sprite do objeto.
- A função place_free, verifica se tais posições x e y estão livres de colisões com objetos sólidos.
- A variável x guarda a posição horizontal do objeto em relação a room. e usamos a operação matemática de adição para move-lo para direita.
Se entendeu bem como funciona as posições x e y, não será problema fazer as outras movimentações. Então o código final do step será este:
- Código:
//direita
if keyboard_check(vk_right)
{
sprite_index=direita
if place_free(x+4,y){x+=4}
}
//esquerda
if keyboard_check(vk_left)
{
sprite_index=esquerda
if place_free(x-4,y){x-=4}
}
//cima
if keyboard_check(vk_up)
{
sprite_index=cima
if place_free(x,y-4){y-=4}
}
//baixo
if keyboard_check(vk_down)
{
sprite_index=baixo
if place_free(x,y+4){y+=4}
}
Engine completa:
Agora entenda algo muito importante, o valor adicionado nas posições x e y é 4, pois ele é múltiplo de 32, que é a grade da room e a largura e altura de seus objetos. Tente mudar todos esse 4 para 5, dificilmente você passará nos cantos estreitos do jogo. Mas porque? Por que as mudanças de posição são como tele transportes, e como ele esta checando sempre o que esta em colisão ele pode parar um pouco antes do previsto. Mude todos esses 4 para 32, que você entenderá melhor o que eu quiz dizer com tele transporte.
Mas aí tu me pergunta: Não poderei usar outros valores além desse múltiplos?
Pode sim. Só teríamos que mudar nosso código usando um loop repeat:
- Código:
//direita
if keyboard_check(vk_right)
{
sprite_index=direita
repeat(7)
{
if place_free(x+1,y){x+=1}
}
}
Repare que mudamos o valor de 4 para 1, logo ele teria velocidade 1. Mas o loop repeat ocorre 7 vezes, então no mesmo frame (step) o repeat faz nossa expressão ocorrer 7 vezes (Ou seja, velocidade vai ser 7). Assim temos uma checagem de colisão perfeita que checa pixel por pixel não importando o número de vezes que ocorra. Isso chama-se pixel perfect.
Mais sobre o loop repeat na aula abaixo:
#IEM Aula 06 - For, do, until e repeat
Até mais!!!
Próxima aula: tiro Top Down
FLWS!
Última edição por Alex FC em Seg 09 Fev 2015, 19:41, editado 21 vez(es) (Motivo da edição : Atualização)
Perfeito! =D
Ótimoo! xD
na verdade, eu já tinha feito movimentação antes.
Mas tbm testei a movimentação do teu tutorial , e tá excelente!
Movimentação é uma coisa mto fácil.
na verdade, eu já tinha feito movimentação antes.
Mas tbm testei a movimentação do teu tutorial , e tá excelente!
Movimentação é uma coisa mto fácil.
Re: #IAJ Aula 01 - Movimentação Top Down
Ola senhor
Tentei baixar esta engine mais ao clicar no DOWNLOAD ENGINE apágina não é encontrada.Alguma sujestão?Obrigado
Tentei baixar esta engine mais ao clicar no DOWNLOAD ENGINE apágina não é encontrada.Alguma sujestão?Obrigado
Re: #IAJ Aula 01 - Movimentação Top Down
Aqui ta funcionando tranquilo.
copie e cole no navegador
copie e cole no navegador
- Código:
http://www.fileden.com/files/2009/5/31/2462226/engine_movimenta%C3%A7%C3%A3o_td.gmk
Re: #IAJ Aula 01 - Movimentação Top Down
Geison Barillo tome cuidado em postar nos tópicos, veja a data do ultimo post, pois alguns tópicos não podem ser revivido se você não for o autor do mesmo, acarretando perda da sua warning se você continuar revivendo outros tópicos
Em todo o caso, você pode mandar um MP para o dono do tópico.
Sugiro que leias as regras para não cometer infrações que desconheça.
Em todo o caso, você pode mandar um MP para o dono do tópico.
Sugiro que leias as regras para não cometer infrações que desconheça.
Re: #IAJ Aula 01 - Movimentação Top Down
Y: é a posição vertical de algum elemento. OBS: na matemática que nós estudamos quando um elemento esta para cima o y é positivo e quando esta para baixo é negativo. No Game Maker isso é invertido, encima é positivo e embaixo é negativo.
ih num eh a mesma coisa?
Alias bom tuto!
Jimkim000- Data de inscrição : 25/07/2009
Reputação : 0
Número de Mensagens : 103
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: #IAJ Aula 01 - Movimentação Top Down
Aula atualizada - 20/10/12:
- Melhora na grafia e explicação;
- Atualização das engines.
Ps: As próximas aulas serão atualizadas em breve.
FLWS!
- Melhora na grafia e explicação;
- Atualização das engines.
Ps: As próximas aulas serão atualizadas em breve.
FLWS!
Re: #IAJ Aula 01 - Movimentação Top Down
Tem algum comando ou de alguma forma proibir o comando de uma tecla? Por exemplo, eu quero que quando eu clicar no "V" não possa clicar no "W", alguém entendeu? Se entendeu sabe como?
manobrother- Data de inscrição : 31/10/2013
Reputação : 10
Número de Mensagens : 206
Prêmios :
x 0 x 0 x 0
x 0 x 1 x 0
x 0 x 0 x 0
Re: #IAJ Aula 01 - Movimentação Top Down
Amigo, use true e false. Excelente para esses casos.
WellingtonBecker- Games Ranking :
Notas recebidas : D
Data de inscrição : 09/05/2013
Reputação : 105
Número de Mensagens : 824
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Tópicos semelhantes
» Criando jogos Unity 3d Aula 3-Movimentação
» [Vídeo-Aula]Aula 4.1 - Usando funções básicas do draw
» Aula 3 - Puzzle - Todas os Modos da Aula 3 Aqui!
» [Vídeo-Aula] Aula 4 - Variáveis
» Movimentação em 3d
» [Vídeo-Aula]Aula 4.1 - Usando funções básicas do draw
» Aula 3 - Puzzle - Todas os Modos da Aula 3 Aqui!
» [Vídeo-Aula] Aula 4 - Variáveis
» Movimentação em 3d
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos