[Java]Opção e seleção de escolha de menu, para jogos 2D Hitskin_logo Hitskin.com

Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o temaVoltar para a ficha do tema

Aldeia RPG
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

[Java]Opção e seleção de escolha de menu, para jogos 2D

Ir para baixo

[Java]Opção e seleção de escolha de menu, para jogos 2D Empty [Java]Opção e seleção de escolha de menu, para jogos 2D

Mensagem por CDZ Seg maio 13, 2019 9:02 pm

Tipo: Tutorial
Nível: Intermediário.
Linguagem: java.
Contato e mais informações:   : https://lucasindiesh1p.wordpress.com/ 
Mais tutorais sobre: https://lucasindiesh1p.wordpress.com/2019/05/13/javaopcao-e-selecao-de-escolha-de-menu-para-jogos-2d/  
 
Sumário:
1º- Primeiro planeje a forma visual do menu;
2º- Como será a forma visual do seletor da opção;
3º- Crie as condições de controle do seletor da opção.
 
Conteúdo:
 
1º: Decidido quantas opções o menu vai ter, e como o visual dele é apresentado? (por imagens, ou apenas strings, formas geométricas etc?).
 
Por exemplo, desenhando Strings para representar um menu com 2 opções (Entrar e sair):
Dentro do método  responsável pelo desenho do menu:
 

Código:
...
g.setFont(new Font("Times new Roman", Font.BOLD, 20));
g.drawString("Entrar", 50, 150);
g.drawString("Sair", 50, 175); 
...
 


2º: Decidido como vai ser a forma visual do seletor do item do menu no seu game.
exemplo:
Uma esfera azul ficará ao lado esquerdo da opção que o usuário deseja.
Declaramos uma variável que substituirá a coordenada y do seletor, para que o usuário possa controlar o seletor. E a inicializamos dentro do construtor:
 

Código:
...
private int coord_seletor_y;
...
public NomeDoConstrutorDaClasse{
 coord_seletor_y = 135; //o valor inicial de sua posição y.
...
}
...



 
Agora, no método responsável por desenhar o menu, desenhamos o seletor de itens do menu:
 

Código:

...
g.setColor(Color.blue); 

g.fillOval(20, coord_seletor_y, 10, 10);

...
Nota: coord_seletor_y, trata-se de uma variável privada, que inventamos ao declara-lá e inicializa-la no construtor, que conterá o valor da coordenada y do ponteito. Fazemos isso pois a coordenada y precisa ser manipulada pelo usuário (ela é a responsável posicionar o seletor, para cima ou para baixo). 
Poderiamos fazer o mesmo com a coordenada x (no caso está 20, mas substituiríamos por uma variável privada), mas no exemplo desse conteúdo os itens serão listados com um fluxo topo-baixo apenas.
 
 
3º -  Agora, vamos criar mais uma variável privada, item_n, esta variável será o que gera o "nexo" logico entre a esfera azul (seletor) e o item que o usuário quer selecionar. 
 

Código:

...

private int item_n;

...

public NomeDoConstrutorDaClasse{

...
item_n = 1; //vai começar ao lado da primeira posição do menu
...

}

...

Agora vamos configurar a mudança tanto do valor do item quanto da coordenada para que ocorra quando o usuário aperta as teclas W (a coordenada y vai levar a esfera azul para cima) ou S ( a coordenada y vai levar a esfera azul para baixo):
 

Código:

public void keyPressed(KeyEvent e) {
int c = e.getKeyCode();
...

if(c == KeyEvent.VK_W){
coord_seletor_y-= 25;
if(coord_seletor_y <= 135){
coord_seletor_y = 135;
item_n = 1;
}
else{
item_n = 2;

}

}
}
if(c== KeyEvent.VK_S){
coord_seletor_y+= 25;
if(coord_seletor_y >= 160){
coord_seletor_y= 160;
item_n = 2;
}
else{
item_n= 1;
}
}
...

E então, graças a variável item_n, agora diferenciar as coisas que vão acontecer a depender do item selecionado, quando o usuário apertar a tecla ENTER, nesse exemplo:



Código:
public void keyPressed(KeyEvent e) {

int c = e.getKeyCode();
...
if(c == KeyEvent.VK_ENTER){
if(item_n== 1){
//novo jogo
}
if(item_n == 2){
//Sair
System.exit(0);
}
}
CDZ
CDZ
Novato
Novato

Mensagens : 22
Créditos : 0

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