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
» player não consegue andar
por 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

Ir para baixo

#IAJ Aula 01 - Movimentação Top Down Empty #IAJ Aula 01 - Movimentação Top Down

Mensagem por All-x Qui 31 Dez 2009, 20:44

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.

#IAJ Aula 01 - Movimentação Top Down 01

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)
All-x
All-x

Games Ranking : Nota A

Notas recebidas : B A
Data de inscrição : 20/12/2008
Reputação : 189
Número de Mensagens : 2571
Prêmios : #IAJ Aula 01 - Movimentação Top Down Empty

Medalhas x 0 Tutoriais x 25 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Javascript
  • C ou C++


https://redscreensoft.com

Ir para o topo Ir para baixo

#IAJ Aula 01 - Movimentação Top Down Empty Perfeito! =D

Mensagem por Viitor03 Ter 29 Mar 2011, 22:34

Ótimoo! xD
na verdade, eu já tinha feito movimentação antes.
Mas tbm testei a movimentação do teu tutorial , e tá excelente! Very Happy
Movimentação é uma coisa mto fácil. Razz
Viitor03
Viitor03

Data de inscrição : 14/03/2011
Reputação : 3
Número de Mensagens : 16
Prêmios : #IAJ Aula 01 - Movimentação Top Down 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://www.orkut.com.br/Main#Profile?rl=mp&uid=1309301610595

Ir para o topo Ir para baixo

#IAJ Aula 01 - Movimentação Top Down Empty Re: #IAJ Aula 01 - Movimentação Top Down

Mensagem por Geison Barillo Sex 30 Set 2011, 20:14

Ola senhor
Tentei baixar esta engine mais ao clicar no DOWNLOAD ENGINE apágina não é encontrada.Alguma sujestão?Obrigado
Geison Barillo
Geison Barillo

Data de inscrição : 25/09/2011
Reputação : 1
Número de Mensagens : 9
Prêmios : #IAJ Aula 01 - Movimentação Top Down 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:// geison-gamedesign.blogspot.com

Ir para o topo Ir para baixo

#IAJ Aula 01 - Movimentação Top Down Empty Re: #IAJ Aula 01 - Movimentação Top Down

Mensagem por Pit Bull Sex 30 Set 2011, 20:23

Aqui ta funcionando tranquilo.
copie e cole no navegador
Código:
http://www.fileden.com/files/2009/5/31/2462226/engine_movimenta%C3%A7%C3%A3o_td.gmk
Pit Bull
Pit Bull

Data de inscrição : 31/08/2010
Reputação : 16
Número de Mensagens : 646
Prêmios : #IAJ Aula 01 - Movimentação Top Down 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
Plataformas :
  • Unity
  • C#
  • Outros


https://discord.gg/ZPM2d6q

Ir para o topo Ir para baixo

#IAJ Aula 01 - Movimentação Top Down Empty Re: #IAJ Aula 01 - Movimentação Top Down

Mensagem por Joton Sex 30 Set 2011, 20:36

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.
Joton
Joton

Games Ranking : Nota B

Notas recebidas : A+B+C
Data de inscrição : 25/07/2010
Reputação : 5
Número de Mensagens : 868
Prêmios : #IAJ Aula 01 - Movimentação Top Down Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 2 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker Studio 1.4
  • Unity
  • Javascript


http://jotonsn.blogspot.com/

Ir para o topo Ir para baixo

#IAJ Aula 01 - Movimentação Top Down Empty Re: #IAJ Aula 01 - Movimentação Top Down

Mensagem por Jimkim000 Qua 07 Dez 2011, 19:04

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
Jimkim000

Data de inscrição : 25/07/2009
Reputação : 0
Número de Mensagens : 103
Prêmios : #IAJ Aula 01 - Movimentação Top Down 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

#IAJ Aula 01 - Movimentação Top Down Empty Re: #IAJ Aula 01 - Movimentação Top Down

Mensagem por All-x Sáb 20 Out 2012, 23:33

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!
All-x
All-x

Games Ranking : Nota A

Notas recebidas : B A
Data de inscrição : 20/12/2008
Reputação : 189
Número de Mensagens : 2571
Prêmios : #IAJ Aula 01 - Movimentação Top Down Empty

Medalhas x 0 Tutoriais x 25 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Javascript
  • C ou C++


https://redscreensoft.com

Ir para o topo Ir para baixo

#IAJ Aula 01 - Movimentação Top Down Empty Re: #IAJ Aula 01 - Movimentação Top Down

Mensagem por manobrother Ter 25 Fev 2014, 17:04

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
manobrother

Data de inscrição : 31/10/2013
Reputação : 10
Número de Mensagens : 206
Prêmios : #IAJ Aula 01 - Movimentação Top Down Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 1 Bronze x 0

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

Ir para o topo Ir para baixo

#IAJ Aula 01 - Movimentação Top Down Empty Re: #IAJ Aula 01 - Movimentação Top Down

Mensagem por WellingtonBecker Ter 25 Fev 2014, 20:07

Amigo, use true e false. Excelente para esses casos.
WellingtonBecker
WellingtonBecker

Games Ranking : Nota D

Notas recebidas : D
Data de inscrição : 09/05/2013
Reputação : 105
Número de Mensagens : 824
Prêmios : #IAJ Aula 01 - Movimentação Top Down 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

#IAJ Aula 01 - Movimentação Top Down Empty Re: #IAJ Aula 01 - Movimentação Top Down

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

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