Advertisement
Guest User

Untitled

a guest
Apr 27th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.24 KB | None | 0 0
  1. /*
  2. * To change this license header, choose License Headers in Project Properties.
  3. * To change this template file, choose Tools | Templates
  4. * and open the template in the editor.
  5. */
  6. package catcatch;
  7.  
  8. /**
  9. *
  10. * @author sconwa2
  11. */
  12. import basicgraphics.*;
  13. import basicgraphics.BasicFrame;
  14. import basicgraphics.images.Picture;
  15. import java.io.IOException;
  16. import java.awt.event.KeyAdapter;
  17. import java.awt.event.KeyEvent;
  18. import java.awt.Dimension;
  19. import java.awt.event.ActionEvent;
  20. import java.awt.event.ActionListener;
  21. import java.util.Random;
  22. import java.util.logging.Level;
  23. import java.util.logging.Logger;
  24. import javax.swing.JButton;
  25. import javax.swing.JFrame;
  26. import javax.swing.JLabel;
  27. import javax.swing.JOptionPane;
  28. import javax.swing.JPanel;
  29.  
  30. //background class
  31. class background extends Sprite {
  32.  
  33. public void init(SpriteComponent sc) throws IOException {
  34. setX(1);
  35. setY(1);
  36. setPicture(new Picture("catbg.png"));
  37. sc.addSprite(this);
  38. }
  39. }
  40.  
  41. //score value BROKEN
  42. class score {
  43.  
  44. public static int score = 0;
  45. }
  46.  
  47. //bar that holds lives and score value BROKEN
  48. class gamebar extends Sprite {
  49.  
  50. SpriteComponent sprite;
  51.  
  52. public void init(SpriteComponent sc) throws IOException {
  53. setX(0);
  54. setY(0);
  55. setPicture(new Picture("gamebar.png"));
  56. sc.addSprite(this);
  57. }
  58. }
  59.  
  60. //how many more foods can hit the ground before game over BROKEN
  61. class life {
  62.  
  63. public static int life = 3;
  64. }
  65.  
  66. class lifebar extends Sprite {
  67.  
  68. SpriteComponent Sprite;
  69.  
  70. public void init(SpriteComponent sc) throws IOException {
  71. setX(775);
  72. setY(0);
  73. setPicture(new Picture("life" + life.life + ".png"));
  74. sc.addSprite(this);
  75. }
  76. }
  77.  
  78. //salmon class, worth 2 points
  79. class salmon extends Sprite {
  80.  
  81. Random rand = new Random();
  82.  
  83. SpriteComponent sprite;
  84.  
  85. public void init(SpriteComponent sc) throws IOException {
  86. //random X value between 0 and 700
  87. int m = rand.nextInt(700) + 0;
  88. setX(m);
  89. //random Y value between -1 and -100
  90. int n = rand.nextInt(100) + 1;
  91. setY(-n);
  92. setVelY(0.4);
  93. setPicture(new Picture("salmon.png"));
  94. sc.addSprite(this);
  95. }
  96.  
  97. @Override
  98. public void processEvent(SpriteCollisionEvent ev) {
  99. if (ev.eventType == CollisionEventType.SPRITE) {
  100. if (ev.sprite2 instanceof cat) {
  101. //random X value between 0 and 700
  102. int m = rand.nextInt(700) + 0;
  103. setX(m);
  104. //random Y value between -1 and -100
  105. int n = rand.nextInt(100) + 1;
  106. setY(-n);
  107. setVelY(getVelY() + 0.1);
  108. //worth 2 points
  109. score.score = score.score + 2;
  110. }
  111. } else if (ev.eventType == CollisionEventType.WALL) {
  112. if (ev.yhi) {
  113. life.life--;
  114. if (life.life == 0) {
  115. //game over
  116. JOptionPane.showMessageDialog(sprite, "GAME OVER! Your score: " + score.score);
  117. System.exit(0);
  118. }
  119. }
  120. }
  121. }
  122. }
  123.  
  124. //burger class, worth 1 point
  125. class burger extends Sprite {
  126.  
  127. Random rand = new Random();
  128.  
  129. SpriteComponent sprite;
  130.  
  131. public void init(SpriteComponent sc) throws IOException {
  132. //random X value between 0 and 700
  133. int m = rand.nextInt(700) + 0;
  134. setX(m);
  135. //random Y value between -1 and -100
  136. int n = rand.nextInt(100) + 1;
  137. setY(-n);
  138. setVelY(0.3);
  139. setPicture(new Picture("burger.png"));
  140. sc.addSprite(this);
  141. }
  142.  
  143. @Override
  144. public void processEvent(SpriteCollisionEvent ev) {
  145. if (ev.eventType == CollisionEventType.SPRITE) {
  146. if (ev.sprite2 instanceof cat) {
  147. //random X value between 0 and 700
  148. int m = rand.nextInt(700) + 0;
  149. setX(m);
  150. //random Y value between -1 and -100
  151. int n = rand.nextInt(100) + 1;
  152. setY(-n);
  153. setVelY(getVelY() + 0.1);
  154. //worth 1 point
  155. score.score++;
  156. }
  157. } else if (ev.eventType == CollisionEventType.WALL) {
  158. if (ev.yhi) {
  159. life.life--;
  160. if (life.life == 0) {
  161. //game over
  162. JOptionPane.showMessageDialog(sprite, "GAME OVER! Your score: " + score.score);
  163. System.exit(0);
  164. }
  165. }
  166. }
  167. }
  168. }
  169.  
  170. //shrimp class, worth 3 points
  171. class shrimp extends Sprite {
  172.  
  173. Random rand = new Random();
  174.  
  175. SpriteComponent sprite;
  176.  
  177. public void init(SpriteComponent sc) throws IOException {
  178. //random X value between 0 and 700
  179. int m = rand.nextInt(700) + 0;
  180. setX(m);
  181. //random Y value between -1 and -100
  182. int n = rand.nextInt(100) + 1;
  183. setY(-n);
  184. setVelY(0.5);
  185. setPicture(new Picture("shrimp.png"));
  186. sc.addSprite(this);
  187. }
  188.  
  189. @Override
  190. public void processEvent(SpriteCollisionEvent ev) {
  191. if (ev.eventType == CollisionEventType.SPRITE) {
  192. if (ev.sprite2 instanceof cat) {
  193. //random X value between 0 and 700
  194. int m = rand.nextInt(700) + 0;
  195. setX(m);
  196. //random Y value between -1 and -100
  197. int n = rand.nextInt(100) + 1;
  198. setY(-n);
  199. setVelY(getVelY() + 0.1);
  200. //worth 3 points
  201. score.score = score.score + 3;
  202. }
  203. } else if (ev.eventType == CollisionEventType.WALL) {
  204. if (ev.yhi) {
  205. life.life--;
  206. if (life.life == 0) {
  207. //game over
  208. JOptionPane.showMessageDialog(sprite, "GAME OVER! Your score: " + score.score);
  209. System.exit(0);
  210. }
  211. }
  212. }
  213. }
  214. }
  215.  
  216. class cat extends Sprite {
  217.  
  218. SpriteComponent sprite;
  219.  
  220. public void init(SpriteComponent sc) throws IOException {
  221. setX(25);
  222. setY(500);
  223. setPicture(new Picture("greycatmoveright1.png"));
  224. sc.addSprite(this);
  225. sprite = sc;
  226. }
  227. }
  228.  
  229. //instructions for game, press enter to escape
  230. class instructions extends Sprite {
  231.  
  232. SpriteComponent sprite;
  233.  
  234. public void init(SpriteComponent sc) throws IOException {
  235. setX(0);
  236. setY(0);
  237. setPicture(new Picture("shrimpinstructions.png"));
  238. sc.addSprite(this);
  239. }
  240. }
  241.  
  242. //title screen, press 0 to escape
  243. class titlescreen extends Sprite {
  244.  
  245. SpriteComponent sprite;
  246.  
  247. public void init(SpriteComponent sc) throws IOException {
  248. setX(0);
  249. setY(0);
  250. setPicture(new Picture("titlescreen.png"));
  251. sc.addSprite(this);
  252. }
  253. }
  254. //********************************************************************************
  255.  
  256. public class catcatch {
  257.  
  258. //layout with 3 rows, 2 columns
  259. static String[][] mflayout = {
  260. {"trow1", "trow2"},
  261. {"mrow1", "mrow2"},
  262. {"brow1", "brow2"}
  263.  
  264. };
  265.  
  266. public static void main(String[] args) throws IOException {
  267.  
  268. JLabel scoreLabel = new JLabel("Score: 0");
  269. scoreLabel.setBounds(10, 10, 100, 50);
  270. scoreLabel.setText("Score: " + score.score);
  271.  
  272. //basic frame for game
  273. BasicFrame bf = new BasicFrame("catcatch");
  274.  
  275. //menu frame : start, exit
  276. final BasicFrame mf = new BasicFrame("menu");
  277.  
  278. //cat select frame : Cupcake, Sweetie Pie, Licorice
  279. final BasicFrame cs = new BasicFrame("cat select");
  280.  
  281. // trying to set visible score BROKEN
  282. JFrame score = new JFrame("score");
  283.  
  284. JPanel panel = new JPanel();
  285. JLabel label = new JLabel("SCORE:");
  286.  
  287. panel.add(label);
  288.  
  289. score.add(panel);
  290.  
  291. score.setVisible(
  292. true);
  293.  
  294. //start and exit buttons
  295. final JButton start = new JButton("start");
  296.  
  297. start.addActionListener(
  298. new ActionListener() {
  299. @Override
  300. public void actionPerformed(ActionEvent ae
  301. ) {
  302. mf.dispose();
  303. }
  304. }
  305. );
  306. final JButton exit = new JButton("exit");
  307.  
  308. exit.addActionListener(
  309. new ActionListener() {
  310. @Override
  311. public void actionPerformed(ActionEvent ae
  312. ) {
  313. System.exit(0);
  314. }
  315.  
  316. }
  317. );
  318.  
  319. //add buttons to menu frame
  320. bf.add(mflayout,"trow1", new JLabel(""));
  321. bf.add(mflayout,"trow2", new JLabel(""));
  322. bf.add(mflayout, "mrow1", start);
  323. bf.add(mflayout,"mrow2", exit);
  324. bf.add(mflayout,"brow1", new JLabel(""));
  325. bf.add(mflayout,"brow2", new JLabel(""));
  326.  
  327. final SpriteComponent sc = new SpriteComponent();
  328.  
  329. sc.setPreferredSize(new Dimension(1000, 650));
  330.  
  331. String catType = new String();
  332. catType = "";
  333.  
  334. final background b = new background();
  335.  
  336. b.init(sc);
  337.  
  338. final cat cat = new cat();
  339.  
  340. cat.init(sc);
  341. final instructions in = new instructions();
  342.  
  343. in.init(sc);
  344. final titlescreen ts = new titlescreen();
  345.  
  346. ts.init(sc);
  347.  
  348. //not sure what this is but it's breaking my start/exit buttons BROKEN
  349. bf.add("sc", sc, 0, 0, 1, 1);
  350.  
  351. bf.addKeyListener(
  352. new KeyAdapter() {
  353. @Override
  354. public void keyPressed(KeyEvent ke
  355. ) {
  356.  
  357. //cat move right
  358. if (ke.getKeyCode() == KeyEvent.VK_RIGHT) {
  359. if (cat.getX() >= 25 && cat.getX() <= 800) {
  360. cat.setX(cat.getX() + 15);
  361. if (cat.getX() % 2 == 0) {
  362. try {
  363. cat.setPicture(new Picture("greycatmoveright1.png"));
  364. } catch (IOException ex) {
  365. Logger.getLogger(catcatch.class.getName()).log(Level.SEVERE, null, ex);
  366. }
  367. } else {
  368. try {
  369. cat.setPicture(new Picture("greycatmoveright2.png"));
  370. } catch (IOException ex) {
  371. Logger.getLogger(catcatch.class.getName()).log(Level.SEVERE, null, ex);
  372. }
  373.  
  374. }
  375. }
  376.  
  377. //cat move left
  378. } else if (ke.getKeyCode() == KeyEvent.VK_LEFT) {
  379. if (cat.getX() >= 45) {
  380. cat.setX(cat.getX() - 15);
  381. if (cat.getX() % 2 == 0) {
  382. try {
  383. cat.setPicture(new Picture("greycatmoveleft1.png"));
  384. } catch (IOException ex) {
  385. Logger.getLogger(catcatch.class.getName()).log(Level.SEVERE, null, ex);
  386. }
  387. } else {
  388. try {
  389. cat.setPicture(new Picture("greycatmoveleft2.png"));
  390. } catch (IOException ex) {
  391. Logger.getLogger(catcatch.class.getName()).log(Level.SEVERE, null, ex);
  392. }
  393. }
  394. }
  395.  
  396. //exit title
  397. } else if (ke.getKeyCode() == KeyEvent.VK_SPACE) {
  398. ts.setActive(false);
  399.  
  400. //exit instructions
  401. } else if (ke.getKeyCode() == KeyEvent.VK_ENTER) {
  402. in.setActive(false);
  403. //10 salmons
  404. int salmon = 10;
  405. for (int i = 0;
  406. i < salmon;
  407. i++) {
  408. salmon sa = new salmon();
  409. try {
  410. sa.init(sc);
  411. } catch (IOException ex) {
  412. Logger.getLogger(catcatch.class.getName()).log(Level.SEVERE, null, ex);
  413. }
  414. }
  415.  
  416. //10 burgers
  417. int burger = 10;
  418. for (int i = 0;
  419. i < burger;
  420. i++) {
  421. burger bu = new burger();
  422. try {
  423. bu.init(sc);
  424. } catch (IOException ex) {
  425. Logger.getLogger(catcatch.class.getName()).log(Level.SEVERE, null, ex);
  426. }
  427. }
  428.  
  429. //10 shrimps
  430. int shrimp = 10;
  431. for (int i = 0;
  432. i < shrimp;
  433. i++) {
  434. shrimp sh = new shrimp();
  435. try {
  436. sh.init(sc);
  437. } catch (IOException ex) {
  438. Logger.getLogger(catcatch.class.getName()).log(Level.SEVERE, null, ex);
  439. }
  440. }
  441. final gamebar gb = new gamebar();
  442.  
  443. try {
  444. gb.init(sc);
  445. } catch (IOException ex) {
  446. Logger.getLogger(catcatch.class.getName()).log(Level.SEVERE, null, ex);
  447. }
  448. final lifebar lb = new lifebar();
  449.  
  450. try {
  451. lb.init(sc);
  452. } catch (IOException ex) {
  453. Logger.getLogger(catcatch.class.getName()).log(Level.SEVERE, null, ex);
  454. }
  455. }
  456. }
  457. }
  458. );
  459.  
  460. bf.show();
  461.  
  462. sc.start(
  463. 0, 10);
  464. }
  465. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement