Como prometido, um tutorial simples ai pra começar a contribuir ^^
---
Nivel: Iniciante
Versão Usada: GM6.1
---
Para fazer um efeito de escurecer/clarear a tela manualmente basicamente vc precisará desenhar um retângulo do tamanho da tela e mudar a transparência dele.
Para começar, crie um obj que irá controlar o efeito. Vou chama-lo de
obj_controle. Nesse oj, adicione um
evento create e crie duas variaveis para indicar o nível de opacidade e se o efeito está ligado ou não.
- Código:
-
opacidade=1;
ligado=0;
Obs: O nível máximo de opacidade é 1, onde estará com toda a cor, quanto menor o valor, mais transparente.
Agora vamos trabalhar no
evento draw para desenhar nosso retângulo...
Iremos usar as seguintes funções:
- draw_set_alpha(nivel) - É usada para alterar o nível de transparência do que está sendo desenhado;
- draw_rectangle(x1,y1,x2,y2,lina) - Essa função irá desenhar o retângulo. X1 e Y1 indicam a posição do retângulo na tela, X2 e Y2 indicam o tamanho(largura e altura, respectivamente) e linha indica se somente uma linha deverá ser desenhada, sem preenchimento;
- draw_set_color(cor) - Usada para definir a cor do desenho.
Conhecendo as funções podemos começar o código do evento draw...
- Código:
-
draw_set_alpha(opacidade);
draw_set_color(c_black);
draw_rectangle(0,0,640,480,0);
Primeiro definimos o nível de transparência usando a variável que criamos antes, depois definimos a cor do desenho para preto e finalmente desenhamos o retângulo. Repare que o tamanho usado nesse exemplo é 640x480, lembre-se de usar o tamanho da tela do seu jogo.
Agora temos que criar um jeito de ligar e desligar a transparência, para testar, adicione dois eventos
key press, eu usei A e S para ligar e desligar, respectivamente.
Evento A:
- Código:
-
ligado=1;
Evento S:
- Código:
-
ligado=0;
Já definimos o desenho e um sistema de teste para ligar e desligar, mas é agora que iremos criar o efeito de transição fazendo com que fique transparente aos poucos. Adicione um evento
step e nele coloque as seguintes condições.
- Código:
-
if ligado==1 && opacidade>0 then //se o efeito estiver ligado e a opacidade for maior que zero)
{
opacidade-=0.1;
}
if ligado==0 && opacidade<1 then//se o efeito estiver desligado e a opacidade for menor do que 1
{
opacidade+=0.1
}
É bem simples, apenas checa se o sistema está ligado ou não e soma ou subtrai o valor da opacidade aos poucos para dar o efeito de transição.
Adicione o obj a room e pronto, vc já criou manualmente seu efeito de fade.
---
flw.................