Entrar
Últimos assuntos
» player não consegue andarpor 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] - Criando vários gráficos a partir de um único sprite/objeto
4 participantes
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
[TUTORIAL] - Criando vários gráficos a partir de um único sprite/objeto
• Aprenda a usar vários gráficos para um objeto sem precisar criar um amontoado de sprites/clones para isso.
Sistema criado originalmente usando GM 8.0 Pro. As demais versões podem não ser tão favoráveis.
-
• INTRODUÇÃO:
Você está pensando em criar um jogo grande? Diversificado, com uma boa variedade de cenários? Pois bem, acredito que você tenha o infeliz problema de criar sempre um sprite para cada tileset. Aliás, você cria um objeto para cada ambiente? Se sim, tenho uma solução bem simples: Por que não reduzir tudo a UM objeto e a UM sprite?
É aqui que vem o objetivo desse tutorial. Talvez esse metodo também seja um pouco cansativo, mas acredito que seja bem melhor do que ocupar espaço com um monte de objetos e tendo que ficar mudando todos eles sempre que for mudar um cenário na fase. Vamos começar!
-
• CRIAÇÃO:
Para começar, vamos criar um novo projeto. A primeira coisa que fazemos quando vamos criar um jogo é pelo menos criar um sprite inicial. Nesse caso, vamos direto aos tilesets que iremos usar. Eis o primeiro:
Não, não fiz assim porque era só para fazer o tutorial... eu realmente usei isso em um projeto!
Ok... temos um sprite. Agora, ao invés de dar Ok e criar o próximo, você vai criar outro frame e desenhar o outro tileset ali. Vamos a isto:
É... até que esse ficou legal. Na verdade, continua a mesma porcaria, mas fazer o que? Não sei desenhar, mesmo...
Bem... aqui está o sprite, com um tileset a cada frame. No caso, eu criei apenas 2, visto que esse processo pode ser demorado, dependendo do número de tilesets necessários:
Por enquanto só usamos 1 sprite... e nele temos 2 tilesets.
Bem... depois disso, crie uma room e um objeto contendo esse sprite. Por enquanto deixe o objeto encostado, vá em Settings e clique em Creation code. Lá, coloque essa variável (ou então crie uma própria sendo ela global e igualada a exatamente 0):
Agora abra o objeto, e no evento Step, coloque isso:
Parece organizado, mas experimente criar mais um, ou dois...
No caso de você ter criado outra variável, apenas troque o "global.gfx" pela sua. Agora vamos explicar o que foi feito: O objeto vai mudar o frame do sprite de acordo com o valor dado a variável utilizada. Assim, se ela assumir valor 0, seu sprite irá parar e aparecer com sublimage/frame 0. Se for 1, ele assume sublimage/frame 1 e assim por diante. Lembre-se de colocar o valor speed sempre em 0, para que a imagem não ande.Talvez com isso você não possa mais criar tilesets animados, mas...
Não é obrigatório você colocá-lo no Step, mas caso o cenário venha a ter uma mudança "brusca", ele será mudado assim que a variável assumir outro valor. Também pode servir para o caso de você criar um Debug mode, como o que eu fiz para mostrar o resultado final.
-
• RESULTADO FINAL:
Pronto, seu projeto está feito e agora você tem 2 tilesets em apenas UM sprite e UM objeto. Você cria um cenário inteiro usando apenas um tipo de tileset (no caso o que é exibido no modo de edição é sempre o frame 0), mas ao mudar o valor da variável, você pode transformá-lo em um ambiente completamente diferente. Um resultado semelhante a jogos mais antigos, onde criar um determinado tipo de inimigo em um outro cenário faz com que ele possa ter seus sprites bugados.
Blocos brancos (GFX 0):
Neve!
Certo, certo. Mas eu queria ver o outro bloco. Vou ter que voltar ao modo edição, trocar tudo e... EPA! Não precisa mais fazer isso, posso apenas mudar o valor da variável e ele mudará automaticamente!
Blocos verdes (GFX 1):
Floresta!
•- Tutorial criado por Mr.Rafael. (24/06/2011)
- Se for copiar, favor colocar os devidos créditos ao autor original.
o/
Sistema criado originalmente usando GM 8.0 Pro. As demais versões podem não ser tão favoráveis.
-
• INTRODUÇÃO:
Você está pensando em criar um jogo grande? Diversificado, com uma boa variedade de cenários? Pois bem, acredito que você tenha o infeliz problema de criar sempre um sprite para cada tileset. Aliás, você cria um objeto para cada ambiente? Se sim, tenho uma solução bem simples: Por que não reduzir tudo a UM objeto e a UM sprite?
É aqui que vem o objetivo desse tutorial. Talvez esse metodo também seja um pouco cansativo, mas acredito que seja bem melhor do que ocupar espaço com um monte de objetos e tendo que ficar mudando todos eles sempre que for mudar um cenário na fase. Vamos começar!
-
• CRIAÇÃO:
Para começar, vamos criar um novo projeto. A primeira coisa que fazemos quando vamos criar um jogo é pelo menos criar um sprite inicial. Nesse caso, vamos direto aos tilesets que iremos usar. Eis o primeiro:
Não, não fiz assim porque era só para fazer o tutorial... eu realmente usei isso em um projeto!
Ok... temos um sprite. Agora, ao invés de dar Ok e criar o próximo, você vai criar outro frame e desenhar o outro tileset ali. Vamos a isto:
É... até que esse ficou legal. Na verdade, continua a mesma porcaria, mas fazer o que? Não sei desenhar, mesmo...
Bem... aqui está o sprite, com um tileset a cada frame. No caso, eu criei apenas 2, visto que esse processo pode ser demorado, dependendo do número de tilesets necessários:
Por enquanto só usamos 1 sprite... e nele temos 2 tilesets.
Bem... depois disso, crie uma room e um objeto contendo esse sprite. Por enquanto deixe o objeto encostado, vá em Settings e clique em Creation code. Lá, coloque essa variável (ou então crie uma própria sendo ela global e igualada a exatamente 0):
- Código:
global.gfx = 0;
/*------------------------------
Com esse sistema, você pode
criar vários gráficos a partir
de um único Sprite. Na edição
do Sprite, crie os tilesets
em cada Frame (EX.: Frame 0
é neve, no Frame 1 é grama).
Aí, no objeto, você define
em que Frame o sprite ficará
de acordo com o valor da
variável. Pode ser cansativo,
mas é bem melhor do que ocupar
espaço com objetos clonados.
------------------------------*/
Agora abra o objeto, e no evento Step, coloque isso:
Parece organizado, mas experimente criar mais um, ou dois...
No caso de você ter criado outra variável, apenas troque o "global.gfx" pela sua. Agora vamos explicar o que foi feito: O objeto vai mudar o frame do sprite de acordo com o valor dado a variável utilizada. Assim, se ela assumir valor 0, seu sprite irá parar e aparecer com sublimage/frame 0. Se for 1, ele assume sublimage/frame 1 e assim por diante. Lembre-se de colocar o valor speed sempre em 0, para que a imagem não ande.Talvez com isso você não possa mais criar tilesets animados, mas...
Não é obrigatório você colocá-lo no Step, mas caso o cenário venha a ter uma mudança "brusca", ele será mudado assim que a variável assumir outro valor. Também pode servir para o caso de você criar um Debug mode, como o que eu fiz para mostrar o resultado final.
-
• RESULTADO FINAL:
Pronto, seu projeto está feito e agora você tem 2 tilesets em apenas UM sprite e UM objeto. Você cria um cenário inteiro usando apenas um tipo de tileset (no caso o que é exibido no modo de edição é sempre o frame 0), mas ao mudar o valor da variável, você pode transformá-lo em um ambiente completamente diferente. Um resultado semelhante a jogos mais antigos, onde criar um determinado tipo de inimigo em um outro cenário faz com que ele possa ter seus sprites bugados.
Blocos brancos (GFX 0):
Neve!
Certo, certo. Mas eu queria ver o outro bloco. Vou ter que voltar ao modo edição, trocar tudo e... EPA! Não precisa mais fazer isso, posso apenas mudar o valor da variável e ele mudará automaticamente!
Blocos verdes (GFX 1):
Floresta!
•- Tutorial criado por Mr.Rafael. (24/06/2011)
- Se for copiar, favor colocar os devidos créditos ao autor original.
o/
Mr.Rafael- Games Ranking :
Notas recebidas : A-C-B-A-A
Data de inscrição : 05/10/2010
Reputação : 94
Número de Mensagens : 502
Prêmios :
x 0 x 2 x 0
x 1 x 1 x 3
x 0 x 0 x 0
Re: [TUTORIAL] - Criando vários gráficos a partir de um único sprite/objeto
Puuuxa, esses dias estava pensando nisso, bem bolado, recomendo esse artigo.
Parabéns!
Parabéns!
Lauro- Games Ranking :
Notas recebidas : C+D
Data de inscrição : 09/11/2010
Reputação : 11
Número de Mensagens : 855
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [TUTORIAL] - Criando vários gráficos a partir de um único sprite/objeto
Obrigado pelo comentário, Lauro. Quando estava pensando nisso, estava tendo um vídeo de Pokémon Red de GBC, aí vi que a cor dos cenários mudava. Quando eu estava testando uma engine que estava criando, quis criar outro cenário e, ao invés de clonar outro objeto, fiz com que um único tomasse o lugar de todos. Achei isso interessante e então resolvi compartilhá-lo aqui.
O problema pode ser na hora de adicionar mais tilesets, mas como eu me expressei no tutorial, acho isso bem melhor do que voltar ao modo edição e ficar catando objetos diferentes, sendo que assim eu posso criar tudo através de um só. Espero que venha a ser útil em alguma ocasião.
o/
O problema pode ser na hora de adicionar mais tilesets, mas como eu me expressei no tutorial, acho isso bem melhor do que voltar ao modo edição e ficar catando objetos diferentes, sendo que assim eu posso criar tudo através de um só. Espero que venha a ser útil em alguma ocasião.
o/
Mr.Rafael- Games Ranking :
Notas recebidas : A-C-B-A-A
Data de inscrição : 05/10/2010
Reputação : 94
Número de Mensagens : 502
Prêmios :
x 0 x 2 x 0
x 1 x 1 x 3
x 0 x 0 x 0
Re: [TUTORIAL] - Criando vários gráficos a partir de um único sprite/objeto
Bem legal o tutorial mas sprites diversificadas ao inves de só trocar a sub imagem fica muito mais fácil de programar, e não ocupa tanta memória assim.
Desse jeito até complica um pouco.
Mas o tutorial está ótimo, muito bem explicado, e de fácil entendimento, só acho que deveria explicar as libs de troca de sprites, porque dentro dela tem a opção de qual subimagem usar.
Mas enfim cara, muito bom tutorial continue sempre postando seus tutos para a comunidade crescer ainda mais.
flws!
Desse jeito até complica um pouco.
Mas o tutorial está ótimo, muito bem explicado, e de fácil entendimento, só acho que deveria explicar as libs de troca de sprites, porque dentro dela tem a opção de qual subimagem usar.
Mas enfim cara, muito bom tutorial continue sempre postando seus tutos para a comunidade crescer ainda mais.
flws!
Re: [TUTORIAL] - Criando vários gráficos a partir de um único sprite/objeto
bem legal, para um jogo online por exemplo daria para colocar estações Inverno/Verão =D...
kinho77- Data de inscrição : 08/07/2011
Reputação : 0
Número de Mensagens : 10
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Tópicos semelhantes
» [RESOLVIDO] Variaveis locais persistentes para um unico objeto
» [Tutorial] Um Único Script para Todos Diálogos do Jogo
» [Resolvido]Criando vários objetos do nada
» Criando extensoes a partir de dll's
» Criando à partir do ponto de colisão.
» [Tutorial] Um Único Script para Todos Diálogos do Jogo
» [Resolvido]Criando vários objetos do nada
» Criando extensoes a partir de dll's
» Criando à partir do ponto de colisão.
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos