Java probleempje

Status
Niet open voor verdere reacties.

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:

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);
        
    }
    
}
 
Maak een nieuwe class (bestand)met naam Main en plaats alles erin
Code:
package be.helpmij.maarten54321;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

//Class Snake
public class Main extends JFrame implements MouseListener, ActionListener {
     //Declareren van de instantievariabelen
    private JPanel panel;
    private JButton button;
    private Graphics paper = panel.getGraphics();
	private Bird bird;
	private Fire fire;   
    public static void main(String[] args) {
	    System.out.println("kleine main start");
        java.awt.EventQueue.invokeLater(new Runnable(){
            public void run(){
                new Main().setVisible(true);
            }
        });
    }
	public Main(){
		 System.out.println("constructor ik start als je een nieuwe instantiemaakt");
	     setSize(200,280);
	     createGUI();
	     show();//deprecation
	}
    private void createGUI() {
    	System.out.println("ik start 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() {
    	System.out.println("THE START");
           drawSnake(paper);
    }
    public void mouseEntered(MouseEvent e) {
    }
    public void mouseClicked(MouseEvent e) {
    	System.out.println("YOU HAVE CLICK TO THE MOUSE");
         Graphics paper = panel.getGraphics(); 
         drawFire(paper);
    }
    public void drawSnake(Graphics drawingArea) {
    	System.out.println("TEKENEN SNAKE");
         bird = new Bird();//visible ??
        bird.animate(drawingArea);
        
    }
    public void drawFire(Graphics drawingArea) {
    	System.out.println("TEKENEN 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; 
        }
        
    }
    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);
	    }   
}
 
Bedankt!
Weet je nog een ander leuk spel dat niet te moeilijk is om mee te oefenen?
Een simpel 2D spel zoals ping pong, snake enz... ?
 
Ik ben bezig met een pacman achtige toestand maar volledig OO kan je svn(uit checken
)
 
Zou leuk zijn om eens te proberen en hoe heb je Java geleerd?
Kan je een soort van "formule" geven?
Kan je de code geven?

Alvast bedankt! :D
 
Laatst bewerkt:
Ik kan je code niet zien alhoewel ik wel een google account heb...
Kan je me het script gewoon niet doorgeven via dit topic?
 
Ik ben nog aan het inchecken. zodat telkens ik iets verander jij het kan zien en telkens jij iets verander ik dat kan zien
mag ik je accound mail zodat ik je kan toevoegen.
 
u weet dat u in uw betere editor (eclipse of netbeans) svn checkoutproject nemen met new javaproject om kunnen testen volgende link heb je nodig

svn checkout http://autosite.googlecode.com/svn/trunk/ autosite-read-only
maar voor u als u ingelogd bent kijken op
http://code.google.com/p/autosite/source/checkout
je kijkt naar het wachtwoord om te kunnen commit

Ken je svn niet zeker zeggen want dan moet ik de pluginlocaties geven (meerwaarde is dat u elke wijziging zal kunnen volgen)
bij eclips zal het rechts klikken op je project zijn en "team" en "compare with" zullen de belangerijkste zaken zijn
 
Kan je het project gewoon niet op mijn Java forum zetten?
Ik geef je wel een rang...
Oftewel schrijf je het in een artikel of je zet het op het forum of ... .
 
Ja dat kan maar je moet weten dat ik een technologie wil aanleren dat je leven gemakelijk zou maken
maar kunnen we eens chatten over je editor en ectra zodat je met alles mee bent je zal merken dat je editor ze automatisch download en je terug zal kunnen gaan in de tijd zo weet je wat je ooit wijzigde of wat ik wijzigde zonder veel moeite te moeten doen.
msn info@djdb.be
 
Maarten ik zie dat je veel bezig bent met Java of javascript, ik ook, wil je me even toevoegen op msn dan kan ik wat dingen aan je vragen :p

robert . schippers @ hotmail com

(sorry admins! )
 
Als je met me wilt praten dan kan je dat doen via mijn java forum. :D
www.j a v a - f o r u m .site50.net
Aan elkaar maar voor google... :)
Registreer je even en je kan in de chat vragen stellen.
Ik check mijn site dagelijks.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan