Hvordan skrive Games i Java
Java programmeringsspråk har blitt et populært valg for utvikling på grunn av sin objektorientert struktur og sin virtuelle maskin basert grensesnitt som gjør at programmer skrevet i Java for å kjøre uten modifikasjon på et bredt utvalg av operativsystemer og datamaskiner, fra mobiltelefoner til arbeidsstasjoner .
Det er også en helt i stand plattform for spillutvikling, og hvis du bare starte å lære spillutvikling, er det best å starte enkelt og lage en Pong-klone.
Bruksanvisning
1 Lag en klasse og name it JPong. Hvis du bruker en IDE som NetBeans, kan du gjøre dette fra filmenyen. Imidlertid vil selv en enkel teksteditor gjøre jobben: bare lage en fil som heter \ "JPong.java \".
Lim inn følgende skjelett i filen:
import java.awt.Canvas
GÅ
import javax.swing.JFrame
GÅ
import java.awt.event.KeyListener
GÅ
import java.awt.event.KeyEvent
GÅ
import java.awt.Color
GÅ
import java.awt.Graphics
GÅ
public class Pong implementerer KeyListener {
offentlig Pong () {}
public void keyPressed (KeyEvent e) {}
// Disse to er nødvendig av kompilatoren, men vil ikke bli brukt i spillet.
public void keyReleased (KeyEvent e) {}
public void keyTyped (KeyEvent e) {}
public void draw () {}
public boolean detectCollision () {}
public void play () {}
public static void main (String args []) {}
}
Resten av trinnene vil gradvis fylle i skjelettet for å skape et komplett spill.
2 Definer dataene klassen trenger. Sett dette på toppen av klassen:
private final int BREDDE = 640;
private final int height = 480;
private final int DELTA = 8
GÅ
private final int PADDLE_WIDTH = 32
GÅ
private final int PADDLE_HEIGHT = 128
GÅ
private final int PUCK_RADIUS = 32
GÅ
Graphics g
GÅ
private int x1 = 20; // Plassering av spiller A padle
private int y1 = 240
GÅ
private int x2 = 600; // Plassering av spiller B padle
private int y2 = 240
GÅ
private double x = 60,0; // Plassering av ball
private double y = 140,0
GÅ
privat dobbel vx = 2.0; // Hastighet på ball
privat dobbel vy = 1,0;
3 Lag konstruktøren.
public Pong() {
JFrame f = new JFrame()
GÅ
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
GÅ
f.setTitle(\"Pong 1.0\")
GÅ
f.setResizable(false)
GÅ
Canvas c = new Canvas()
GÅ
c.setSize(640, 480)
GÅ
f.add(c)
GÅ
f.pack()
GÅ
f.setVisible(true)
GÅ
g = c.getGraphics()
GÅ
f.addKeyListener(this)
GÅ
draw()
GÅ
}
4 Lag keyPressed metoden. Dette vil bli kalt når brukeren trykker på en tast på tastaturet, og det vil føre til padleårer til å bevege seg når visse taster trykkes:
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_UP) y2 = y2 - DELTA
GÅ
else if (e.getKeyCode() == KeyEvent.VK_DOWN) y2 = y2 + DELTA
GÅ
else if (e.getKeyChar() == 'i') y1 = y1 - DELTA
GÅ
else if (e.getKeyChar() == 'k') y1 = y1 + DELTA
GÅ
}
5 Lag trekningen metode som vil trekke skjermen hver spillrammen.
public void draw() {
g.setColor(Color.black)
GÅ
g.fillRect(0, 0, WIDTH, HEIGHT)
GÅ
g.setColor(Color.red)
GÅ
g.fillRect(x1, y1, PADDLE_WIDTH, PADDLE_HEIGHT)
GÅ
g.setColor(Color.green)
GÅ
g.fillRect(x2, y2, PADDLE_WIDTH, PADDLE_HEIGHT)
GÅ
g.setColor(Color.yellow)
GÅ
g.fillOval((int)x, (int)y, PUCK_RADIUS, PUCK_RADIUS)
GÅ
}
6 Opprett dueller metode som vil avgjøre om pucken har rammet en av padleåre:
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
GÅ
}
// Test for kollisjon med andre padle
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
GÅ
}
else return false
GÅ
}
7 Lag spillet loop. Denne funksjonen koordinerer de andre ved å kjøre kontinuerlig så lenge spillet er åpent:
public void play() {
while (true) {
if (x + vx < 0 || x + vx > WIDTH || detectCollision()) vx = -vx
GÅ
if (y + vy < 0 || y + vy > HEIGHT) vy = -vy
GÅ
x = x + vx
GÅ
y = y + vy
GÅ
draw()
GÅ
try {
Thread.sleep(30)
GÅ
} catch (Exception e) {
e.printStackTrace()
GÅ
}
}
}
8 Lag den viktigste funksjonen. Dette er måten oppføringen til programmet, og kreves av alle Java-programmer. Alt den gjør er å lage spillet og starte avspilling funksjon som skjer.
public static void main(String args[]) {
Pong p = new Pong()
GÅ
p.play()
GÅ
}