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
[Tutorial] Janelas Dinâmicas III
5 participantes
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
[Tutorial] Janelas Dinâmicas III
Janelas dinâmicas
(Parte 3/4 - Inserir Dados)
Usa Game Maker 8 Pro
Essa parte do tutorial será a mais usada provavelmente, pode ser usada quando o jogador perde, para adicionar no Highscore do jogo, ou em um jogo multiplayer onde é necessário inserir dados como Nick, IP etc. Ou até mesmo para usar em um chat em um jogo online, tem diversas utilidades.
Atenção: É essencial seguir esse tutorial com a engine aberta, algumas funções será mais bem entendidas se for feito um acompanhamento.
Você pode baixá-las no endereço abaixo:
http://64digits.com/users/Fuzenrad/jan_dinamicas3.gmk
Novamente vamos usar a grade separada em pequenos quadrados, nesse exemplo eu vou fazer uma janela para conexão de um jogo multiplayer, haverá 3 áreas para inserir dados (Nick, Seu IP e Conectar ao IP)e 3 botões (Conectar e Cancelar), sobre os botões, foi visto no tutorial anterior (Janelas Dinâmicas II), por tanto não vou me aprofundar tanto nesse pedaço do tutorial.
O padrão é o mesmo, distribuindo regularmente a posição das regiões em uma área quadriculada, impede os erros de simetria e alinhamento.
Pra finalizar eu usei uma textura de rochas e as áreas de dados um prateado bem discreto e na janela um sombreamento bem claro (feito no editor do Game Maker), nesse exemplo eu inseri os botões direto na janela, diferente do exemplo anterior, onde eram sprites, isso facilita um pouco, mas impede que os botões sejem modificados de posição mais tarde.
As interfaces separadas
Em relação ao exemplo anterior, sobre os botões, esse terá novas características, o funcionamento é o mesmo, usando os eventos Left Pressed, Mouse Enter etc, no caso o botão Conectar vai acender verde quando apontar para ele e o botão Cancelar vermelho, é um efeito bem discreto, mas que fica muito bom.
O draw do objeto botão Cancelar:
A localização dos pontos foram feitas de forma diferente, nesse exemplo eu criei um objeto, e no evento draw dele eu coloquei uma função para mostrar a localização do pontos X e Y, então eu os posicionei no lugar correto, onde deverão aparecer, facilitou bem mais do que a técnica anterior, onde a função para mostrar a coordenada era inserida no mouse_x e mouse_y, o resultado foi esse:
Com a origem da janela em 0x0, esse é o valor que eu terei que somar ao x e y da janela, para posicionar corretamente. Os valores seguidos no tutorial são esses ai.
No evento Create do objeto jan_mplayer, foi indicado várias variáveis, as globais são o texto que estamos modificando, são: o nick, o ip e o ip para conectar, no caso eu coloquei uma função para detectar o ip da máquina, esse número você indica ao seu amigo para jogar em modo multiplayer e o outro ip, é um string fixa, com o ip zero da máquina (127.0.0.1).
Para permitir a edição de um texto, eu criei o seguinte código:
Nos 3 objetos da área para inserir texto, ao clica, ele altera o valor da variável jan_mplayer escolher, para assim selecionar qual janela o cursor irá editar (caso contrário, teríamos um resultado indesejado).
O evento draw do objeto jan_mplayer é responsável por mostrar todos os itens da janela, organizando-os de forma mais fácil.
E por fim, o evento Destroy, é responsável por destruir todos os objetos relacionados a janela, evitando problemas futuros.
No próximo tutorial, vou mostrar o que é possível fazer com essas janelas, efeitos de movimentos, fricção, gravidade, fade, blend, efeitos com imagens ect. Aguardem.
(Parte 3/4 - Inserir Dados)
Usa Game Maker 8 Pro
Essa parte do tutorial será a mais usada provavelmente, pode ser usada quando o jogador perde, para adicionar no Highscore do jogo, ou em um jogo multiplayer onde é necessário inserir dados como Nick, IP etc. Ou até mesmo para usar em um chat em um jogo online, tem diversas utilidades.
Atenção: É essencial seguir esse tutorial com a engine aberta, algumas funções será mais bem entendidas se for feito um acompanhamento.
Você pode baixá-las no endereço abaixo:
http://64digits.com/users/Fuzenrad/jan_dinamicas3.gmk
Novamente vamos usar a grade separada em pequenos quadrados, nesse exemplo eu vou fazer uma janela para conexão de um jogo multiplayer, haverá 3 áreas para inserir dados (Nick, Seu IP e Conectar ao IP)e 3 botões (Conectar e Cancelar), sobre os botões, foi visto no tutorial anterior (Janelas Dinâmicas II), por tanto não vou me aprofundar tanto nesse pedaço do tutorial.
O padrão é o mesmo, distribuindo regularmente a posição das regiões em uma área quadriculada, impede os erros de simetria e alinhamento.
Pra finalizar eu usei uma textura de rochas e as áreas de dados um prateado bem discreto e na janela um sombreamento bem claro (feito no editor do Game Maker), nesse exemplo eu inseri os botões direto na janela, diferente do exemplo anterior, onde eram sprites, isso facilita um pouco, mas impede que os botões sejem modificados de posição mais tarde.
As interfaces separadas
Em relação ao exemplo anterior, sobre os botões, esse terá novas características, o funcionamento é o mesmo, usando os eventos Left Pressed, Mouse Enter etc, no caso o botão Conectar vai acender verde quando apontar para ele e o botão Cancelar vermelho, é um efeito bem discreto, mas que fica muito bom.
O draw do objeto botão Cancelar:
- Código:
if image_single=0
draw_text_color(jan_mplayer.x+208,jan_mplayer.y+107,"Cancelar",c_black,c_dkgray,c_black,c_black,image_alpha)
else
draw_text_color(jan_mplayer.x+208,jan_mplayer.y+107,"Cancelar",c_red,c_red,c_black,c_red,image_alpha)
- Código:
if image_single=0
draw_text_color(jan_mplayer.x+208,jan_mplayer.y+68,"Conectar",c_black,c_dkgray,c_black,c_black,image_alpha)
else
draw_text_color(jan_mplayer.x+208,jan_mplayer.y+68,"Conectar",c_lime,c_green,c_black,c_green,image_alpha)
A localização dos pontos foram feitas de forma diferente, nesse exemplo eu criei um objeto, e no evento draw dele eu coloquei uma função para mostrar a localização do pontos X e Y, então eu os posicionei no lugar correto, onde deverão aparecer, facilitou bem mais do que a técnica anterior, onde a função para mostrar a coordenada era inserida no mouse_x e mouse_y, o resultado foi esse:
Com a origem da janela em 0x0, esse é o valor que eu terei que somar ao x e y da janela, para posicionar corretamente. Os valores seguidos no tutorial são esses ai.
No evento Create do objeto jan_mplayer, foi indicado várias variáveis, as globais são o texto que estamos modificando, são: o nick, o ip e o ip para conectar, no caso eu coloquei uma função para detectar o ip da máquina, esse número você indica ao seu amigo para jogar em modo multiplayer e o outro ip, é um string fixa, com o ip zero da máquina (127.0.0.1).
- Código:
instance_create(x,y,botao_conectar)
instance_create(x,y,botao_cancelar)
instance_create(x,y,barra1)
instance_create(x,y,barra2)
instance_create(x,y,barra3)
//Cria os botoes e as regioes do texto
lucida=font_add("Lucida Console",8,0,0,32,127)
global.nick="Fuzenrad"
global.seuip=mplay_ipaddress()
global.conectar="127.0.0.1"
maximo=15
//Quantidade maxima de caracteres
cursor="|"
t=1
alarm[0]=5
escolhe=0
Para permitir a edição de um texto, eu criei o seguinte código:
- Código:
if keyboard_check_pressed(vk_backspace)
global.nick=string_delete(global.nick,string_length(global.nick),1)
if maximo-string_length(global.nick)>0 {
if keyboard_string!="" {
global.nick=string_insert(keyboard_string,global.nick,string_length(global.nick)+1)
keyboard_string="" }} else
keyboard_string=""
Nos 3 objetos da área para inserir texto, ao clica, ele altera o valor da variável jan_mplayer escolher, para assim selecionar qual janela o cursor irá editar (caso contrário, teríamos um resultado indesejado).
O evento draw do objeto jan_mplayer é responsável por mostrar todos os itens da janela, organizando-os de forma mais fácil.
- Código:
draw_set_font(lucida)
draw_set_halign(0)
draw_set_valign(1)
draw_sprite_ext(sprite_index,image_single,x,y,1,1,0,c_white,image_alpha)
if escolhe=1 {
mostra_nick=global.nick+cursor } else
mostra_nick=global.nick
if escolhe=2 {
mostra_ip=global.seuip+cursor } else
mostra_ip=global.seuip
if escolhe=3 {
mostra_conectar=global.conectar+cursor } else
mostra_conectar=global.conectar
draw_text_color(jan_mplayer.x+28,jan_mplayer.y+30,mostra_nick,c_black,c_dkgray,c_black,c_black,image_alpha)
draw_text_color(jan_mplayer.x+28,jan_mplayer.y+68,mostra_ip,c_black,c_dkgray,c_black,c_black,image_alpha)
draw_text_color(jan_mplayer.x+28,jan_mplayer.y+108,mostra_conectar,c_black,c_dkgray,c_black,c_black,image_alpha)
- Código:
switch t=0
{
case 0:{cursor="|" t=0} break;
case 1:{cursor="" t=1} break;
}
alarm[0]=5
E por fim, o evento Destroy, é responsável por destruir todos os objetos relacionados a janela, evitando problemas futuros.
- Código:
with instance_nearest(x,y,botao_conectar) {
instance_destroy()}
with instance_nearest(x,y,botao_cancelar) {
instance_destroy()}
with instance_nearest(x,y,barra1) {
instance_destroy()}
with instance_nearest(x,y,barra2) {
instance_destroy()}
with instance_nearest(x,y,barra3) {
instance_destroy()}
No próximo tutorial, vou mostrar o que é possível fazer com essas janelas, efeitos de movimentos, fricção, gravidade, fade, blend, efeitos com imagens ect. Aguardem.
Última edição por Fuzenrad em Dom 12 Set 2010, 21:03, editado 2 vez(es)
Fuzenrad- Games Ranking :
Notas recebidas : A-A-A-A-B
Data de inscrição : 04/07/2010
Reputação : 46
Número de Mensagens : 1063
Prêmios :
x 0 x 0 x 0
x 1 x 0 x 1
x 0 x 0 x 0
Re: [Tutorial] Janelas Dinâmicas III
de novo ficou super legal
fenanco- Data de inscrição : 16/07/2010
Reputação : 0
Número de Mensagens : 88
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Tutorial] Janelas Dinâmicas III
o tutorial ficou otimo...nota 9
obs:
nao sei se eu olhei direito, mas vc usou o DRAW num objeto
que usa o mouse...e ele pega?
FLE
obs:
nao sei se eu olhei direito, mas vc usou o DRAW num objeto
que usa o mouse...e ele pega?
FLE
Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.
Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.
Aprenda a calcular a velocidade de suas animações
Entre para o Clube do Inglês:
Re: [Tutorial] Janelas Dinâmicas III
Como assim? Eu coloquei funções do draw em um evento do mouse? Talvez eu tenha errado, me mostra onde é que eu não encontrei.
Fuzenrad- Games Ranking :
Notas recebidas : A-A-A-A-B
Data de inscrição : 04/07/2010
Reputação : 46
Número de Mensagens : 1063
Prêmios :
x 0 x 0 x 0
x 1 x 0 x 1
x 0 x 0 x 0
Re: [Tutorial] Janelas Dinâmicas III
nao,
vc usou o DRAW em um objeto que tem sprite, oq desabilita as funcoes do mouse...
isso q eu quis dizer...
só que nao tenho certeza pq eu tava com pressa, eu vou baixar
a engine e avaliar para ver se eu falei bobagem...
FLW
vc usou o DRAW em um objeto que tem sprite, oq desabilita as funcoes do mouse...
isso q eu quis dizer...
só que nao tenho certeza pq eu tava com pressa, eu vou baixar
a engine e avaliar para ver se eu falei bobagem...
FLW
Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.
Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.
Aprenda a calcular a velocidade de suas animações
Entre para o Clube do Inglês:
Re: [Tutorial] Janelas Dinâmicas III
Legal!
Se eu fosse fazer um jogo multiplayer, com certeza eu usaria esse tutorial como base.
Muito bom cara!
Se eu fosse fazer um jogo multiplayer, com certeza eu usaria esse tutorial como base.
Muito bom cara!
Re: [Tutorial] Janelas Dinâmicas III
Entendo, mas nesse caso eu indiquei "draw_sprite(sprite_index..." para mostrar novamente a sprite, caso contrário não mostraria nada. Obrigado pela informação, no final acabei arrumando alguns problemas na mensagem (tinha várias tags < BR > espalhadas na região dos códigos).vc usou o DRAW em um objeto que tem sprite, oq desabilita as funcoes do mouse...
Fuzenrad- Games Ranking :
Notas recebidas : A-A-A-A-B
Data de inscrição : 04/07/2010
Reputação : 46
Número de Mensagens : 1063
Prêmios :
x 0 x 0 x 0
x 1 x 0 x 1
x 0 x 0 x 0
Re: [Tutorial] Janelas Dinâmicas III
Otimo tutorial amigo!
Está sempre ajudando.
Espero mais tutoriais de você.
Está sempre ajudando.
Espero mais tutoriais de você.
Super Games- Games Ranking :
Notas recebidas : C
Data de inscrição : 10/06/2010
Reputação : 36
Número de Mensagens : 2800
Prêmios :
x 0 x 0 x 0
x 0 x 1 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
- Java
- Godot
- Javascript
- C ou C++
Tópicos semelhantes
» [Tutorial] Janelas Dinâmicas IV
» [Tutorial] Janelas Dinâmicas I
» [Tutorial] Janelas Dinâmicas II
» Tutorial de Janelas Dinâmicas por Fuzenrad
» Janelas Dinâmicas com perguntas e respostas
» [Tutorial] Janelas Dinâmicas I
» [Tutorial] Janelas Dinâmicas II
» Tutorial de Janelas Dinâmicas por Fuzenrad
» Janelas Dinâmicas com perguntas e respostas
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos