Computer Science 252
Problem Solving with Java
Spring 2015, The College of Saint Rose
BookGame Demo
A working demo of BookGame will appear below. Click inside the applet to interact with it.
BookGame BlueJ Project
Click here to download a BlueJ project for BookGame.
BookGame Source Code
The Java source code for BookGame is below. Click on a file name to download it.
/** * In Class Book Game implementation: yet another simple custom * object that we can drag around. * * @author Jim Teresco * * $Id$ */ import objectdraw.*; import java.awt.*; public class BookGame extends WindowController { // a couple of books private Book hp, mr; // dragging support private boolean draggingHP, draggingMR; private Location lastMouse; public void begin() { // let's create a couple Books. double bookX = 100; hp = new Book(bookX, 100, "Harry Potter", canvas); bookX += 150; mr = new Book(bookX, 75, "Maze Runner", canvas); } public void onMousePress(Location point) { // set up to drag either or both books if we press on them if (hp.contains(point)) { draggingHP = true; } if (mr.contains(point)) { draggingMR = true; } lastMouse = point; } public void onMouseDrag(Location point) { // standard dragging procedure if (draggingHP) { hp.move(point.getX() - lastMouse.getX(), point.getY() - lastMouse.getY()); } if (draggingMR) { mr.move(point.getX() - lastMouse.getX(), point.getY() - lastMouse.getY()); } lastMouse = point; } public void onMouseRelease(Location point) { // finish up our drag if (draggingHP) { hp.move(point.getX() - lastMouse.getX(), point.getY() - lastMouse.getY()); } if (draggingMR) { mr.move(point.getX() - lastMouse.getX(), point.getY() - lastMouse.getY()); } draggingHP = false; draggingMR = false; } public void onMouseExit(Location point) { // when we leave the window, we ask the Books to go back // where they started. hp.returnHome(); mr.returnHome(); } }