Results 1 to 1 of 1
Thread: frogger
- 01-04-2011, 09:55 PM #1
Member
- Join Date
- Jan 2011
- Posts
- 1
- Rep Power
- 0
frogger
hi i'm quite new at java , and i'm trying to program frogger.
Now i'm nearly done but i got a problem , when my frog hits the water he needs to be reset , but how can i do the checkup if he hits the water or a treelog? controleerBotsingMetBoomstam() is the method that i use to check if the frog collides with the log and i want it to check that it collides with the water aswell , i commented out my solution for it but it doesn work properly so anyone got an idea?
Tim
Java Code:package javaproject; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; import java.awt.Graphics.*; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.util.ArrayList; import javax.swing.*; import javax.swing.Timer; import java.io.*; public class Frogger extends JFrame { private JMenuBar menubalk; private JMenu bestand, f1; private JMenuItem start, stop, restart, sluiten, help; private Paneel paneel; private String hhhelp, titel; private StringBuffer hulp, hhelp; private BufferedReader lezer; private boolean gestart = true; public static void main(String[] args) { new Frogger(); } public Frogger() { setTitle("Frogger Lite"); setSize(600, 690); setDefaultCloseOperation(EXIT_ON_CLOSE); paneel = new Paneel(); setContentPane(paneel); setVisible(true); setResizable(false); menubalk = new JMenuBar(); bestand = new JMenu("Bestand"); f1 = new JMenu("Info"); restart = new JMenuItem("Restart"); restart.addActionListener(new RestartHandler()); help = new JMenuItem("Help"); help.addActionListener(new HelpHandler()); start = new JMenuItem("Start"); start.addActionListener(new StartHandler()); sluiten = new JMenuItem("Sluiten"); sluiten.addActionListener(new SluitHandler()); stop = new JMenuItem("Pauze"); stop.addActionListener(new PauzeHandler()); f1.add(help); menubalk.add(bestand); bestand.add(start); bestand.add(stop); bestand.add(restart); bestand.add(sluiten); menubalk.add(f1); setJMenuBar(menubalk); } class StartHandler implements ActionListener { public void actionPerformed(ActionEvent e) { paneel.startTimer(); gestart = true; } } class PauzeHandler implements ActionListener { public void actionPerformed(ActionEvent e) { paneel.stopTimer(); gestart = false; } } class RestartHandler implements ActionListener { public void actionPerformed(ActionEvent e) { paneel.resetLevens(); paneel.resetKikker(); paneel.resetTijd(); paneel.startTimer(); paneel.repaint(); paneel.resetKlavers(); } } class SluitHandler implements ActionListener { public void actionPerformed(ActionEvent e) { System.exit(0); } } class HelpHandler implements ActionListener { public void actionPerformed(ActionEvent e) { paneel.stopTimer(); hulp = new StringBuffer(); titel = "Help"; try { lezer = new BufferedReader(new FileReader("Help.txt")); while ((hhhelp = lezer.readLine()) != null) { hulp.append(" " + hhhelp); hulp.append("\n"); } lezer.close(); JOptionPane.showMessageDialog(paneel, hulp.toString(), titel, JOptionPane.QUESTION_MESSAGE); if (JOptionPane.OK_OPTION == 0) { if (gestart == true) { paneel.startTimer(); } } } catch (FileNotFoundException d) { JOptionPane.showMessageDialog(paneel, "Kan het bestand niet vinden"); } catch (IOException f) { JOptionPane.showMessageDialog(paneel, "Fout bij het lezen of sluiten van het bestand"); } } } } class Paneel extends JPanel { private Timer tijdTimer; private int levens, klavers; private boolean bAuto = false; private boolean bBoomstam = false; private boolean bKlaver = false; private Kikker kikker = new Kikker(); private Auto autosRij1[] = new Auto[4]; private Auto autosRij2[] = new Auto[4]; private Auto autosRij3[] = new Auto[4]; private Auto autosRij4[] = new Auto[4]; private Boomstam boomstammenRij1[] = new Boomstam[5]; private Boomstam boomstammenRij2[] = new Boomstam[5]; private Boomstam boomstammenRij3[] = new Boomstam[5]; private Boomstam boomstammenRij4[] = new Boomstam[5]; private KlaverBlad klaver[] = new KlaverBlad[4]; private ImageIcon background = new ImageIcon("Bgground.png"); private int autox1, autox2, autox3, autox4, boomstamx1, boomstamx2, boomstamx3, boomstamx4, tijd; private javax.swing.Timer automove; private ImageIcon win = new ImageIcon("win.jpg"); private boolean pauze = false; public Paneel() { levens = 3; klavers = 4; addKeyListener(new ToetsenbordHandler()); for (int i = 0; i < klaver.length; i++) { klaver[i] = new KlaverBlad((i * 3) * 50 + 50, 20); } for (int j = 0; j < autosRij1.length; j++) { autosRij1[j] = new Auto((j * 2 * 150) + autox1, 425); autosRij2[j] = new Auto((j * 2 * 150) + autox2, 375); autosRij3[j] = new Auto((j * 2 * 150) + autox3, 325); autosRij4[j] = new Auto((j * 2 * 150) + autox4, 275); } for (int j = 0; j < boomstammenRij1.length; j++) { boomstammenRij1[j] = new Boomstam((j * 2 * 150) + boomstamx1, 225); boomstammenRij2[j] = new Boomstam((j * 2 * 150) + boomstamx2, 175); boomstammenRij3[j] = new Boomstam((j * 2 * 150) + boomstamx3, 125); boomstammenRij4[j] = new Boomstam((j * 2 * 150) + boomstamx4, 75); } autox1 = 25; autox2 = 125; autox3 = 225; autox4 = 325; boomstamx1 = 50; boomstamx2 = 75; boomstamx3 = 225; boomstamx4 = 335; automove = new Timer(15, new TimerHandler()); automove.start(); tijdTimer = new Timer(1000, new TijdTimerHandler()); tijdTimer.start(); } public void controleerBotsingMetAuto() { for (int j = 0; j < autosRij1.length; j++) { if (autosRij1[j].getX() <= kikker.getX() + 30 && autosRij1[j].getX() + 70 >= kikker.getX() && autosRij1[j].getY() <= kikker.getY() && autosRij1[j].getY() + 44 >= kikker.getY() + 30) { bAuto = true; levens--; kikker.resetXy(); } if (autosRij2[j].getX() <= kikker.getX() + 30 && autosRij2[j].getX() + 70 >= kikker.getX() && autosRij2[j].getY() <= kikker.getY() && autosRij2[j].getY() + 44 >= kikker.getY() + 30) { bAuto = true; levens--; kikker.resetXy(); } if (autosRij3[j].getX() <= kikker.getX() + 30 && autosRij3[j].getX() + 70 >= kikker.getX() && autosRij3[j].getY() <= kikker.getY() && autosRij3[j].getY() + 44 >= kikker.getY() + 30) { bAuto = true; levens--; kikker.resetXy(); } if (autosRij4[j].getX() <= kikker.getX() + 30 && autosRij4[j].getX() + 70 >= kikker.getX() && autosRij4[j].getY() <= kikker.getY() && autosRij4[j].getY() + 44 >= kikker.getY() + 30) { bAuto = true; levens--; kikker.resetXy(); } } } public void stopTimer() { automove.stop(); tijdTimer.stop(); pauze = true; } public void resetLevens() { levens = 3; } public void resetKikker() { kikker.resetXy(); } public void resetKlavers() { klavers = 4; for (int i = 0; i < klaver.length; i++) { klaver[i].setX((i * 3) * 50 + 50); klaver[i].setY(20); } } public void resetTijd() { tijd = 0; } public void startTimer() { automove.start(); tijdTimer.start(); pauze = false; } public void controleerBotsingMetBoomstam() { for (int j = 0; j < boomstammenRij1.length; j++) { if ((boomstammenRij1[j].getX() <= kikker.getX() && boomstammenRij1[j].getX() + 165 >= kikker.getX() + 30 && boomstammenRij1[j].getY() <= kikker.getY() && boomstammenRij1[j].getY() + 35 >= kikker.getY() + 30)) { kikker.addX(-1); } /*if (kikker.getX() + 30 < boomstammenRij1[j].getX() && boomstammenRij1[j].getY() <= kikker.getY() && boomstammenRij1[j].getY() + 35 >= kikker.getY() + 30 || kikker.getX() > boomstammenRij1[j].getX() + 165 && boomstammenRij1[j].getY() <= kikker.getY() && boomstammenRij1[j].getY() + 35 >= kikker.getY() + 30) { stopTimer(); }*/ if ((boomstammenRij2[j].getX() <= kikker.getX() + 30 && boomstammenRij2[j].getX() + 165 >= kikker.getX() + 30 && boomstammenRij2[j].getY() <= kikker.getY() && boomstammenRij2[j].getY() + 35 >= kikker.getY() + 30)) { kikker.addX(2); } if ((boomstammenRij3[j].getX() <= kikker.getX() && boomstammenRij3[j].getX() + 165 >= kikker.getX() + 30 && boomstammenRij3[j].getY() <= kikker.getY() && boomstammenRij3[j].getY() + 35 >= kikker.getY() + 30)) { kikker.addX(-1); } if ((boomstammenRij4[j].getX() <= kikker.getX() + 30 && boomstammenRij4[j].getX() + 165 >= kikker.getX() + 30 && boomstammenRij4[j].getY() <= kikker.getY() && boomstammenRij4[j].getY() + 35 >= kikker.getY() + 30)) { kikker.addX(2); } if (kikker.getX() < 0) { resetKikker(); levens--; } if (kikker.getX() + 10 > 600) { resetKikker(); levens--; } } } public void controleerBotsingMetKlaver() { for (int a = 0; a < autosRij1.length; a++) { if (klaver[a].getX() <= kikker.getX() + 30 && klaver[a].getX() + 50 >= kikker.getX() && klaver[a].getY() <= kikker.getY() && klaver[a].getY() + 48 >= kikker.getY() + 30) { bKlaver = true; kikker.resetXy(); klavers--; startTimer(); klaver[a].setX(1500); klaver[a].setY(1500); } } } public void paintComponent(Graphics g) { setFont(new Font("Verdana", Font.PLAIN, 12)); super.paintComponent(g); g.setColor(Color.BLACK); g.fillRect(0, 600, 600, 50); g.setColor(Color.WHITE); if (levens > 0) { g.drawString("Levens : " + levens + " Verstreken Tijd : " + tijd + " seconden" + " huidig aantal klavers : " + klavers, 50, 625); } background.paintIcon(this, g, 0, 0); for (int i = 0; i < klaver.length; i++) { klaver[i].teken(g); } for (int i = 0; i < autosRij1.length; i++) { autosRij1[i].setX((i * 2 * 150) + autox1); autosRij1[i].teken(g); } for (int i = 0; i < autosRij2.length; i++) { autosRij2[i].setX((i * 2 * 150) + autox2); autosRij2[i].teken(g); } for (int i = 0; i < autosRij3.length; i++) { autosRij3[i].setX((i * 2 * 150) + autox3); autosRij3[i].teken(g); } for (int i = 0; i < autosRij4.length; i++) { autosRij4[i].setX((i * 2 * 150) + autox4); autosRij4[i].teken(g); } for (int i = 0; i < boomstammenRij1.length; i++) { boomstammenRij1[i].setX((i * 2 * 150) + boomstamx1); boomstammenRij1[i].teken(g); } for (int i = 0; i < boomstammenRij2.length; i++) { boomstammenRij2[i].setX((i * 2 * 150) + boomstamx2); boomstammenRij2[i].teken(g); } for (int i = 0; i < boomstammenRij3.length; i++) { boomstammenRij3[i].setX((i * 2 * 150) + boomstamx3); boomstammenRij3[i].teken(g); } for (int i = 0; i < boomstammenRij4.length; i++) { boomstammenRij4[i].setX((i * 2 * 150) + boomstamx4); boomstammenRij4[i].teken(g); } kikker.teken(g); this.requestFocusInWindow(); if (levens == 0) { stopTimer(); g.setColor(Color.red); setFont(new Font("Verdana", Font.BOLD, 60)); g.drawString("GAME OVER", 100, 300); } if (klavers == 0) { stopTimer(); g.setColor(Color.red); win.paintIcon(this, g, 25, 150); } } class ToetsenbordHandler extends KeyAdapter { public void keyPressed(KeyEvent ke) { if (levens > 0 && pauze == false) { switch (ke.getKeyCode()) { case KeyEvent.VK_UP: if (kikker.getY() <= 50) { kikker.setY(50); } kikker.addY(-50); break; case KeyEvent.VK_DOWN: if (kikker.getY() > 500) { kikker.setY(520); } kikker.addY(50); break; case KeyEvent.VK_LEFT: if (kikker.getX() < 0) { kikker.setX(0); } if (kikker.getX() >= 50) { kikker.addX(-50); } break; case KeyEvent.VK_RIGHT: if (kikker.getX() > 565) { kikker.setX(600); } if (kikker.getX() <= 515) { kikker.addX(50); } break; } repaint(); } } } class TimerHandler implements ActionListener { public void actionPerformed(ActionEvent e) { controleerBotsingMetAuto(); controleerBotsingMetKlaver(); controleerBotsingMetBoomstam(); if (bAuto == true) { bAuto = false; } if (bKlaver == true) { bKlaver = false; } autox1--; if (autox1 < -1000) { autox1 = 600; } autox2 = autox2 - 2; if (autox2 < -1000) { autox2 = 600; } autox4 = autox4 - 2; if (autox4 < -1000) { autox4 = 600; } autox3--; if (autox3 < -1000) { autox3 = 600; } boomstamx2 += 2; if (boomstamx2 > 600) { boomstamx2 = -1400; } boomstamx1--; if (boomstamx1 < -1400) { boomstamx1 = 600; } boomstamx3--; if (boomstamx3 < -1400) { boomstamx3 = 600; } boomstamx4 += 2; if (boomstamx4 > 600) { boomstamx4 = -1400; } repaint(); } } class TijdTimerHandler implements ActionListener { public void actionPerformed(ActionEvent e) { tijd++; } } } class SpelObject { protected int x; protected int y; protected Timer bewegingstimer; public int getY() { return y; } public int getX() { return x; } public void setX(int x) { this.x = x; } public void setY(int y) { this.y = y; } public void teken(Graphics g) { } } class Auto extends SpelObject { private int random; private ImageIcon Auto1 = new ImageIcon("auto1.png"); private ImageIcon Auto2 = new ImageIcon("auto2.png"); private ImageIcon Auto3 = new ImageIcon("auto3.png"); private ImageIcon Auto4 = new ImageIcon("auto4.png"); public Auto(int x, int y) { this.x = x; this.y = y; randomize(); } public void randomize() { random = (int) ((4 * Math.random()) + 1); } public void teken(Graphics g) { switch (random) { case 1: Auto1.paintIcon(null, g, x, y); break; case 2: Auto2.paintIcon(null, g, x, y); break; case 3: Auto3.paintIcon(null, g, x, y); break; case 4: Auto4.paintIcon(null, g, x, y); break; default: Auto1.paintIcon(null, g, x, y); break; } } } class Boomstam extends SpelObject { private ImageIcon boomstam = new ImageIcon("boomstam.png"); public Boomstam(int x, int y) { this.x = x; this.y = y; } public void teken(Graphics g) { boomstam.paintIcon(null, g, x, y); } } class Kikker { private int x = 50; private int y = 475; private ImageIcon kikker = new ImageIcon("kikker.png"); public Kikker() { } public int getY() { return y; } public int getX() { return x; } public void resetXy() { x = 50; y = 475; } public void setX(int x) { this.x = x; } public void addX(int x) { this.x = this.x + x; } public void addY(int y) { this.y = this.y + y; } public void setY(int y) { this.y = y; } public void teken(Graphics g) { kikker.paintIcon(null, g, x, y); } } class KlaverBlad { private int x; private int y; private ImageIcon klaver = new ImageIcon("Klaver.png"); public KlaverBlad(int x, int y) { this.x = x; this.y = y; } public int getY() { return y; } public int getX() { return x; } public void setX(int x) { this.x = x; } public void setY(int y) { this.y = y; } public void teken(Graphics g) { klaver.paintIcon(null, g, x, y); } }


LinkBack URL
About LinkBacks
Reply With Quote
Bookmarks