TiagoBonadio
Outro Maker
Postagens : 48 Data de inscrição : 14/11/2009 Localização : Sales Oliveira - SP Emprego/lazer : Estudante 8° Ano Mensagem Pessoal : Varia com o tempo
| Assunto: [GAME MAKER]Aula 3 - Começando um jogo [Parte 1] Seg Nov 16, 2009 7:27 pm | |
| Bom vamos começando mais uma aula e nessa vou começar a ensinar a fzer um jogo estilo plataforma. Usarei nesta aula uma sprite muito conhecida: (saiba que no GM a cor de fundo não importa, desde que seja somente uma)
Bom a primeira coisa a se fazer é: Como eu disse o inicio de um jogo deve-se primeiro planejar, desenvolver uma historia, reunir as imagens, sons, informações, etc. Depois disso, ai sim começamos um jogo. mais primeiro temos que criar um objeto, é ele em que vamos colocar os codigos e ações, ou seja, onde vamos interagir. Bom adicionar um objeto é o mesmo que para sprites, backgorunds, etc. vá na pasta Objects, clique com o bt_direito e então Create Object. Abrirá uma janela assim: Bom mais de nada serve isso se não adicionarmos umas sprites: Vamos adicionar o Mario.Configure desta forma: Ficará desta forma: Nomeie o sprite de: spr_mario_esq.esq = abreviamento para esqueda, Ah! e não se esqueça de marcar o centro. Clique com o bt_direito em cima do sprite e clique em duplicate, nomeie este de spr_mario_dir. Mais vc vai perguntar : pq dir(direita)? porque vamos inverter ela. faça da seguinte forma: Clique em Edit Sprite > Transform > Mirror Horizontal.: Bom pessoal, voltando ao objeto, nomeie-o de obj_mario e em sprite, adicione a sprite do mario para a direita(pode ser esquerda tbm): Agora vamos a movimentação basica, vou ensinar de dois modos, D&D ou GML. D&D(Drag & Drop) é as funções de clicar e arrastar e GML e game maker language. Bom primeiro adicione um evento: vá em Add Event > Key Press > Left: Depois faça isso novamente, so que desta vez Key Press > Right. Irá aparecer na coluna Events: press e press, clique em Left. Para adicionar as actions temos as funções classificadas nas abas laterais do GM.
vamos usar apenas duas abas para o movimento e troca de sprite: Move e Main1. Primeiro a aba Move. <<
Podemos Observer que tem a opção relative, se marcarmos ela, ele vai acelerando a cada clique no botão. então deixe-a desmarcada. Agora vamos fazer com que ele mude de sprite: Va na aba Main1 e clique na função change sprite:. Como o nome ja diz ela muda de sprite. deixamos assim:
Em sprite você escolhe a sprite desejada para mudar. Em subimage vc coloca em qual subimagem vai ficar (0 ele roda a animação). E por ultimo speed define a velocidade da animação. Clique em ok. Agora faça a mesma coisa com o Right mais mudando a "seta" para direita e o spr_mario_esq para spr_mario_dir.
Bom vamos testar a animação, adicionemos uma room que é onde colocamos os objetos, resumindo, onde ocorre tudo. para adicionar clique com o bt_direito na pasta Rooms e depois, Create Room. Vai aparecer uma tela como esta:
clique em qualquer lugar do espaço em "cinza", você irá adicionar o obj_mario:
De Ok, no menu superior da janela Room Properties e clique em Run the Game.
- Você vai reparar que ele não para, para isso adicionemos outro evento dessa ves Add Event > Keyboard > No Key:
Desta vez marque a opção central e velocidade 0:
Outro defeito é que ele parado a imagem continua então colocamos um script em GML (A unica parte). Va na aba Control e adicione um Execute Code: . e escreva: - Código:
-
image_speed = 0
Bom, ja no GML, vamos precisar de somente uma ação, um execute code. e não é nessessário usar um Event de Key Press, tudo isso será feito no codigo.
Bom vamos deixar os events do obj_mario em branco e adicionar um step, ha 3 tipos, step, begin step e end step; vamos ficar com o step. Apartir de agora, teremos menos imagens e mais codigos simplesmente pq é muito mais eficiente usar GML do q D&D.
Agora adicione um Execute Code e digite isso. depois explico:
- Código:
-
if (keyboard_check(vk_right)){//verifica se a seta direita foi apertada hspeed = 5 }else{// se não foi if (keyboard_check(vk_left)){ //verifica se a seta esquerda foi apertada hspeed = -5 }else{// se não foi hspeed = 0 } }
- keyboard_check(vk_left) = checa se está apertado alguma letra. O vk_left pode ser mudado.
- hspeed = velocidade na horizontal, vspeed = vel. na vertical.
Outras vars vou explicar em outra aula.
Bom esse code é suficiente para fazer ele andar mais não para mudar de sprite. Vamos modificar então: - Código:
-
if (keyboard_check(vk_right)){//verifica se a seta direita foi apertada hspeed = 5 sprite_index = spr_mario_dir }else{// se não foi if (keyboard_check(vk_left)){ //verifica se a seta esquerda foi apertada hspeed = -5 sprite_index = spr_mario_esq }else{// se não foi hspeed = 0 } } - O comando sprite_index modifica a sprite usada
Bom mais ainda falta uma coisa a imagem está rapida, para modificarmos vamos adicionar um evento create.
Adicionamos um Execute Code e digitamos: - Código:
-
image_speed = 0.25 agora para a imagem parar quando não apertamos um botão, fazemos a ultima modificação do code: - Código:
-
if (keyboard_check(vk_right)){//verifica se a seta direita foi apertada hspeed = 5 sprite_index = spr_mario_dir }else{// se não foi if (keyboard_check(vk_left)){ //verifica se a seta esquerda foi apertada hspeed = -5 sprite_index = spr_mario_esq }else{// se não foi hspeed = 0 image_index = 1 } } - image_index, define a sub imagem a ser mostrada. 0 roda a animação.
Bom pessoal chegamos ao fim de mais uma aula e a proxima é sobre variaveis. Até lá! |
|