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


Fazendo o efeito "FT" do Mario

5 participantes

Ir para baixo

Fazendo o efeito "FT" do Mario Empty Fazendo o efeito "FT" do Mario

Mensagem por CPinheiro Sex 13 Nov 2009, 15:29

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:

Fazendo o efeito "FT" do Mario Acelerao

É 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.
CPinheiro
CPinheiro

Data de inscrição : 01/06/2008
Reputação : 0
Número de Mensagens : 1015
Prêmios : Fazendo o efeito "FT" do Mario Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://supermariobrasileiro.blogspot.com

Ir para o topo Ir para baixo

Fazendo o efeito "FT" do Mario Empty Re: Fazendo o efeito "FT" do Mario

Mensagem por Gabreel Sex 13 Nov 2009, 16:01

Oxen't OMG, muito bom.. e útil e prestativo e bom *-***********

VLw
Gabreel
Gabreel

Data de inscrição : 02/10/2009
Reputação : 52
Número de Mensagens : 2232
Prêmios : Fazendo o efeito "FT" do Mario 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
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Javascript
  • Outros


Ir para o topo Ir para baixo

Fazendo o efeito "FT" do Mario Empty Re: Fazendo o efeito "FT" do Mario

Mensagem por Denis Lemos Sex 13 Nov 2009, 19:35

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 !
Denis Lemos
Denis Lemos

Data de inscrição : 17/05/2009
Reputação : 1
Número de Mensagens : 938
Prêmios : Fazendo o efeito "FT" do Mario 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
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Unity
  • C#
  • Godot
  • C ou C++


Ir para o topo Ir para baixo

Fazendo o efeito "FT" do Mario Empty Re: Fazendo o efeito "FT" do Mario

Mensagem por CPinheiro Sex 13 Nov 2009, 20:06

Sim, é possível fazer assim também. Mas caso o Mario fique parado, acho mais prático mudar apenas o código do Create:

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!
CPinheiro
CPinheiro

Data de inscrição : 01/06/2008
Reputação : 0
Número de Mensagens : 1015
Prêmios : Fazendo o efeito "FT" do Mario Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://supermariobrasileiro.blogspot.com

Ir para o topo Ir para baixo

Fazendo o efeito "FT" do Mario Empty Re: Fazendo o efeito "FT" do Mario

Mensagem por Convidad Sex 13 Nov 2009, 21:48

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¬)]
avatar
Convidad
Convidado


Ir para o topo Ir para baixo

Fazendo o efeito "FT" do Mario Empty Re: Fazendo o efeito "FT" do Mario

Mensagem por CPinheiro Sex 13 Nov 2009, 22:08

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!
CPinheiro
CPinheiro

Data de inscrição : 01/06/2008
Reputação : 0
Número de Mensagens : 1015
Prêmios : Fazendo o efeito "FT" do Mario Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://supermariobrasileiro.blogspot.com

Ir para o topo Ir para baixo

Fazendo o efeito "FT" do Mario Empty Re: Fazendo o efeito "FT" do Mario

Mensagem por Naut2006 Dom 15 Nov 2009, 21:47

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 Happy
Naut2006
Naut2006

Data de inscrição : 11/08/2009
Reputação : 0
Número de Mensagens : 213
Prêmios : Fazendo o efeito "FT" do Mario 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

Fazendo o efeito "FT" do Mario Empty Re: Fazendo o efeito "FT" do Mario

Mensagem por CPinheiro Dom 15 Nov 2009, 22:06

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 Happy

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).
CPinheiro
CPinheiro

Data de inscrição : 01/06/2008
Reputação : 0
Número de Mensagens : 1015
Prêmios : Fazendo o efeito "FT" do Mario Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://supermariobrasileiro.blogspot.com

Ir para o topo Ir para baixo

Fazendo o efeito "FT" do Mario Empty Re: Fazendo o efeito "FT" do Mario

Mensagem por IvanDSM Sex 08 Jan 2010, 03:31

Legal. Vou experimentar isso no Mega-bike
IvanDSM
IvanDSM

Data de inscrição : 04/01/2010
Reputação : 0
Número de Mensagens : 19
Prêmios : Fazendo o efeito "FT" do Mario 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

http://fiquelouco.blogueiros.net

Ir para o topo Ir para baixo

Fazendo o efeito "FT" do Mario Empty Re: Fazendo o efeito "FT" do Mario

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