Come scrivere giochi in Java

November 17

Come scrivere giochi in Java


Il linguaggio di programmazione Java è diventata una scelta popolare per lo sviluppo a causa della sua struttura orientata agli oggetti e la sua interfaccia basata macchine virtuali che permette ai programmi scritti in Java di funzionare senza modifiche su una vasta gamma di sistemi operativi e computer, dai telefoni cellulari alle workstation .

E 'anche una piattaforma perfettamente in grado di sviluppo del gioco, e se si sta appena iniziando ad imparare sviluppo del gioco, è meglio iniziare semplice e creare un Pong-clone.

istruzione

1 Creare una classe e il nome JPong. Se si utilizza un IDE come Netbeans, è possibile farlo dal menu File. Tuttavia, anche un semplice editor di testo farà il lavoro: basta creare un file denominato \ "JPong.java \".

Incollare il seguente scheletro nel file:

java.awt.Canvas importazione
ANDARE
importazione javax.swing.JFrame
ANDARE
importazione java.awt.event.KeyListener
ANDARE
importazione java.awt.event.KeyEvent
ANDARE
importazione java.awt.Color
ANDARE
java.awt.Graphics importazione
ANDARE

public class Pong implementa KeyListener {

Pong pubblico () {}

public void keyPressed (KeyEvent e) {}

// Questi due sono richiesti dal compilatore, ma non saranno utilizzati nel vostro gioco.
public void keyReleased (KeyEvent e) {}
public void keyTyped (KeyEvent e) {}

draw public void () {}

detectCollision public boolean () {}

gioco public void () {}

void main (String args []) pubblici statici {}

}

Il resto dei passaggi gradualmente riempire lo scheletro di creare un gioco completo.

2 Definire i dati della classe avrà bisogno. Inserire questo al vertice della classe:

private int larghezza finale = 640;

int altezza finale privato = 480;

private int DELTA finale = 8
ANDARE
private int PADDLE_WIDTH finale = 32
ANDARE
private int PADDLE_HEIGHT finale = 128
ANDARE
privato finale int PUCK_RADIUS = 32
ANDARE

Grafica g
ANDARE

private int x1 = 20; // Posizione di paddle giocatore di A
private int y1 = 240
ANDARE
int x2 privato = 600; // Posizione di paddle giocatore di B
private int Y2 = 240
ANDARE

Doppia X privato = 60.0; // Posizione di palla
privato doppio y = 140.0
ANDARE
doppio vx privato = 2.0; // Velocità della palla
doppio vy privato = 1.0;

3 Crea il costruttore.

public Pong() {
JFrame f = new JFrame()

ANDARE

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

ANDARE

f.setTitle(\"Pong 1.0\")

ANDARE

f.setResizable(false)

ANDARE

Canvas c = new Canvas()

ANDARE

c.setSize(640, 480)

ANDARE

f.add(c)

ANDARE

f.pack()

ANDARE

f.setVisible(true)

ANDARE

g = c.getGraphics()

ANDARE

f.addKeyListener(this)

ANDARE

draw()

ANDARE

}

4 Creare il metodo keyPressed. Questo sarà chiamata ogni volta che l'utente preme un tasto sulla tastiera, e causerà le palette per muovono quando vengono premuti determinati tasti:

public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_UP) y2 = y2 - DELTA

ANDARE

else if (e.getKeyCode() == KeyEvent.VK_DOWN) y2 = y2 + DELTA

ANDARE

else if (e.getKeyChar() == 'i') y1 = y1 - DELTA

ANDARE

else if (e.getKeyChar() == 'k') y1 = y1 + DELTA

ANDARE

}

5 Creare il metodo draw che trarrà lo schermo ogni frame del gioco.

public void draw() {
g.setColor(Color.black)

ANDARE

g.fillRect(0, 0, WIDTH, HEIGHT)

ANDARE

g.setColor(Color.red)

ANDARE

g.fillRect(x1, y1, PADDLE_WIDTH, PADDLE_HEIGHT)

ANDARE

g.setColor(Color.green)

ANDARE

g.fillRect(x2, y2, PADDLE_WIDTH, PADDLE_HEIGHT)

ANDARE

g.setColor(Color.yellow)

ANDARE

g.fillOval((int)x, (int)y, PUCK_RADIUS, PUCK_RADIUS)

ANDARE

}

6 Creare il metodo di rilevamento delle collisioni che determinerà se il disco ha colpito una delle pale:

public boolean detectCollision() {
// Test for collision with first paddle
if (y + vy > y1 &&
y + vy < y1 + PADDLE_HEIGHT &&
x + vx < x1 + PADDLE_WIDTH &&
x + vx> x1) {
return true

ANDARE

}

// Test per collisione con la seconda pala
else if (y + Vy> Y2 & amp; & amp;
y + Vy & lt; y2 + PADDLE_HEIGHT & amp; & amp;
x + vx + PUCK_RADIUS> x2 & amp; & amp;
x + vx + PUCK_RADIUS & lt; x2 + PADDLE_WIDTH) {
return true

ANDARE

}
else return false

ANDARE

}

7 Creare il ciclo di gioco. Questa funzione coordina le altre eseguendo continuamente finché il gioco è aperta:

public void play() {
while (true) {
if (x + vx < 0 || x + vx > WIDTH || detectCollision()) vx = -vx

ANDARE

if (y + vy < 0 || y + vy > HEIGHT) vy = -vy

ANDARE

x = x + vx

ANDARE

y = y + vy

ANDARE

draw()

ANDARE

try {
Thread.sleep(30)

ANDARE

} catch (Exception e) {
e.printStackTrace()

ANDARE

}
}
}

8 Creare la funzione principale. Questo è il modo di ingresso al programma è richiesta da tutte le applicazioni Java. Tutto ciò che fa è creare il gioco e iniziare la funzione di riproduzione in corso.

public static void main(String args[]) {
Pong p = new Pong()

ANDARE

p.play()

ANDARE

}