csta.ibm.pong
Class Game

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Frame
                  extended by javax.swing.JFrame
                      extended by csta.ibm.pong.Game
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

public abstract class Game
extends javax.swing.JFrame

An abstract Game class which can be built into Pong.

The default controls are for "Player 1" to move left and right with the 'Z' and 'X' keys, and "Playr 2" to move left and right with the 'N' and 'M' keys.

Before the Game begins, the setup method is executed. This will allow the programmer to add any objects to the game and set them up. When the game begins, the act method is executed every millisecond. This will allow the programmer to check for user input and respond to it.

See Also:
GameObject, Serialized Form

Field Summary
 
Fields inherited from class javax.swing.JFrame
EXIT_ON_CLOSE
 
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
Game()
          The default constructor for the game.
 
Method Summary
abstract  void act()
          When the game begins, this method will automatically be executed every millisecond This may be used as a control method for checking user input and collision between any game objects
 void add(GameObject o)
          Adds a game object to the screen Any added objects will have their act method called every millisecond
 int getFieldHeight()
          Gets the pixel height of the visible playing field
 int getFieldWidth()
          Gets the pixel width of the visible playing field
 void initComponents()
          Sets up the game and any objects.
 boolean MKeyPressed()
          Returns true if the 'M' key is being pressed down
 boolean NKeyPressed()
          Returns true if the 'N' key is being pressed down
 void p1Wins()
          Displays a dialog that says "Player 1 Wins!"
 void p2Wins()
          Displays a dialog that says "Player 2 Wins!"
 void remove(GameObject o)
          Removes a game object from the screen
 void setBackground(java.awt.Color c)
          Sets the background color of the playing field The default color is black
 void setDelay(int delay)
          Sets the millisecond delay between calls to act methods.
abstract  void setup()
          When implemented, this will allow the programmer to initialize the game before it begins running Adding objects to the game and setting their initial positions should be done here.
 void startGame()
          Starts updates to the game The game should automatically start.
 void stopGame()
          Stops updates to the game This can act like a "pause" method
 boolean XKeyPressed()
          Returns true if the 'X' key is being pressed down
 boolean ZKeyPressed()
          Returns true if the 'Z' key is being pressed down
 
Methods inherited from class javax.swing.JFrame
getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isDefaultLookAndFeelDecorated, remove, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, update
 
Methods inherited from class java.awt.Frame
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getMostRecentFocusOwner, getOwnedWindows, getOwner, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setAlwaysOnTop, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setLocationByPlatform, setLocationRelativeTo, show, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusBackward, transferFocusDownCycle, validate
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, dispatchEvent, enable, enable, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocusInWindow, reshape, resize, resize, setBounds, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Constructor Detail

Game

public Game()
The default constructor for the game. The default window size is 400x400

Method Detail

ZKeyPressed

public boolean ZKeyPressed()
Returns true if the 'Z' key is being pressed down

Returns:
true if the 'Z' key is being pressed down

XKeyPressed

public boolean XKeyPressed()
Returns true if the 'X' key is being pressed down

Returns:
true if the 'X' key is being pressed down

NKeyPressed

public boolean NKeyPressed()
Returns true if the 'N' key is being pressed down

Returns:
true if the 'N' key is being pressed down

MKeyPressed

public boolean MKeyPressed()
Returns true if the 'M' key is being pressed down

Returns:
true if the 'M' key is being pressed down

setup

public abstract void setup()
When implemented, this will allow the programmer to initialize the game before it begins running Adding objects to the game and setting their initial positions should be done here.

See Also:
GameObject

act

public abstract void act()
When the game begins, this method will automatically be executed every millisecond This may be used as a control method for checking user input and collision between any game objects


initComponents

public void initComponents()
Sets up the game and any objects. This method should never be called by anything other than a main method after the frame becomes visible.


add

public void add(GameObject o)
Adds a game object to the screen Any added objects will have their act method called every millisecond

Parameters:
o - the GameObject to add.
See Also:
GameObject.act()

remove

public void remove(GameObject o)
Removes a game object from the screen

Parameters:
o - the GameObject to remove
See Also:
GameObject

setDelay

public void setDelay(int delay)
Sets the millisecond delay between calls to act methods. Increasing the delay will make the game run "slower." The default delay is 1 millisecond.

Parameters:
delay - the number of milliseconds between calls to act
See Also:
act(), GameObject.act()

setBackground

public void setBackground(java.awt.Color c)
Sets the background color of the playing field The default color is black

Overrides:
setBackground in class java.awt.Component
See Also:
Color

startGame

public void startGame()
Starts updates to the game The game should automatically start.

See Also:
stopGame()

stopGame

public void stopGame()
Stops updates to the game This can act like a "pause" method

See Also:
startGame()

p1Wins

public void p1Wins()
Displays a dialog that says "Player 1 Wins!"


p2Wins

public void p2Wins()
Displays a dialog that says "Player 2 Wins!"


getFieldWidth

public int getFieldWidth()
Gets the pixel width of the visible playing field

Returns:
a width in pixels

getFieldHeight

public int getFieldHeight()
Gets the pixel height of the visible playing field

Returns:
a height in pixels