FLEXPIXEL FÓRUM
Bem vindo ao fórum, em nossa comunidade disponibilizamos diversos artigos com diversos assuntos, jogos, tutoriais, informática, e support a todos... Pedimos a todos que se cadastre-se gratuitamente e participe da família do portal, tenham uma boa estadia esperamos que postem muito conteúdo e seja bastante ativo.

- Atenção: escolha uma das opções abaixo caso deseja ver outros conteúdos que estão privados para convidados, cadastre-se agora e receba muitos conteúdos e claro né junte se à família.
FLEXPIXEL FÓRUM

Seu fórum de games e notícias!


Você não está conectado. Conecte-se ou registre-se

Entrada de teclado - Moon lander

Por favor, faça o login para responder

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

#1TheFélixCostaFernanades 

em Ter Jul 21, 2015 12:10 pm

avatar

Admin

Admin

Entrada de teclado - Moon lander

Neste java tutorial, você vai aprender como obter entrada do teclado e movendo o objeto com base nessa entrada. 
Vamos fazer um jogo com o objetivo de desembarcar o foguete na área de desembarque o mais rápido possível.


O que nos faremos

Em primeiro lugar quando o jogo se abre vamos mostrar imagem do menu principal com fundo e jogo do título e um texto que deixe jogador sabe como começar o jogo. Jogador será capaz de iniciar o jogo com pressionando qualquer tecla. 
Quando o jogador começa o jogo, vamos chamar o método NewGame () que irá criar o jogo e iniciá-lo. No leitor de jogo terá que pousar suavemente o foguete. Se a velocidade de foguetes é muito alto quando aterrava ou se bandejas jogador para pousar fora da área de aterragem, em seguida, os acidentes de foguetes. Gravidade vai puxar para baixo o foguete para a lua.Jogador irá controlar o foguete com as teclas WAD. Quando as terras jogador ou derrubar o foguete o jogo termina. 
Quando o jogo termina, vamos desenhar na tela como reiniciar o jogo. Jogador será capaz de reiniciar o jogo com o espaço ou a tecla enter.
Faça o download do código fonte do jogo, na parte inferior desta página para que você possa verificá-la durante a leitura deste. Além disso, o código fonte é comentado, então leia os comentários.

Jogo classes

Este jogo tem seis classes - quatro do quadro jogo e dois adicionais - Window.java, Canvas.java, Framework.java, Game.java, PlayerRocket.java e LandingArea.java.
Window.java
Nesta classe eu configurar título do jogo para ser "lander da lua" e tamanho da janela de 800 x 600.
Canvas.java
Nesta classe eu não definir nada.
Framework.java
Nesta classe I adicionar uma variável - moonLanderMenuImg. Seu tipo é BufferedImage e conterá a imagem para o menu principal. No método LoadContent () eu adicionar código para carregar esta imagem. 
Em método draw (Graphics2D G2d) Tenho código introduzido por três estados. Em estado "GAMEOVER" Eu adicionar chamada para game.DrawGameOver método (G2d, MousePosition (), GameTime) que desenha um "game over tela". Veremos esse método na classe Game.java. O segundo estado em que eu inseri o código é "MAIN_MENU". Aqui eu desenhar a imagem para o menu eo texto principal, que diz jogador como começar e quais teclas usar para jogar. Por último, o terceiro estado é "GAME_CONTENT_LOADING"; neste estado eu adicionar código para desenhar na tela texto "jogo está carregando". 
A última coisa que eu adicionar nesta classe é o código em keyReleasedFramework (KeyEvent e) método. Aqui eu adicionar instrução switch para estados de jogo. Quando estamos em estado "MAIN_MENU" e qualquer tecla é liberada um método NewGame () será chamado para que o jogo vai começar. E quando estamos em estado "GAMEOVER" vamos verificar se a tecla de espaço ou digite foram liberados e se fossem chamamos restartGame método ().
Game.java
Aqui temos quatro variáveis. Um representa foguete - playerRocket; outro representa a área de desembarque - landingArea. Outros dois são imagens; . uma para o fundo, outra para vermelho borda do quadro quando foguete caiu 
Nós inicializar variáveis ​​e imagens de carga em métodos Inicializar () e LoadContent (). 
No método RestartGame () que chamamos playerRocket.ResetPlayer (); de modo que foguete é reposto quando reiniciar o jogo. 
No método UpdateGame (long GameTime, Ponto MousePosition) nos movemos foguete e verificar se o foguete ainda está no espaço ou é desembarcado ou caiu. 
No Draw (Graphics2D G2d, Ponto método MousePosition) traçamos fundo jogo, área de aterragem e do foguete. 
Em DrawGameOver (Graphics2D G2d, Ponto MousePosition, longa GameTime) Método traçamos "game over tela". Em primeiro lugar nós chamamos Draw (G2d, MousePosition) Método de modo que o fundo jogo, área de desembarque eo foguete são afogados. Em seguida, desenhar algum texto e moldura vermelha fronteira dependendo se o foguete seja desembarcada ou caiu.
LandingArea.java
Esta classe representa uma área de pouso em que o foguete terá que pousar. Temos as variáveis ​​x e y que representa as coordenadas de onde a área de desembarque será desenhado no frame / janela do jogo. Nas coordenadas canto superior esquerdo são 0:. 0Seguinte variável é landingAreaImg que conterá imagem da área de aterragem. Última variável é landingAreaImgWidth que irá conter a largura da imagem da área de pouso. Em Initialize () método que definir x e y coordenadas para a área de pouso. No método LoadContent () que carregar uma imagem da área de aterragem e inicializar landingAreaImgWidth variável agora que nós podemos começar largura da imagem. No método draw (Graphics2D G2d) Chamamos a área de pouso na tela. 





PlayerRocket.java
Esta classe representa um foguete que jogador terá de pousar. Aqui nós temos variáveis ​​x e y para coordena o foguete que vai mudar durante o jogo. Então nós temos variáveis ​​boolean desembarcados e caiu que indicam se o foguete seja desembarcada ou caiu, se ambas são falsas, em seguida, foguete ainda está no espaço. Então nós temos algumas outras variáveis, basta olhar para o código-fonte e ler os comentários. No construtor da classe Montamos começando coordenada x para o foguete. A razão pela qual aqui, é porque nós definir dinamicamente a partir de coordenadas x para o foguete e em Initialize () método que ainda não têm uma largura da imagem do foguete, mas aqui temos. Vamos dar uma olhada no Update () Método . Neste método nós mover o foguete. Primeiro vamos verificar se o jogador mantenha a tecla e se ele, então nós subtrair Speedy variável por speedAccelerating W. Se a tecla W não é baixo, então somarmos a Speedy variável. Então nós fazer quase o mesmo para mover o foguete deixou. A única diferença aqui é que nós só adicionar ao Speedx até parar de foguetes, até chegar a zero. Nós fazemos o mesmo para mover-se à direita, exceto que nós acrescentar a Speedx quando o jogador mantém pressionada a tecla D. No final do Update () método que realmente mover o foguete - nós mudar as coordenadas de foguetes pela velocidade que eu calculei acima. Em Draw ( Graphics2D método G2d) que desenhar a imagem foguete foguetes e coordenadas. 








Exercício

Faça um meteoro entre foguete e da lua para que jogador terá de evitá-lo.


Download do jogo  |  Java Web Start 
código fonte Download



Gif:




Musica:


Moderador - Fórum Progame


Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Por favor, faça o login para responder

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum