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


[Tutorial] Janelas Dinâmicas IV

3 participantes

Ir para baixo

[Tutorial] Janelas Dinâmicas IV Empty [Tutorial] Janelas Dinâmicas IV

Mensagem por Fuzenrad Qua 22 Set 2010, 21:49

Janelas Dinâmicas 4
Movendo Janelas e alguns efeitos

Finalmente a parte 4 desse tutorial. Consegui atingir um resultado muito bom, todos bem aplicáveis.

Obs: Para não estender muito essa parte do tutorial, eu vou pular uma parte da criação das janelas, pode ser visto no Tutorial 2 (Janelas com botões), o funcionamento é o mesmo.

Os resultado final foi esse:

[Tutorial] Janelas Dinâmicas IV Resultado

Janela móvel

É um recurso muito legal, não só para janelas, mas para objetos em geral do jogo, dependendo do estilo, entretando mover um objeto não é apenas atribuir x=mouse_y e y=mouse_y no evento Left Button, isso faz com que o objeto "salte" para a posição do mouse, deve ser evitado.

Para mover de forma correta, é preciso criar um variável com a posição "relativa" do objeto ao mouse, onde a diferença das posições é que será adicionada ao objeto quando este for clicado, dessa forma, seja qual for a área do objeto que você clicar, ele move considerando-o como ponto de origem.

Só explicando, posição relativa é a diferença entre a posição do objeto e a posição a qual comparamos, no caso x - mouse_x e y - mouse_y:

Código:
x_relativo=x-mouse_x
y_relativo=y-mouse_y
Atribuimos isso ao evento Step, para que seja uma variável atualizada.

Agora em um evento do mouse, por exemplo Left Buttom:

Código:
x=x_relativo+mouse_x
y=y_relativo+mouse_y
Para mover vários objetos ao mesmo tempo, temos que usar a função with, que controla outros objetos:

Código:
with instance_nearest(x,y,botao1) {
x=other.x-80
y=other.y+75 }
Com o objeto botao1 mais próximo, mova-o, ao mesmo tempo que o botão é corretamente posicionado na janela (repetindo o código com os demais botões).

Efeito Fade In/Out

É um efeito simples, mas bem usual, para aplicá-lo, basta controlarmos a variável image_alpha e atribuí-la a todos os objetos envolvidos ao objeto.

No evento Create indicamos:

Código:
image_alpha=-0.5
apaga=0
A variável image_alpha inicia em -0.5 para que tenha uma diferença entre a criação e o surgimento dela na tela, bem mínima, milisegundos. E iniciamos a variável apaga, que usaremos mais adiante.

Do mesmo modo que fizemos no exemplo anterior, controlando objetos com o with, mas desta vez com o image_alpha:

Código:
if image_alpha<1.5 and !apaga{
image_alpha+=0.05
with instance_nearest(x,y,botao1) image_alpha=other.image_alpha}

if image_alpha>0 and apaga{
image_alpha-=0.05
with instance_nearest(x,y,botao1) image_alpha=other.image_alpha}
Quando a variável apaga for true (ou 1) e image_single for maior que zero ou quando apaga for false (ou 0) e image_single for menor que 1.5, a janela desaparecerá e aparecerá respectivamente.

No evento Left Released do objeto botao1, adicionamos:

Código:
jan_movel.apaga=1
Para indicar que ao ser pressionado a janela desapareça.

Surgindo da esquerda

Faz a janela surgir da esquerda e pára na posição que ela foi criada.

Seu funcionamento é igualmente semelhante ao fade, mas variando a posição x do objeto, no evento Create deve indicar qual era a posição inicial, guardando-a em uma variável para então mové-la para uma posição não visível na janela:

Código:
x_antigo=x
move=1
x=room_width+150
Lembrando que room_width é a largura da room e 150 é aproximadamente a metade da largura do objeto, assim o objeto salta para uma posição fora da janela, para então se mover.

Para finalmente mover a janela, no evento Step usamos:

Código:
if x>x_antigo and move=1
x-=10 else move=0

if x<=x_antigo and move=1
x=x_antigo
Isso indica que enquanto a posição atual do objeto não for menor ou igual a posição inicial do objeto (associada à x_antigo) será subtraído 10 pixels a cada frame.

Baixe aqui a engine deste tutorial (zip - 89kb)
________________________________
Veja também:

- Parte 1 - Janelas com informações
- Parte 2 - Janelas com botões
- Parte 3 - Janelas com entrada de dados


Última edição por Fuzenrad em Qui 21 Out 2010, 20:55, editado 2 vez(es)
Fuzenrad
Fuzenrad

Games Ranking : Nota A

Notas recebidas : A-A-A-A-B
Data de inscrição : 04/07/2010
Reputação : 46
Número de Mensagens : 1063
Prêmios : [Tutorial] Janelas Dinâmicas IV Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 1

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

Ir para o topo Ir para baixo

[Tutorial] Janelas Dinâmicas IV Empty Re: [Tutorial] Janelas Dinâmicas IV

Mensagem por .:Allison:. Qua 22 Set 2010, 22:17

Muito bom, adorei, adoro todos os seus tutoriais, são muito bem explicados!

Faz uma FanBar, que eu quero usar!
.:Allison:.
.:Allison:.

Games Ranking : Nota B

Notas recebidas : B
Data de inscrição : 25/07/2010
Reputação : 4
Número de Mensagens : 630
Prêmios : [Tutorial] Janelas Dinâmicas IV Empty

Medalhas x 0 Tutoriais x 14 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://clubmaker.forumeiros.com

Ir para o topo Ir para baixo

[Tutorial] Janelas Dinâmicas IV Empty Re: [Tutorial] Janelas Dinâmicas IV

Mensagem por Fuzenrad Qui 23 Set 2010, 15:04

Acabei esquecendo de anexar as engine:
- Movendo Janelas
- Fade in/out
- Surgindo da esquerda

jan_movel.zip (89kb) - Link direto
Fuzenrad
Fuzenrad

Games Ranking : Nota A

Notas recebidas : A-A-A-A-B
Data de inscrição : 04/07/2010
Reputação : 46
Número de Mensagens : 1063
Prêmios : [Tutorial] Janelas Dinâmicas IV Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 1

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

Ir para o topo Ir para baixo

[Tutorial] Janelas Dinâmicas IV Empty Re: [Tutorial] Janelas Dinâmicas IV

Mensagem por Mr. Kaleb Qui 23 Set 2010, 15:34

Muito bom Funzerad como sempre colaborando muito para com o forum, está muito bem explicado como todos os outros, vai ajudar muita gente inclusive eu que estou criando um rpg e esbarrei justamente nesta parte, vou colocar você nos créditos
Mr. Kaleb
Mr. Kaleb

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 07/09/2010
Reputação : 21
Número de Mensagens : 1400
Prêmios : [Tutorial] Janelas Dinâmicas IV 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

[Tutorial] Janelas Dinâmicas IV Empty Re: [Tutorial] Janelas Dinâmicas IV

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo


 
Permissões neste sub-fórum
Não podes responder a tópicos