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
Fazendo o efeito "FT" do Mario
5 participantes
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
Fazendo o efeito "FT" do Mario
Fazendo o efeito "FT" do Mario
Com certeza a maioria daqui já jogou Super Mario World. Lançado junto com o SNES, o jogo apresentava diversos efeitos de transição de tela. O mais comum era a tela fechar em forma de círculo no final de cada fase.
Estudei um pouco e descobri um método para fazer o FT ("fechar tela"). É muito simples e bastante efetivo. O bom é que você não pode só fechar a tela em forma de círculo, mas da forma que quiser: em estrela, em caveira, em quadrado, etc.
Como funciona? Simples: desenhamos um sprite no meio da tela, e iremos fazer esse sprite diminuir de tamanho. Como um exemplo, utilizarei esse sprite:
É um sprite com o fundo branco. Ao adicioná-lo no Game Maker, não esqueça de deixá-lo transparente e de colocar os Origins no centro dele (clique no botão "Center", ao adicionar o sprite).
Agora, crie um objeto e coloque esse sprite. Adicione o seguinte código no evento Create:
Nas duas primeiras linhas, colocamos o x e o y do objeto no meio da tela. Já nas duas últimas linhas, nós aumentamos o tamanho do sprite, para que ele pegue a tela toda. Se sua tela for pequena, você pode diminuir o valor do image_xscale e do image_yscale.
Agora, coloque o seguinte código no Step:
O código acima é bem simples. Primeiro, checamos se o image_xscale é maior que zero. Se for, diminuímos o image_xscale e o image_yscale em 0.06. O que irá acontecer é que o sprite irá diminuir de tamanho aos poucos, até sumir. Assim que o image_xscale for menor que zero, o jogo pula para a próxima room. Se quiser fazer a tela fechar mais rápido, aumente o valor (coloquei 0.06 por opção).
Nota: checamos apenas o image_xscale porque, neste caso, o image_xscale e o image_yscale tem o mesmo valor sempre.
Você pode testar agora. Se fez tudo certo, o sprite diminuirá de tamanho até sumir, e então você trocará de room. Mas temos um problema: conforme o sprite vai diminuindo, parte da tela fora do retângulo fica visível.
Apesar de ter demorado para descobrir, é bem simples de resolver. Adicione o seguinte código no evento Draw do objeto:
Esse código é um pouco mais complicado que os outros. Nele, nós desenhamos quatro retângulos de cor preta nas bordas do sprite, para que a área que antes era visível se torne impossível de se enxergar. No final do código, nós desenhamos o próprio sprite.
Nota: quando usamos algum código no evento Draw, o sprite do objeto não é desenhado na tela. Por isso uso a última linha de código. Assim, o objeto terá seu sprite visto na tela.
Podem testar. Verão que o código funciona perfeitamente: o círculo vai dimunuindo de tamanho até fechar no centro, e então troca de room. Se quiser colocar outro efeito, é só usar outro sprite, sendo que a parte branca seria a parte que ficaria visível na tela.
Download do exemplo: clique aqui.
Tutorial escrito por CPinheiro, da Staff da Game Maker Brasil. Não copie sem autorização.
Com certeza a maioria daqui já jogou Super Mario World. Lançado junto com o SNES, o jogo apresentava diversos efeitos de transição de tela. O mais comum era a tela fechar em forma de círculo no final de cada fase.
Estudei um pouco e descobri um método para fazer o FT ("fechar tela"). É muito simples e bastante efetivo. O bom é que você não pode só fechar a tela em forma de círculo, mas da forma que quiser: em estrela, em caveira, em quadrado, etc.
Como funciona? Simples: desenhamos um sprite no meio da tela, e iremos fazer esse sprite diminuir de tamanho. Como um exemplo, utilizarei esse sprite:
É um sprite com o fundo branco. Ao adicioná-lo no Game Maker, não esqueça de deixá-lo transparente e de colocar os Origins no centro dele (clique no botão "Center", ao adicionar o sprite).
Agora, crie um objeto e coloque esse sprite. Adicione o seguinte código no evento Create:
- Código:
x = view_xview[0] + view_wview[0]/2;
y = view_yview[0] + view_hview[0]/2;
image_xscale = 8;
image_yscale = 8;
Nas duas primeiras linhas, colocamos o x e o y do objeto no meio da tela. Já nas duas últimas linhas, nós aumentamos o tamanho do sprite, para que ele pegue a tela toda. Se sua tela for pequena, você pode diminuir o valor do image_xscale e do image_yscale.
Agora, coloque o seguinte código no Step:
- Código:
if (image_xscale > 0)
{
image_xscale-=0.06
image_yscale-=0.06
}
else
{
room_goto_next();
}
O código acima é bem simples. Primeiro, checamos se o image_xscale é maior que zero. Se for, diminuímos o image_xscale e o image_yscale em 0.06. O que irá acontecer é que o sprite irá diminuir de tamanho aos poucos, até sumir. Assim que o image_xscale for menor que zero, o jogo pula para a próxima room. Se quiser fazer a tela fechar mais rápido, aumente o valor (coloquei 0.06 por opção).
Nota: checamos apenas o image_xscale porque, neste caso, o image_xscale e o image_yscale tem o mesmo valor sempre.
Você pode testar agora. Se fez tudo certo, o sprite diminuirá de tamanho até sumir, e então você trocará de room. Mas temos um problema: conforme o sprite vai diminuindo, parte da tela fora do retângulo fica visível.
Apesar de ter demorado para descobrir, é bem simples de resolver. Adicione o seguinte código no evento Draw do objeto:
- Código:
//Retangulos
draw_set_color(c_black);
draw_rectangle(view_xview[0],view_yview[0],x-(sprite_width/2),view_yview[0]+view_hview[0],0)
draw_rectangle(x-(sprite_width/2),view_yview[0],x+(sprite_width/2),y-(sprite_height/2),0)
draw_rectangle(x+(sprite_width/2-2),view_yview[0],view_xview[0]+view_wview[0],view_yview[0]+view_hview[0],0)
draw_rectangle(x-(sprite_width/2),y+(sprite_height/2-3),x+(sprite_width/2),view_yview[0]+view_hview[0],0)
draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale,image_angle,c_white,image_alpha)
Esse código é um pouco mais complicado que os outros. Nele, nós desenhamos quatro retângulos de cor preta nas bordas do sprite, para que a área que antes era visível se torne impossível de se enxergar. No final do código, nós desenhamos o próprio sprite.
Nota: quando usamos algum código no evento Draw, o sprite do objeto não é desenhado na tela. Por isso uso a última linha de código. Assim, o objeto terá seu sprite visto na tela.
Podem testar. Verão que o código funciona perfeitamente: o círculo vai dimunuindo de tamanho até fechar no centro, e então troca de room. Se quiser colocar outro efeito, é só usar outro sprite, sendo que a parte branca seria a parte que ficaria visível na tela.
Download do exemplo: clique aqui.
Tutorial escrito por CPinheiro, da Staff da Game Maker Brasil. Não copie sem autorização.
Re: Fazendo o efeito "FT" do Mario
Oxen't OMG, muito bom.. e útil e prestativo e bom *-***********
VLw
VLw
Gabreel- Data de inscrição : 02/10/2009
Reputação : 52
Número de Mensagens : 2232
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Plataformas :- Game Maker 8.0 ou 8.1
- Game Maker Studio 1.4
- Game Maker Studio 2.0
- Javascript
- Outros
Re: Fazendo o efeito "FT" do Mario
Cara bem legal, eu estou fazendo um fan game do Mario e gostei muito de saber como que se faz isso !
Só que eu queria te dar uma dica, se quizer deixar mais igual ainda a função, coloca no step desse objeto aquela função ''move_towards_point(obj_mario.x,obj_mario.y,3), para a tela ir fechando no mario, pois eu tenho o jogo do Mario aqui e é isso que acontece !
E eu testei, adicionando esse código e funcionou direitinho, aí é só ir andando com o Mario que a tela vai fechando nele ! Ficou igualzinho tenta desse jeito também para ver
como que fica !
Há coloca onde muda para a próxima room, para em vez ir para a próxima voltar para ela mesma, para ficar repetindo diverssas vezes "room_goto(nome_da_mesma_room)", mas acho que você já sabe disso !
Bom acho que falei e opinei demais da conta... Parabéns pela dica é bem útil para quem é fan do Mario !
Só que eu queria te dar uma dica, se quizer deixar mais igual ainda a função, coloca no step desse objeto aquela função ''move_towards_point(obj_mario.x,obj_mario.y,3), para a tela ir fechando no mario, pois eu tenho o jogo do Mario aqui e é isso que acontece !
E eu testei, adicionando esse código e funcionou direitinho, aí é só ir andando com o Mario que a tela vai fechando nele ! Ficou igualzinho tenta desse jeito também para ver
como que fica !
Há coloca onde muda para a próxima room, para em vez ir para a próxima voltar para ela mesma, para ficar repetindo diverssas vezes "room_goto(nome_da_mesma_room)", mas acho que você já sabe disso !
Bom acho que falei e opinei demais da conta... Parabéns pela dica é bem útil para quem é fan do Mario !
Denis Lemos- Data de inscrição : 17/05/2009
Reputação : 1
Número de Mensagens : 938
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Plataformas :- Game Maker 8.0 ou 8.1
- Game Maker Studio 1.4
- Unity
- C#
- Godot
- C ou C++
Re: Fazendo o efeito "FT" do Mario
Sim, é possível fazer assim também. Mas caso o Mario fique parado, acho mais prático mudar apenas o código do Create:
Caso o Mario se mexa, é só colocar o código acima no Step.
Agradeço à todos pelos comentários!
- Código:
x = obj_mario.x;
y = obj_mario.y;
Caso o Mario se mexa, é só colocar o código acima no Step.
Agradeço à todos pelos comentários!
Re: Fazendo o efeito "FT" do Mario
Legal! Muito bom Morello. Acho que seria legal usar isso pra formas mais "diferentes". No caso de círculos ou quadrados (ou até estrelas), seria legal usar as funções nativas do GM para desenhá-las.
É só um palpite, pra quem não optar por adicionar um sprite a mais só para o efeito. [Z¬)]
É só um palpite, pra quem não optar por adicionar um sprite a mais só para o efeito. [Z¬)]
Convidad- Convidado
Re: Fazendo o efeito "FT" do Mario
Capitão Commando escreveu:Legal! Muito bom Morello. Acho que seria legal usar isso pra formas mais "diferentes". No caso de círculos ou quadrados (ou até estrelas), seria legal usar as funções nativas do GM para desenhá-las.
É só um palpite, pra quem não optar por adicionar um sprite a mais só para o efeito. [Z¬)]
É, também pensei em fazer isso, mas preferi fazer assim pra ter mais liberdade com o desenho, sabe? Por exemplo, uma estrela. Eu posso desenhar uma estrela, mas uma estrela do Mario tem olhos. rs
Só um exemplo. Sua ideia também é excelente!
E mais uma vez, obrigado à todos pelos comentários!
Re: Fazendo o efeito "FT" do Mario
Muito bom. Só faltou diser que quando desenhar o sprite, tem que deixar o último pixel da primeira coluna branco também, se não não funciona =D
Goodbye
Goodbye
Naut2006- Data de inscrição : 11/08/2009
Reputação : 0
Número de Mensagens : 213
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Fazendo o efeito "FT" do Mario
Naut2006 escreveu:Muito bom. Só faltou diser que quando desenhar o sprite, tem que deixar o último pixel da primeira coluna branco também, se não não funciona =D
Goodbye
Eu falei isso sim, lol.
É um sprite com o fundo branco. Ao adicioná-lo no Game Maker, não esqueça de deixá-lo transparente e de colocar os Origins no centro dele (clique no botão "Center", ao adicionar o sprite).
Tópicos semelhantes
» "AJUDA EFEITO DASH DO MEGAMAN X"
» "como colocar efeito em um texto?"
» Tutorial para iniciantes : Fazendo a sprite de um SOL usando o efeito Blur do GM !
» como faço um "elevador" iqual do mario?
» [Resolvido]Efeito super mario
» "como colocar efeito em um texto?"
» Tutorial para iniciantes : Fazendo a sprite de um SOL usando o efeito Blur do GM !
» como faço um "elevador" iqual do mario?
» [Resolvido]Efeito super mario
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos