maarten54321
Gebruiker
- Lid geworden
- 7 nov 2010
- Berichten
- 121
Hallo iedereen,
Ik ben al een tijdje bezig met Java te leren uit een boek en nu wou ik eens mijn eigen spel programmeren maar ik zit vast. Het doel is om een soort van 2D schietspel te maken. Nu wil ik mijn mijn methode start aanroepen vanuit createGUI of main maar dit lukt niet... Mijn compiler zegt: exception in thread main. Het hoofdstuk debuggen is wel nog niet aan bod gekomen (ik heb het boek nog niet uit).
Alvast bedankt!
En mijn script:
Ik ben al een tijdje bezig met Java te leren uit een boek en nu wou ik eens mijn eigen spel programmeren maar ik zit vast. Het doel is om een soort van 2D schietspel te maken. Nu wil ik mijn mijn methode start aanroepen vanuit createGUI of main maar dit lukt niet... Mijn compiler zegt: exception in thread main. Het hoofdstuk debuggen is wel nog niet aan bod gekomen (ik heb het boek nog niet uit).
Alvast bedankt!

En mijn script:
Code:
/*
*Created by M. F.
*Created on 3/11/2012
*Copyright 2012 - All rights reserved
*/
//Bibliotheken
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
//Class Snake
public class Snake extends JFrame implements MouseListener, ActionListener {
//Declareren van de instantievariabelen
private JPanel panel;
private JButton button;
private Graphics paper = panel.getGraphics();
public static void main(String[] args) {
Snake demo = new Snake();
demo.setSize(200,280);
demo.createGUI();
demo.show();
}
private void createGUI() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
Container window = getContentPane();
window.setLayout(new FlowLayout());
addMouseListener(this);
panel = new JPanel();
panel.setPreferredSize(new Dimension(400, 400));
panel.setBackground(Color.blue);
window.add(panel);
button = new JButton("Spel starten");
window.add(button);
button.addActionListener(this);
}
public void start() {
drawSnake(paper);
}
public void mouseEntered(MouseEvent e) {
}
public void mouseClicked(MouseEvent e) {
Graphics paper = panel.getGraphics();
drawFire(paper);
}
public void drawSnake(Graphics drawingArea) {
Bird bird = new Bird();
bird.animate(drawingArea);
}
public void drawFire(Graphics drawingArea) {
Fire fire = new Fire();
fire.drawBulletFire(drawingArea);
}
public void mouseExited(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
public void actionPerformed(ActionEvent e) {
}
}
//Maakt de classe Bird aan
class Bird {
//Declareert de instantievariabelen
private int xPos = -50;
private int yPos = 100;
private int xSize = 50;
private int ySize = 10;
public void animate(Graphics drawingArea) {
for (int i = 0; i <401; i++) {
draw(drawingArea);
delay();
delete(drawingArea);
xPos = xPos + 1;
}
}
//Methode om te tekenen
public void draw(Graphics drawingArea) {
//Zet de kleur geel
drawingArea.setColor(Color.yellow);
//Tekent de rechthoek
drawingArea.fillRect(xPos, yPos, xSize, ySize);
}
private void delay() {
try {
Thread.sleep(25);
}
catch (InterruptedException e) {
return;
}
}
public void delete(Graphics drawingArea) {
//Zet de kleur blauw
drawingArea.setColor(Color.blue);
//Tekent de rechthoek
drawingArea.fillRect(xPos - 1, yPos, xSize, ySize);
}
}
//Maakt de classe fire aan
class Fire {
//Declareert de instantievariabelen
private int sizeX = 4;
private int sizeY = 4;
private int fireY = -4;
private int fireX = 198;
public void drawBulletFire(Graphics drawingArea) {
for (int i=0;i < 401;i++) {
drawTheFire(drawingArea);
delayFire();
deleteFire(drawingArea);
fireY = fireY + 1;
}
}
public void drawTheFire(Graphics drawingArea) {
drawingArea.fillRect(fireX, fireY, sizeX, sizeY);
}
private void delayFire() {
try {
Thread.sleep(10);
}
catch (InterruptedException e) {
return;
}
}
public void deleteFire(Graphics drawingArea) {
//Zet de kleur blauw
drawingArea.setColor(Color.yellow);
//Tekent de rechthoek
drawingArea.fillRect(fireX, fireY, sizeX, sizeY);
}
}