Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
- package catcatch;
- /**
- *
- * @author sconwa2
- */
- import basicgraphics.*;
- import basicgraphics.BasicFrame;
- import basicgraphics.images.Picture;
- import java.io.IOException;
- import java.awt.event.KeyAdapter;
- import java.awt.event.KeyEvent;
- import java.awt.Dimension;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.util.Random;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- import javax.swing.JButton;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JOptionPane;
- import javax.swing.JPanel;
- //background class
- class background extends Sprite {
- public void init(SpriteComponent sc) throws IOException {
- setX(1);
- setY(1);
- setPicture(new Picture("catbg.png"));
- sc.addSprite(this);
- }
- }
- //score value BROKEN
- class score {
- public static int score = 0;
- }
- //bar that holds lives and score value BROKEN
- class gamebar extends Sprite {
- SpriteComponent sprite;
- public void init(SpriteComponent sc) throws IOException {
- setX(0);
- setY(0);
- setPicture(new Picture("gamebar.png"));
- sc.addSprite(this);
- }
- }
- //how many more foods can hit the ground before game over BROKEN
- class life {
- public static int life = 3;
- }
- class lifebar extends Sprite {
- SpriteComponent Sprite;
- public void init(SpriteComponent sc) throws IOException {
- setX(775);
- setY(0);
- setPicture(new Picture("life" + life.life + ".png"));
- sc.addSprite(this);
- }
- }
- //salmon class, worth 2 points
- class salmon extends Sprite {
- Random rand = new Random();
- SpriteComponent sprite;
- public void init(SpriteComponent sc) throws IOException {
- //random X value between 0 and 700
- int m = rand.nextInt(700) + 0;
- setX(m);
- //random Y value between -1 and -100
- int n = rand.nextInt(100) + 1;
- setY(-n);
- setVelY(0.4);
- setPicture(new Picture("salmon.png"));
- sc.addSprite(this);
- }
- @Override
- public void processEvent(SpriteCollisionEvent ev) {
- if (ev.eventType == CollisionEventType.SPRITE) {
- if (ev.sprite2 instanceof cat) {
- //random X value between 0 and 700
- int m = rand.nextInt(700) + 0;
- setX(m);
- //random Y value between -1 and -100
- int n = rand.nextInt(100) + 1;
- setY(-n);
- setVelY(getVelY() + 0.1);
- //worth 2 points
- score.score = score.score + 2;
- }
- } else if (ev.eventType == CollisionEventType.WALL) {
- if (ev.yhi) {
- life.life--;
- if (life.life == 0) {
- //game over
- JOptionPane.showMessageDialog(sprite, "GAME OVER! Your score: " + score.score);
- System.exit(0);
- }
- }
- }
- }
- }
- //burger class, worth 1 point
- class burger extends Sprite {
- Random rand = new Random();
- SpriteComponent sprite;
- public void init(SpriteComponent sc) throws IOException {
- //random X value between 0 and 700
- int m = rand.nextInt(700) + 0;
- setX(m);
- //random Y value between -1 and -100
- int n = rand.nextInt(100) + 1;
- setY(-n);
- setVelY(0.3);
- setPicture(new Picture("burger.png"));
- sc.addSprite(this);
- }
- @Override
- public void processEvent(SpriteCollisionEvent ev) {
- if (ev.eventType == CollisionEventType.SPRITE) {
- if (ev.sprite2 instanceof cat) {
- //random X value between 0 and 700
- int m = rand.nextInt(700) + 0;
- setX(m);
- //random Y value between -1 and -100
- int n = rand.nextInt(100) + 1;
- setY(-n);
- setVelY(getVelY() + 0.1);
- //worth 1 point
- score.score++;
- }
- } else if (ev.eventType == CollisionEventType.WALL) {
- if (ev.yhi) {
- life.life--;
- if (life.life == 0) {
- //game over
- JOptionPane.showMessageDialog(sprite, "GAME OVER! Your score: " + score.score);
- System.exit(0);
- }
- }
- }
- }
- }
- //shrimp class, worth 3 points
- class shrimp extends Sprite {
- Random rand = new Random();
- SpriteComponent sprite;
- public void init(SpriteComponent sc) throws IOException {
- //random X value between 0 and 700
- int m = rand.nextInt(700) + 0;
- setX(m);
- //random Y value between -1 and -100
- int n = rand.nextInt(100) + 1;
- setY(-n);
- setVelY(0.5);
- setPicture(new Picture("shrimp.png"));
- sc.addSprite(this);
- }
- @Override
- public void processEvent(SpriteCollisionEvent ev) {
- if (ev.eventType == CollisionEventType.SPRITE) {
- if (ev.sprite2 instanceof cat) {
- //random X value between 0 and 700
- int m = rand.nextInt(700) + 0;
- setX(m);
- //random Y value between -1 and -100
- int n = rand.nextInt(100) + 1;
- setY(-n);
- setVelY(getVelY() + 0.1);
- //worth 3 points
- score.score = score.score + 3;
- }
- } else if (ev.eventType == CollisionEventType.WALL) {
- if (ev.yhi) {
- life.life--;
- if (life.life == 0) {
- //game over
- JOptionPane.showMessageDialog(sprite, "GAME OVER! Your score: " + score.score);
- System.exit(0);
- }
- }
- }
- }
- }
- class cat extends Sprite {
- SpriteComponent sprite;
- public void init(SpriteComponent sc) throws IOException {
- setX(25);
- setY(500);
- setPicture(new Picture("greycatmoveright1.png"));
- sc.addSprite(this);
- sprite = sc;
- }
- }
- //instructions for game, press enter to escape
- class instructions extends Sprite {
- SpriteComponent sprite;
- public void init(SpriteComponent sc) throws IOException {
- setX(0);
- setY(0);
- setPicture(new Picture("shrimpinstructions.png"));
- sc.addSprite(this);
- }
- }
- //title screen, press 0 to escape
- class titlescreen extends Sprite {
- SpriteComponent sprite;
- public void init(SpriteComponent sc) throws IOException {
- setX(0);
- setY(0);
- setPicture(new Picture("titlescreen.png"));
- sc.addSprite(this);
- }
- }
- //********************************************************************************
- public class catcatch {
- //layout with 3 rows, 2 columns
- static String[][] mflayout = {
- {"trow1", "trow2"},
- {"mrow1", "mrow2"},
- {"brow1", "brow2"}
- };
- public static void main(String[] args) throws IOException {
- JLabel scoreLabel = new JLabel("Score: 0");
- scoreLabel.setBounds(10, 10, 100, 50);
- scoreLabel.setText("Score: " + score.score);
- //basic frame for game
- BasicFrame bf = new BasicFrame("catcatch");
- //menu frame : start, exit
- final BasicFrame mf = new BasicFrame("menu");
- //cat select frame : Cupcake, Sweetie Pie, Licorice
- final BasicFrame cs = new BasicFrame("cat select");
- // trying to set visible score BROKEN
- JFrame score = new JFrame("score");
- JPanel panel = new JPanel();
- JLabel label = new JLabel("SCORE:");
- panel.add(label);
- score.add(panel);
- score.setVisible(
- true);
- //start and exit buttons
- final JButton start = new JButton("start");
- start.addActionListener(
- new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent ae
- ) {
- mf.dispose();
- }
- }
- );
- final JButton exit = new JButton("exit");
- exit.addActionListener(
- new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent ae
- ) {
- System.exit(0);
- }
- }
- );
- //add buttons to menu frame
- bf.add(mflayout,"trow1", new JLabel(""));
- bf.add(mflayout,"trow2", new JLabel(""));
- bf.add(mflayout, "mrow1", start);
- bf.add(mflayout,"mrow2", exit);
- bf.add(mflayout,"brow1", new JLabel(""));
- bf.add(mflayout,"brow2", new JLabel(""));
- final SpriteComponent sc = new SpriteComponent();
- sc.setPreferredSize(new Dimension(1000, 650));
- String catType = new String();
- catType = "";
- final background b = new background();
- b.init(sc);
- final cat cat = new cat();
- cat.init(sc);
- final instructions in = new instructions();
- in.init(sc);
- final titlescreen ts = new titlescreen();
- ts.init(sc);
- //not sure what this is but it's breaking my start/exit buttons BROKEN
- bf.add("sc", sc, 0, 0, 1, 1);
- bf.addKeyListener(
- new KeyAdapter() {
- @Override
- public void keyPressed(KeyEvent ke
- ) {
- //cat move right
- if (ke.getKeyCode() == KeyEvent.VK_RIGHT) {
- if (cat.getX() >= 25 && cat.getX() <= 800) {
- cat.setX(cat.getX() + 15);
- if (cat.getX() % 2 == 0) {
- try {
- cat.setPicture(new Picture("greycatmoveright1.png"));
- } catch (IOException ex) {
- Logger.getLogger(catcatch.class.getName()).log(Level.SEVERE, null, ex);
- }
- } else {
- try {
- cat.setPicture(new Picture("greycatmoveright2.png"));
- } catch (IOException ex) {
- Logger.getLogger(catcatch.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
- }
- //cat move left
- } else if (ke.getKeyCode() == KeyEvent.VK_LEFT) {
- if (cat.getX() >= 45) {
- cat.setX(cat.getX() - 15);
- if (cat.getX() % 2 == 0) {
- try {
- cat.setPicture(new Picture("greycatmoveleft1.png"));
- } catch (IOException ex) {
- Logger.getLogger(catcatch.class.getName()).log(Level.SEVERE, null, ex);
- }
- } else {
- try {
- cat.setPicture(new Picture("greycatmoveleft2.png"));
- } catch (IOException ex) {
- Logger.getLogger(catcatch.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
- }
- //exit title
- } else if (ke.getKeyCode() == KeyEvent.VK_SPACE) {
- ts.setActive(false);
- //exit instructions
- } else if (ke.getKeyCode() == KeyEvent.VK_ENTER) {
- in.setActive(false);
- //10 salmons
- int salmon = 10;
- for (int i = 0;
- i < salmon;
- i++) {
- salmon sa = new salmon();
- try {
- sa.init(sc);
- } catch (IOException ex) {
- Logger.getLogger(catcatch.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
- //10 burgers
- int burger = 10;
- for (int i = 0;
- i < burger;
- i++) {
- burger bu = new burger();
- try {
- bu.init(sc);
- } catch (IOException ex) {
- Logger.getLogger(catcatch.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
- //10 shrimps
- int shrimp = 10;
- for (int i = 0;
- i < shrimp;
- i++) {
- shrimp sh = new shrimp();
- try {
- sh.init(sc);
- } catch (IOException ex) {
- Logger.getLogger(catcatch.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
- final gamebar gb = new gamebar();
- try {
- gb.init(sc);
- } catch (IOException ex) {
- Logger.getLogger(catcatch.class.getName()).log(Level.SEVERE, null, ex);
- }
- final lifebar lb = new lifebar();
- try {
- lb.init(sc);
- } catch (IOException ex) {
- Logger.getLogger(catcatch.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
- }
- }
- );
- bf.show();
- sc.start(
- 0, 10);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement