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
[Atualizado] Menu rotatório
5 participantes
GMBR :: Projetos :: Idéias e Enredos
Página 1 de 1
[Atualizado] Menu rotatório
Olá pessoal!
Estou criando um menu rotatório que pelo jeito precisa de uma boa avaliação, pois perdi 7 horas para que o mesmo ficasse pronto (até o momento).
O que esse menu tem de bom???
--> Efeitos sonoros ao girá-lo e na animação do mesmo.
--> Tem capacidade para apenas 6 itens (triângulos).
--> Itens tem seus próprios ícones representando suas funções
--> Tem uma engine minha que exibe mensagens na parte de baixo da tela
--> Resolução baixa (640x480 [padrão])
--> Acho que só...
[EDIT]
--> Pede o nome do jogador
--> O menu fica fechado quando ele está em segundo plano (no jogo e não no Windows!)
--> Adicionei uma engine minha que pede o nome do jogador
--> Fundo trocado para a cor preta
--> Invertida a posição no menu fechar que antes o "X" ficava em baixo
Controles:
-->Para move-lo use as setas [<] e [>]
-->Para Selecionar uma opção use [Enter]
Aí vão 4 imagens "novas" dele:
----------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------
Download(1.55 MB)
Espero que gostem dessa minha ideia...
Estou criando um menu rotatório que pelo jeito precisa de uma boa avaliação, pois perdi 7 horas para que o mesmo ficasse pronto (até o momento).
O que esse menu tem de bom???
--> Efeitos sonoros ao girá-lo e na animação do mesmo.
--> Tem capacidade para apenas 6 itens (triângulos).
--> Itens tem seus próprios ícones representando suas funções
--> Tem uma engine minha que exibe mensagens na parte de baixo da tela
--> Resolução baixa (640x480 [padrão])
--> Acho que só...
[EDIT]
--> Pede o nome do jogador
--> O menu fica fechado quando ele está em segundo plano (no jogo e não no Windows!)
--> Adicionei uma engine minha que pede o nome do jogador
--> Fundo trocado para a cor preta
--> Invertida a posição no menu fechar que antes o "X" ficava em baixo
Controles:
-->Para move-lo use as setas [<] e [>]
-->Para Selecionar uma opção use [Enter]
Aí vão 4 imagens "novas" dele:
----------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------
Download(1.55 MB)
Espero que gostem dessa minha ideia...
Última edição por PHProductions em Seg 10 Jun 2013, 18:30, editado 1 vez(es) (Motivo da edição : modificações no menu)
NPH- Games Ranking :
Notas recebidas : B
Data de inscrição : 28/11/2010
Reputação : 58
Número de Mensagens : 504
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Plataformas :- Game Maker Studio 1.4
- Game Maker Studio 2.0
Re: [Atualizado] Menu rotatório
Eu dei uma olhada no seu menu rotatório,e gostei (e gosto ) bastante do seu trabalho que é sempre evolutivo, quanto ao seu menu, fiz alguns testes e funcionou bem até onde eu vi, o efeito gradiente está legal , só não posso opinar muito porque não sei que jogo você pretende fazer usando ele, mas a ideia é boa sim, só cuide as cores para ver se elas combinarão com seu jogo, a unica sugestão que eu te dou é no menu de sair do jogo que você colocou invertido, ele deveria vir com a função não (X) na parte de cima por que essa é uma função que quem joga usará uma vez só, e evita de sair do jogo por engano, foi a unica coisa que eu vi que da para melhorar, fora isso as outras funções funcionam bem, boa sorte com seu jogo. pretende fazer outro jogo de tanques ninjas, se for, poderia ter umas Pizzas para carregar a vida né xD.
JoaoVanBlizzard- Games Ranking :
Notas recebidas : B+B
Data de inscrição : 04/03/2012
Reputação : 144
Número de Mensagens : 1926
Prêmios :
x 0 x 0 x 0
x 1 x 2 x 0
x 0 x 0 x 0
Plataformas :- Game Maker 8.0 ou 8.1
- Game Maker Studio 1.4
- Unity
Re: [Atualizado] Menu rotatório
wal que sistema incrivel vc pode por uma GMK eu lhe dou mil creditos com letras grandes!se eu fizer um jogo com ela!
LightSpeedy- Games Ranking :
Notas recebidas : C
Data de inscrição : 24/04/2013
Reputação : 40
Número de Mensagens : 354
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Atualizado] Menu rotatório
Bota o download do GMK, ficou muito bom cara
Supersonic822- Data de inscrição : 12/03/2013
Reputação : 5
Número de Mensagens : 19
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Atualizado] Menu rotatório
Ainda estou adicionando comandos a ele, é só para testes por enquanto...
Valeu a quem testou e aprovou o mesmo.
Valeu a quem testou e aprovou o mesmo.
NPH- Games Ranking :
Notas recebidas : B
Data de inscrição : 28/11/2010
Reputação : 58
Número de Mensagens : 504
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Plataformas :- Game Maker Studio 1.4
- Game Maker Studio 2.0
Re: [Atualizado] Menu rotatório
Muito bom!
Sugiro permitir rodar por completo. Ele parece estar limitado entre as opções 0-n. Se você usar (opção+1) mod nOpções, isso se resolve. Pra não girar pro lado errado, você pode usar a seta que foi pressionada.
Não consegui imaginar porque o limite é de 6 opções. Geometria?
Sugiro permitir rodar por completo. Ele parece estar limitado entre as opções 0-n. Se você usar (opção+1) mod nOpções, isso se resolve. Pra não girar pro lado errado, você pode usar a seta que foi pressionada.
Não consegui imaginar porque o limite é de 6 opções. Geometria?
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: [Atualizado] Menu rotatório
Não, é por causa da programação mesmo...saim escreveu:Não consegui imaginar porque o limite é de 6 opções. Geometria?
Para se ter uma ideia de quantas linhas de código esse menu usa, vou postar abaixo quantas linhas cada evento dele tem:
[Create] 65 linhas
[Step A] 124 linhas
[Step B] 112 linhas
[Draw] 38 linhas
Ou seja: [339] linhas no total em apenas um objeto.
Por isso as 7 horas para montá-lo por completo, e ainda acho que terá mais linhas por vir.
Bom, o importante é que eu estou aprendendo mais e mais a programar no Game Maker.
Valeu pelo comentário!
[EDIT]
O menu Foi atualizado e seguindo uma sugestão do usuário "JoaoVanBlizzard":
Valeu JoaoVanBlizzard, foi muito útil.JoaoVanBlizzard escreveu:...a unica sugestão que eu te dou é no menu de sair do jogo que você colocou invertido, ele deveria vir com a função não (X) na parte de cima por que essa é uma função que quem joga usará uma vez só, e evita de sair do jogo por engano, foi a unica coisa que eu vi que da para melhorar...
Última edição por PHProductions em Seg 10 Jun 2013, 18:37, editado 1 vez(es) (Motivo da edição : agradecer um usuário...)
NPH- Games Ranking :
Notas recebidas : B
Data de inscrição : 28/11/2010
Reputação : 58
Número de Mensagens : 504
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Plataformas :- Game Maker Studio 1.4
- Game Maker Studio 2.0
Re: [Atualizado] Menu rotatório
PHProductions escreveu:[339] linhas no total em apenas um objeto.saim escreveu:Não consegui imaginar porque o limite é de 6 opções. Geometria?
Por isso as 7 horas para montá-lo por completo, e ainda acho que terá mais linhas por vir.
Acho que está na hora de rever sua forma de programar. Realmente me parece um número muito grande de linhas pra uma tarefa relativamente simples. Não estou menosprezando seu menu, ele é muito bacana, mas é um efeito que dá pra conseguir com menos esforço, se você souber indexar itens. Veja meu objeto-roleta, que faz mais ou menos a mesma coisa (embora com menos efeitos legais e um controle diferente). Ele está na minha engine de controles adaptados pra touch, então é open-source. Usei 151 linhas, com direito a comentários e cabeçalhos do "object info":
- Spoiler:
- Information about object: objRoletaSprite: sprRoleta
Solid: false
Visible: true
Depth: -3
Persistent: false
Parent:
Mask:
Create Event:
execute code:
image_angle = 0; //ângulo da imagem
angSpd = 0; // velocidade angular
angRef = 0; //ângulo de referência pra giro
roll = false;
drag = false;
decay = 0.5; //taxa de decaimento de velocidade angular
angRes = -45; //ângulo do resultado
valor = 0;
valorAnterior = valor;
nValores = 4;
angValor = 360 / nValores;
var i;
for(i = 0; i < nValores; i += 1){
angC[i] = (i + 0.5) * angValor + angRes;
}
image_angle = angC[0];
scale = 1; //escala em x e em y
scaMax = 1.2; //escala máxima
scaDelta = scaMax - 1; // diferença entre a máxima e a mínima
scaRef = 0; //efetivamente calculado ao largar o mouse, o quanto a escala deve diminuir
scaDecay = 0.05; // decaimento mínimo da escala (exceto quando solto já no ponto)
event_perform(ev_other, ev_user0);
Step Event:
execute code:
if (roll == true){ //se está rodando
var parou;
parou = false; // se parou NESSE step
if (drag == true) { //se está sendo controlado pelo jogador
var newAng;
newAng = point_direction(x, y, mouse_x, mouse_y); //direção atual do mouse
angSpd = ((((newAng - angRef) mod 360) + 540) mod 360) - 180; //diferença entre atual e anterior
image_angle += angSpd; //acompanha a diferença
angRef = newAng; //atualiza a referência
}
else { //se o jogador soltou, mas ainda está rolando
image_angle = (image_angle + angSpd + 360) mod 360; //mantém o giro e mantém entre 0 e 360
// fricção angular
if (angSpd > 0){
angSpd = max(angSpd - decay, 0);
}
if (angSpd < 0){
angSpd = min(angSpd + decay, 0);
}
if (scaRef != 0){ //se tem velocidade pra ser proporcional
scale = 1 + angSpd / scaRef * scaDelta;
}
else{
scale = max(1, scale - scaDecay);
}
if (abs(angSpd) <= decay){ //se a velocidade caiu demais, vai lentamente pra uma posição padrão
parou = true;
var newAng;
newAng = sign(((((angC[valor] - image_angle) mod 360) + 540) mod 360) - 180); //lado pra rodar
image_angle += newAng * decay; //velocidade pra rodar
if (abs(((((image_angle - angC[valor]) mod 360) + 540) mod 360) - 180) <= decay){ //se chegou na posição
roll = false; //para de rodar
scale = 1;
}
}
image_xscale = scale; image_yscale = scale;
}
valor = ((image_angle - angRes) div angValor) mod nValores; //se está rodando, o valor tem que ser atualizado
if (parou && valorAnterior != valor){
valorAnterior = valor;
event_perform(ev_other, ev_user0);
}
}
Mouse Event for Left Pressed:
execute code:
drag = true; //arrastando
roll = true; //rolando
angRef = point_direction(x, y, mouse_x, mouse_y); //referência pro próximo step
scale = scaMax; //escala em x e y
image_xscale = scale; image_yscale = scale;
Mouse Event for Glob Left Released:
execute code:
if (drag == true){
drag = false; //para de arrastar
scaRef = angSpd; //referência pra escala, proporcional ao giro
}
Other Event: User Defined 0:
execute code:
with(objControleParent){
instance_destroy();
}
controle[0] = 0;
controle[1] = 0;
switch(valor){
case 0: {
instance_create(0, 0, objControleJoy);
}; break
case 1: {
instance_create(0, 0, objControleBotoes);
}; break
case 2: {
instance_create(0, 0, objAcelerometro);
}; break
case 3: {
instance_create(0, 0, objControleBot3P);
}; break
}
Draw Event:
execute code:
// draw_line_color(x, y, x + lengthdir_x(110, angRes), y + lengthdir_y(110, angRes), $ff0000, $ff0000);
draw_sprite_ext(sprite_index, image_index, x, y, image_xscale, image_yscale, image_angle, image_blend, image_alpha);
/*
debug
var i; i = 20;
draw_text(20, i, "angRef: " + string(angRef)); i += 20;
draw_text(20, i, "image_angle: " + string(image_angle)); i += 20;
draw_text(20, i, "angSpd: " + string(angSpd)); i += 20;
draw_text(20, i, "resultado: " + string(valor + 1)); i += 20;
draw_text(20, i, "angC: " + string(angC[valor])); i += 20;
draw_text(20, i, "roll: " + string(roll)); i += 20;*/
Claro que não é a mesma coisa. Não pretendo comparar os dois objetos, apenas mostrar uma forma diferente de programar, mais genérica.
Agora... quanto às horas de trabalho, a coisa varia. Nessa roleta, eu devo ter gasto menos tempo. Umas 3 a 4 horas, + o tempo de fazer a sprite (eu demoro muito pra desenhar, mesmo coisas simples). Mas pra aprender a programar assim, usando mod, geometria, prevendo problemas... devo ter gasto uns 2 dias. De trabalho. Sem contar as horas de sono, horas sem estudar, horas fazendo outras coisas. Foram 2 dias espalhados ao longo de, digamos, um ano.
Eu ainda faço um tutorial a respeito de indexação... tudo que tem id pode ser indexado e jogado em arrays. Tudo. Objetos, instâncias, paths, sons, timelines, constantes, eventos.
E até scripts.
Porque eu deixei uma linha separada pra citar scripts? O que acontece no seu menu quando você aperta "enter"?
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: [Atualizado] Menu rotatório
Saim, cara! Se eu tivesse uma noção de como se usar arrays, até valeria seu comentário menosprezando o meu menu, mas eu não sei usar esse tipo de programação no GM, sempre que eu tento dá erros fatais, o que me fez desistir definitivamente de usar arrays em meus jogos. Quanto ao tempo, ele foi feito em apenas 7 horas. Menos de um dia.
Se você pudesse me ensinar a usar arrays, pois eu não tenho nem noção de como se usa isso.
Bom, obrigado por ter comentado e esqueci de avisar ao pessoal que o menu está desatualizado e que vou postar uma atualização hoje a noite.
Se você pudesse me ensinar a usar arrays, pois eu não tenho nem noção de como se usa isso.
Bom, obrigado por ter comentado e esqueci de avisar ao pessoal que o menu está desatualizado e que vou postar uma atualização hoje a noite.
NPH- Games Ranking :
Notas recebidas : B
Data de inscrição : 28/11/2010
Reputação : 58
Número de Mensagens : 504
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Plataformas :- Game Maker Studio 1.4
- Game Maker Studio 2.0
Re: [Atualizado] Menu rotatório
Velho, não foi minha intenção menosprezar seu menu... mais uma vez, ele está muito bacana! É o seu jeito de programar que pode melhorar. Não tem nada de errado, só pode melhorar.
Existe um tutorial a respeito de arrays na minha assinatura. Talvez os links dele estejam desatualizados, mas o tutorial deveria ser suficiente, por si só.
Arrays definitivamente facilitam a programação.
Arrays não são mais do que conjuntos de variáveis. Deixa eu fazer uma analogia, aqui... pense num armário horizontal, com quantas portas você quiser. Ele é modulado, então você pode colocar mais e mais portas. A princípio, a quantidade de portas que você pode colocar é infinita, você só precisa colocar uma plaquinha com um número em cada porta. Na primeira porta, o número "0", na segunda, o número "1", e assim por diante.
porta[0]; porta[1]; e assim por diante.
Em cada porta, você coloca um papel com algo escrito. Um valor. Se te parece um desperdício de armário, pense em armários pequenininhos. Ou papéis grandes.
Pratique arrays. Em pouco tempo você vai se perguntar como era possível programar sem elas.
Existe um tutorial a respeito de arrays na minha assinatura. Talvez os links dele estejam desatualizados, mas o tutorial deveria ser suficiente, por si só.
Arrays definitivamente facilitam a programação.
Arrays não são mais do que conjuntos de variáveis. Deixa eu fazer uma analogia, aqui... pense num armário horizontal, com quantas portas você quiser. Ele é modulado, então você pode colocar mais e mais portas. A princípio, a quantidade de portas que você pode colocar é infinita, você só precisa colocar uma plaquinha com um número em cada porta. Na primeira porta, o número "0", na segunda, o número "1", e assim por diante.
porta[0]; porta[1]; e assim por diante.
Em cada porta, você coloca um papel com algo escrito. Um valor. Se te parece um desperdício de armário, pense em armários pequenininhos. Ou papéis grandes.
- Código:
porta[0] := 12;
porta[1] := obj_player;
porta[2] := script_sair_do_jogo;
porta[3] := "essa array não serve pra nada";
- Código:
draw_text(x, y, porta[3]);
- Código:
texto := "essa array não serve pra nada";
draw_text(x, y, texto);
- Código:
texto[0] := "primeiro texto";
texto[1] := "segundo";
texto[2] := "tá ficando chato";
texto[3] := "já deu";
for (i := 0; i < 4; i += 1){
draw_text(x, y + 20 * i, texto[i]);
}
Pratique arrays. Em pouco tempo você vai se perguntar como era possível programar sem elas.
Última edição por saim em Seg 17 Jun 2013, 14:59, editado 1 vez(es)
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: [Atualizado] Menu rotatório
Valeu, vou ver se consigo programar alguma coisa com a sua explicação...
NPH- Games Ranking :
Notas recebidas : B
Data de inscrição : 28/11/2010
Reputação : 58
Número de Mensagens : 504
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Plataformas :- Game Maker Studio 1.4
- Game Maker Studio 2.0
Tópicos semelhantes
» [Tutorial]Menu rotatório.
» [atualizado] Meu novo menu
» [Resolvido]Mine game Tartaruga Verde em Game Maker pro
» RuinsOfMechanica~22%[ATUALIZADO]
» [RESOLVIDO]Bug reverso
» [atualizado] Meu novo menu
» [Resolvido]Mine game Tartaruga Verde em Game Maker pro
» RuinsOfMechanica~22%[ATUALIZADO]
» [RESOLVIDO]Bug reverso
GMBR :: Projetos :: Idéias e Enredos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos