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
» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Retorno da GMBR!!!
por vinians Qui 14 Mar 2024, 19:07

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Mudar cor de apenas uma palavra
por lunalol Sex 01 Mar 2024, 13:42

» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17

» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18

» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34

» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12

» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02

» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55

» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21

» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21

» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39

» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16

» a funçao approach ainda existe?
por PEDRINDEV Ter 26 Dez 2023, 20:05

» Inimigo ataca até por trás! >:(
por saim Sex 22 Dez 2023, 08:55

» [RESOLVIDO]Spawn após morte
por Deception_1999 Dom 17 Dez 2023, 16:39

» Remunerado $$$ - Procuro programador para ajudar a "montar" um jogo
por theguitarmester Sáb 02 Dez 2023, 16:28

» Game maker nao abre
por Cerf Dom 26 Nov 2023, 12:01


Movimento em Grid

2 participantes

Ir para baixo

Movimento em Grid Empty Movimento em Grid

Mensagem por Chaos Theory Sáb 16 Jul 2011, 00:44

Movimentação em Grid

Versão: GM 8.
Dificuldade: Iniciante.
Assunto: Movimentação respeitando uma grid.
Aplicação: Muitos estilos de jogos necessitam de uma movimentação mais precisa tanto para tornar a jogabilidade melhor quanto para poder tornar certos sistemas possíveis.

Gráficos:

Decidi usar os gráficos do char básico do GM 8:
Movimento em Grid Explorerupstrip8
Movimento em Grid Explorerrightstrip8
Movimento em Grid Explorerleftstrip8
Movimento em Grid Explorerdownstrip8

Para deixar o projeto um pouco mais apresentável, usei como background o gráfico:
Movimento em Grid Plants

Scripts

move
Primeiro vamos carregar em variáveis aquilo que é necessário para o funcionamento do script:
Código:
g_dir = c_dir;
g_esq = c_esq;
g_cima = c_cima;
g_baixo = c_baixo;
   
m_dir = keyboard_check(vk_right);
m_esq = keyboard_check(vk_left);
m_cima = keyboard_check(vk_up);
m_baixo = keyboard_check(vk_down);
   
vlc = 4;
   
pos = place_snapped(32,32);
Nessa parte do script definimos: gráficos do char (1º grupo), teclas de movimento (2º grupo), velocidade de movimento e parâmetros de largura e altura da grid. Todas as funções aderem a variável um valor de 0 ou 1 para poderão ser analisadas nas condicionais de forma mais resumida, exemplificando o código.

Agora fazemos uso das variáveis anteriormente definidas nas duas estruturas condicionais "if" principais:
Código:
if(pos and !(m_dir or m_cima or m_esq or m_baixo)){
        vspeed = 0;
        hspeed = 0;
        image_speed = 0;
        image_index = 0; } else { image_speed = vlc/10; }
   
    if(pos){
        if(m_dir  ){ motion_set(000,vlc); sprite_index = g_dir  ; }
        if(m_cima ){ motion_set(090,vlc); sprite_index = g_cima ; }
        if(m_esq  ){ motion_set(180,vlc); sprite_index = g_esq  ; }
        if(m_baixo){ motion_set(270,vlc); sprite_index = g_baixo; }}
O objetivo da grid é definir um movimento padrão para o character cobrindo determinado espaço em determinado tempo. Nesse caso, na primeira estrutura conferimos se objeto do char está enquadrado (pos) juntamente com a inutilização de todas as teclas de movimento (m_dir or m_cima or m_esq or m_baixo). O sinal "!" equivale a um not. Se tudo confere na primeira condicional, o objeto é parado (vspeed e hspeed) e o gráfico do char passa a ser o 0, que de forma padrão é o gráfico do char parado.

A segunda condicional gera o movimento conforme a tecla pressionada conferindo o enquadramento, o que impede o aumento excessivo de velocidade de movimento ou quebra do enquadramento. Nas subcondiconais é executado o movimento por motion_set que torna o trabalho mais simples juntamente com a troca de gráfico do char que recebe vida com o else da primeira condicional principal.

Objetos

obj_char
Defina o gráfico dele como quiser e em seu evento step execute o script move.
Movimento em Grid Grid32x32room

Rooms

room0
Posicione o objeto obj_char de forma que ele fique enquadrado em 32x32 pixels, caso contrário o script não surgirá efeito.
Movimento em Grid Grid32x32room

Execute!

Agora o seu personagem se move de forma padrão numa grade 32x32 pixels. Futuramente criarei outros tutoriais que usarão esse tipo de movimento em pro de outras funções para mostrar melhor sua funcionalidade.
Movimento em Grid Grid32x32room

Engine

Para aqueles que quiserem, segue o link para download da engine desse tutorial:
http://www.4shared.com/file/5_O4mqF5/movimentao_em_grid.html

Espero que tenham gostado do tutorial. Qualquer dúvida, estamos aí.
Chaos Theory
Chaos Theory

Data de inscrição : 24/06/2011
Reputação : 0
Número de Mensagens : 9
Prêmios : Movimento em Grid 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

Movimento em Grid Empty Re: Movimento em Grid

Mensagem por Ufrarion Qua 03 Ago 2011, 04:57

Ficou perfeito esse tuto! muito bem explicado e formatado continue assim!

Obs: Tu podia botar pelo menos uma indicação de tutorial de como dividir a imagem o char, ja que o tuto e direcionado aos iniciante
Ufrarion
Ufrarion

Data de inscrição : 06/06/2010
Reputação : 3
Número de Mensagens : 222
Prêmios : Movimento em Grid 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

Ir para o topo

- Tópicos semelhantes

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