Red de conocimiento informático - Conocimiento informático - Ayúdame a proporcionar un programa fuente de juego JAVA

Ayúdame a proporcionar un programa fuente de juego JAVA

Este es un programa de serpiente codiciosa, solo como referencia (da más puntos, los comentarios del código son muy detallados, quedarás muy satisfecho si das 100 puntos):

/******** ********** **************************************** *********** *************

* Puntos de análisis:

*1) La parte principal ha sido ensamblado en el objeto SnakeModel, y la operación se implementa mediante el control del teclado.

********************************************* *** ****************************/

importar java.awt.*;

importar java.awt. evento.*;

importar javax.swing.*

importar java.util.*; ! ! ! =========== ======================================= ========== /Clase principal

//================================= = ====

la clase pública GreedSnake implementa KeyListener

{

JFrame mainFrame

Canvas paintCanvas

JLabel labelScore; // marcador

SnakeModel SnakeModel=null; // serpiente

public static final int canvasWidth=200

public static final int canvasHeight= 300;

public static final int nodeWidth=10;

public static final int nodeHeight=10;

//------ --- ----------------------------------------- --- ----------

//GreedSnake(): Inicializa la interfaz del juego

//---------- ---- ---------------------------------------------- ---- -----

public GreedSnake()

{

// Establecer elementos de la interfaz

mainFrame=new JFrame("GreedSnake ");

Contenedor cp=mainFrame.add(labelScore, BorderLayout.NORTH);

paintCanvas=new Canvas();

paintCanvas .setSize(canvasWidth 1, altura del lienzo 1);

paintCanvas.addKeyListener(this);

cp.add(paintCanvas, BorderLayout.CENTER

JPanel panelButtom=new JPanel); ();

panelButtom.setLayout(new BorderLayout());

JLabel labelHelp; // Información de ayuda

labelHelp=new JLabel( "PageUp, PageDown para velocidad;", JLab

el .CENTER);

panelButtom.add(labelHelp, BorderLayout.NORTH);

labelHelp=new JLabel("ENTER o R o S significa inicio;", JLabel.

panelButtom.add(labelHelp, BorderLayout.CENTER);

labelHelp=new JLabel("Espacio o P significa pausa", JLabel.CENTER);

panelButtom. add(labelHelp, BorderLayout.SOUTH);

cp.add(panelButtom, BorderLayout.setVisible(true);

begin();

}

//------------------------------------------- ----- --------------------------

//keyPressed(): detección de clave

//----------------------------------------- ---- -----------------------

tecla pública vacía presionada (Evento clave e)

{

int keyCode=e.getKeyCode();

if(snakeModel.running) switch(keyCode)

{

case KeyEvent. VK_UP:

snakeModel.changeDirection(SnakeModel.UP);

romper;

caso KeyEvent.VK_DOWN:

snakeModel.VK_LEFT: n= (Node)nodeArray.removeLast(); // Quitar la cola

matriz[n.x][n.y]=false;

countMove;

return true;

}

}

}

return false; //fuera de límites (golpea la pared)

}

//-------------------------------------- --- -----------------------

//run(): Hilo de movimiento de serpiente

//------------------------------------------- ------ --------------------------

ejecución pública vacía()

{

ejecutando=true;

mientras(ejecutando)

{

intenta

{

Thread.sleep (timeInterval);

}catch(Exception e)

{

brea

k;

}

if(!paused)

{

if(moveOn())// no terminado

{

gs.repaint();

}

else// Se acabó el juego

{

JOptionPane.showMessageDialog(null, "GAME OVER",

"Game Over", JOptionPane.INFORMATION_MESSAGE

break; p> p>

}

}

corriendo=false;

}

//------ -------------------------------------------------- -- ------------

// createFood(): Genera comida y coloca la comida

//-------- ------------------------------------------------- - -----------

Nodo privado createFood()

{

int x=0;

int y=0;

hacer

{

Aleatorio r=nuevo Aleatorio();

x=r.nextInt( maxX );

y=r.nextInt(maxY) )

} while(matrix[x][y]);

devuelve nuevo Nodo(x , y);

}

//----------------------------- ---- ---------------------------- ------------

//speedUp ():acelera el movimiento de la serpiente

//------------------------------ ------------------ -------------------------------- ----

public void speedUp()

{

timeInterval*=speedChangeRate;

}

//--------------- -------------------------------- -------- ---------- -----

//speedDown(): ralentiza el movimiento de la serpiente

//- ----------------- --------------------------------- ----------------- -

public void speedDown()

{

timeInterval/=speedChangeRate;

}

// --------------------------------- -------------- --- --------------------

//cambiarPa

useState(): cambia el estado del juego (pausar o reanudar)

//----------------------- ---------------------------------------

cambio público vacíoPauseState( )

{

pausado=! pausado;

}

}

}