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


[Tutorial]-Primeiro jogo com GML (Aula 01)

3 participantes

Ir para baixo

[Tutorial]-Primeiro jogo com GML (Aula 01) Empty [Tutorial]-Primeiro jogo com GML (Aula 01)

Mensagem por glasdou Qui 02 Jan 2014, 21:19


  • Título: Primeiro jogo com GML (Aula 01)
  • Versão do GM: Game Maker Studio(qualquer versão)
  • Dificuldade: iniciante
  • Link para download da Engine: [Download]Engine
  • Link para download dos Recursos: [Download]Recursos
  • Requer Extensões: Não
  • Requer DLLs: Não
  • Tags: Tutorial-Game-Maker-Studio-Primeiro-Jogo-Plataforma.





Olá gente bonita!O Puxa Saco!!
Hoje vim trazer um tutorial para iniciantes, é sobre como criar um jogo de plataforma com GML.
Bom chega de papo e vamos ao trabalho. O mandão

Esta é a primeira aula, então vai ser bem simples.

1° Abra o GMS, crie um novo projeto e dê o nome de Primeiro Jogo(opcional)
depois clique no botão Create a Sprite [Tutorial]-Primeiro jogo com GML (Aula 01) Bb46,vá até a pasta recursos (que você faz download logo acima),sprites, maze-platform e procure a sprite "explorer_right_strip8", dê o nome de spr_explorador.
Agora faça a mesma coisa mas dessa vez a sprite vai ser a "explorer_jumpright" e o nome vai ser spr_no_ar.
agora abra novamente a spr_explorador e coloque a origem em 16x31 (x = 16, y = 31),clique em modify mask [Tutorial]-Primeiro jogo com GML (Aula 01) Tnat e depois em full image [Tutorial]-Primeiro jogo com GML (Aula 01) G8bk
faça a mesma coisa para a spr_no_ar
logo apos crie  uma sprite translucida, eu fiz esta [Tutorial]-Primeiro jogo com GML (Aula 01) Qzm7, e dê o nome  de spr_bloco.
pronto terminamos...
o que? ja terminamos?
...com as sprites. hehe

agora vamos criar os objetos.
clique em Create an object [Tutorial]-Primeiro jogo com GML (Aula 01) Qwig, dê o nome de  obj_explorador e coloque a sprite spr_explorador, agora vamos programar ele.
No evento create coloque o seguinte codigo
Código:
///variaveis
pulo = 1  //variavel que controla os pulos
depois no evento step coloque este codigo
Código:
///código step
//gravidade
if place_free(x,y + 4){ // se o explorador estiver no ar
    gravity  = 1 //tem gravidade
    sprite_index = spr_no_ar // o sprite é o spr_no_ar
}
else{  //se não
    gravity = 0 //não tem gravidade
    pulo = 1
   sprite_index = spr_explorador //o sprite é o spr_explorador
}
//movimentos
if place_free(x + 4,y) and keyboard_check(ord("D")){ //se estiver desocupado a posiçao 4 pixels a direita do explorador e a tecla "D" estiver pressionada...
        x += 4 //...o explorador se move 4 pixels para a direita
        image_xscale = 1 //o sprite esta virado para a direita
}
else if place_free(x - 4,y) and keyboard_check(ord("A")){ //se estiver desocupado a posiçao 4 pixels a esquerda do explorador e a tecla "A" estiver pressionada...
        x -= 4 //...o explorador se move 4 pixels para a esquerda
        image_xscale = -1 //o sprite esta virado para a esquerda
}
else { // se não
    image_index = 0 // se nao estiver pressionada nenhuma tecla o explorador para de mover os pés
}

//pulo
if keyboard_check_pressed(ord('W'))and (pulo <= 2){ // se estiver presionada a tecla "W" e o explorador deu menos de 2 pulos...
    vspeed = -12 //o explorador pula
    pulo += 1 //e registra que ele deu mais 1 pulo
}
a função place_free() checa se determinado lugar esta desocupado.


a função keyboard_check() checa se alguma tecla(Key) esta sendo pressionada ex: enquanto você presionar "D" o explorador vai ficar andando, quando voce soltar ele para.


e a função keyboard_check_pressed() checa apenas se uma tecla(key) foi pressionada, e não se esta sendo pressionada ex:se você ficar pressionando a tecla "W" o explorador vai pular apenas 1 vez, mas se você pressionar,soltar e voltar a pressionar ele vai pular 2 vezes.

agora vamos criar um objeto chamado obj_bloco, a sprite dele vai ser a spr_bloco(a sprite translucida que criamos anteriormente),coloque ele como sólido e pronto.


volte ao obj_explorador, adicione um evento collision com obj_bloco e coloque o seguinte codigo
Código:
///código collision
move_contact_solid(direction,12) //evita um bug(uma travada estilo "escadinha")
vspeed = 0
a função move_contact_solid() faz com que o obj_explorador retorne pra posição 12 pixels antes de ocorrer a colisão com o obj_bloco evitando um bug sinistro ,retire ela se quiser saber qual é o bug.


crie uma room, encha de blocos, coloque o obj_explorador no centro dela e teste.


eu  fiz esta [Tutorial]-Primeiro jogo com GML (Aula 01) D2ok


até a proxima aula 


Abraços
glasdou
glasdou

Data de inscrição : 21/11/2013
Reputação : 3
Número de Mensagens : 95
Prêmios : [Tutorial]-Primeiro jogo com GML (Aula 01) 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

[Tutorial]-Primeiro jogo com GML (Aula 01) Empty Re: [Tutorial]-Primeiro jogo com GML (Aula 01)

Mensagem por fredcobain Qua 15 Jan 2014, 10:34

Bem explicado. Bem comentado. Aprovado!
fredcobain
fredcobain

Games Ranking : Sem avaliações

Data de inscrição : 14/04/2011
Reputação : 163
Número de Mensagens : 692
Prêmios : [Tutorial]-Primeiro jogo com GML (Aula 01) Empty

Medalhas x 0 Tutoriais x 3 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

[Tutorial]-Primeiro jogo com GML (Aula 01) Empty Re: [Tutorial]-Primeiro jogo com GML (Aula 01)

Mensagem por vitorfernandes13 Qua 15 Jan 2014, 12:27

Olá parabéns pelo tutorial, se ate eu entendi (quase tudo) qualquer um entendi  Razz , pf não pare, estou começando a aprender o Game Maker, mas, tenho algumas dúvidas, eu não encontrei esse negócio de origem, e modify mask, vc poderia me mostrar com imagem onde se encontra?? :3

Eu não entendi o por quê de criar a variável pulo, e usá-la no else no código abaixo  Suspect 

agora abra novamente a spr_explorador e coloque a origem em 16x31 (x = 16, y = 31),clique em modify mask [Tutorial]-Primeiro jogo com GML (Aula 01) Tnat e depois em full image [Tutorial]-Primeiro jogo com GML (Aula 01) G8bk
faça a mesma coisa para a spr_no_ar
logo apos crie  uma sprite translucida, eu fiz esta [Tutorial]-Primeiro jogo com GML (Aula 01) Qzm7, e dê o nome  de spr_bloco.
pronto terminamos...
o que? ja terminamos?
...com as sprites. hehe


Código:
///código step
//gravidade
if place_free(x,y + 4){ // se o explorador estiver no ar
    gravity  = 1 //tem gravidade
    sprite_index = spr_no_ar // o sprite é o spr_no_ar
}
else{  //se não
    gravity = 0 //não tem gravidade
    pulo = 1
   sprite_index = spr_explorador //o sprite é o spr_explorador
}
//movimentos
if place_free(x + 4,y) and keyboard_check(ord("D")){ //se estiver desocupado a posiçao 4 pixels a direita do explorador e a tecla "D" estiver pressionada...
        x += 4 //...o explorador se move 4 pixels para a direita
        image_xscale = 1 //o sprite esta virado para a direita
}
else if place_free(x - 4,y) and keyboard_check(ord("A")){ //se estiver desocupado a posiçao 4 pixels a esquerda do explorador e a tecla "A" estiver pressionada...
        x -= 4 //...o explorador se move 4 pixels para a esquerda
        image_xscale = -1 //o sprite esta virado para a esquerda
}
else { // se não
    image_index = 0 // se nao estiver pressionada nenhuma tecla o explorador para de mover os pés
}
E eu poderia fazer o código da gravidade assim??

Código:

//gravidade
if place_free(x,y + 4){ // se o explorador estiver no ar
    y + 4 //ele poderá pular
    gravity  = 1 //tem gravidade
    sprite_index = spr_no_ar // o sprite é o spr_no_ar
}
else{  //se não
    gravity = 0 //não tem gravidade
    pulo = 1
   sprite_index = spr_explorador //o sprite é o spr_explorador
}
E pela minha lógica o explorador so poderia pular 2 vezes, porque fala que se pulo for menor ou igual a 2, a variável pulo receberá mais um, ou seja ficará pulo = 2 e se o explorador pular de novo ficará pulo = 3 sendo assim, ele não poderia pular de novo... Razz


Código:

//pulo
if keyboard_check_pressed(ord('W'))and (pulo <= 2){ // se estiver presionada a tecla "W" e o explorador deu menos de 2 pulos...
    vspeed = -12 //o explorador pula
    pulo += 1 //e registra que ele deu mais 1 pulo
}

E, apenas uma confirmação, você colocou gravity = 1, quando ele está pulando para que a gravidade o puxe para baixo??
vitorfernandes13
vitorfernandes13

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 11/01/2014
Reputação : 11
Número de Mensagens : 284
Prêmios : [Tutorial]-Primeiro jogo com GML (Aula 01) 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

[Tutorial]-Primeiro jogo com GML (Aula 01) Empty Re: [Tutorial]-Primeiro jogo com GML (Aula 01)

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