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
» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18

» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30

» Como ajustar velocidade de cada frame da animação no game maker
por Ralphed Qui 18 Abr 2024, 18:28

» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07

» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45

» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51

» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31

» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11

» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39

» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17

» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18

» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34

» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12

» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02

» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55

» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21

» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21

» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39


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