Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.



 
InícioPortalGML - 3ª Lição BlogRegistarÚltimas imagensGML - 3ª Lição Orkut10RegrasEntrar

 

 GML - 3ª Lição

Ir para baixo 
AutorMensagem
Legolas
Moderador-Global
Moderador-Global
Legolas


Masculino Número de Mensagens : 119
Warning : 0%
Premios : GML - 3ª Lição Trophy10: 0
GML - 3ª Lição Trophy11: 0
GML - 3ª Lição Trophy12: 0
Habilidade 1 : GML - 3ª Lição Rpgm10
Habilidade 2 : GML - 3ª Lição Webm10

GML - 3ª Lição Empty
MensagemAssunto: GML - 3ª Lição   GML - 3ª Lição Icon_minitimeTer Ago 11, 2009 2:25 pm

Autor:João Neto
Eu não tenho visto muito "interesse" nas lições de GML. Eu sei, RMXP é mais fácil e tal. Eu não cheguei onde eu cheguei hoje programando no mais fácil. então se você quer crescer, é com as coisas difíceis que nosso aprendizado evolui, lembre-se disso.

Nesta lição, eu demostrarei alguns comandos simples, mas que se torna escencial na criação de jogos, principalmente de plataforma e RPG. Todo cenário precisa de 2 coisas básicas: Limites e Obstáculos.

Mas como assim??
Imagine um jogo de RPG. A maioria deles começa dentro de uma casa. Imagine os móveis desta casa, suas paredes, as pessoas dentro dela. Para você, são objetos, mas para a programação, são obstáculos os quais o personagem não pode transpor, por serem sólidos.
Você já jogou Megaman?? Imagine porque o Megaman fica de pé sobre uma plataforma, mas cai quando pula sobre um buraco. Neste caso, o Limite para que o Megaman não caia é o chão ou as plataformas.
Hoje aprenderemos sobre alguns dos comandos mais básicos e mais úteis na criação de cenários e objetos do GML.
O comando place_free(x,y) retorna um booleando(true,false) quando verificado sobre o posicionamento de um objeto(no nosso caso o personagem) em relação a qualquer outro que estiver no cenário. Este comando é muito usado em Ias (Inteligência artificial) para validar a posição dos objetos e se eles podem passar ou não na posição informada. Vamos usá-lo na prática. Abra o projeto da lição anterior. Iremos complementá-lo, pois ele já possui o básico que precisamos.

STEP 1 – CRIANDO O OBSTÁCULO.

Desta vez criaremos um sprite usando uma imagem externa. Crie um novo sprite e clique em Load Sprite, você será direcionado para a pasta de resources do GM. Dentro da pasta Maze selecione a imagem Wall.gif. Centralize a origem, selecione a opção Full Image e nomeie-o como Muro.

GML - 3ª Lição C1hx9

Agora crie um objeto, Nomeie-o como Parede, selecione nele o Sprite e o Mask o sprite Muro.

GML - 3ª Lição C2wc4

Nosso obstáculo já está criado. Em primeira instancia, ele não precisará ter nenhum evento ou código.

STEP 2 – ALTERANDO O CÓDIGO

Vamos mudar agora o código de movimentação do nosso “personagem”. Abra o Script Setas, remova seu conteúdo e coloque este:


if(keyboard_check(vk_left))
{if(place_free(Caixa.x-5,Caixa.y))
{Caixa.x -= 5;}}
if(keyboard_check(vk_right))
{if(place_free(Caixa.x+5,Caixa.y))
{Caixa.x += 5;}}
if(keyboard_check(vk_up))
{if(place_free(Caixa.x,Caixa.y-5))
{Caixa.y -= 5;}}
if(keyboard_check(vk_down))
{if(place_free(Caixa.x,Caixa.y+5))
{Caixa.y += 5;}}

O que fizemos aqui??
Observe que, em cada verificação de tecla, adicionamos uma verificação usando o comando place_free, observe também que os parâmetros passados são exatamente os que farão com que o objeto se mova. Para verificarmos se deu certo, abra a Room, selecione o objeto parede e monte um cenário como este:

GML - 3ª Lição C3by4

Salve e rode. Agora movimente o “personagem”. Observe que ele não passa pelos blocos, o que mostra que nosso script funcionou perfeitamente. Isto nos mostra que, usando o comando place_free, podemos validar o posicionamento de qualquer objeto no jogo. Existem outras funções que validam o posicionamento, como o place_empty(x,y), que verifica se a posição passada como parametro está vazia(o place_free valida a mesma coisa, mas também valida colisão) e o place_meeting(x,y,obj) que valida se o objeto passado como parâmetro está na posição passada.

Na próxima lição eu falarei sobre colisão e velocidade de movimento, aguardem.
Ir para o topo Ir para baixo
 
GML - 3ª Lição
Ir para o topo 
Página 1 de 1
 Tópicos semelhantes
-
» GML - 1ª Lição
» GML - 2ª Lição
» GML - Lição Extra

Permissões neste sub-fórumNão podes responder a tópicos
 :: Makers :: GameMaker :: Tutoriais -
Ir para: