netwar.gui
Class HexViewer

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--java.awt.Panel
                    |
                    +--netwar.gui.HexViewer
All Implemented Interfaces:
javax.accessibility.Accessible, GameViewer, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

public class HexViewer
extends java.awt.Panel
implements GameViewer

This is the main game view panel which displays what is happening in the game. It uses a MouseParser to allow a point and click interface into the game.

Author:
Group N2 - Project Netwar, Daniel Grund and Kyle Kakligian
See Also:
Serialized Form

Inner classes inherited from class java.awt.Panel
java.awt.Panel.AccessibleAWTPanel
 
Inner classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Inner classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent
 
Field Summary
static int maxHeight
          The maximum height that this component could conceivably reach.
static int maxWidth
          The maximum width that this component could conceivably reach.
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Method Summary
 void drawImage(Point3D vr, java.awt.Image img)
          This method draws an image on the GameViewer's display.
 void drawLine(Point3D v1, Point3D v2)
          This method draws a line segment on the GameViewer's display.
 void drawTriangle(Point3D v1, Point3D v2, Point3D v3)
          This method draws a filled triangle on the GameViewer's display.
static HexViewer getHexViewer()
          Returns the one and only HexViewer.
 java.awt.Dimension getMinimumSize()
           
 java.awt.Dimension getPreferredSize()
           
 void paint(java.awt.Graphics g)
          Requests all visible aspects of the game to draw in the appropriate order.
 void setBounds(int x, int y, int w, int h)
          Captures the new size of the HexViewer, so that the view can be recentered.
 void setColor(java.awt.Color c)
          This method sets the color for subsequent calls to drawLine and drawTriangle.
 void update(java.awt.Graphics g)
          Overrides default update, to prevent flicker.
 
Methods inherited from class java.awt.Panel
addNotify, getAccessibleContext
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getInsets, getLayout, getListeners, getMaximumSize, insets, invalidate, isAncestorOf, layout, list, list, locate, minimumSize, paintComponents, paramString, preferredSize, print, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, removeNotify, setFont, setLayout, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addPropertyChangeListener, addPropertyChangeListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getInputContext, getInputMethodRequests, getLocale, getLocation, getLocation, getLocationOnScreen, getName, getParent, getPeer, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isDisplayable, isDoubleBuffered, isEnabled, isFocusTraversable, isLightweight, isOpaque, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, reshape, resize, resize, setBackground, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setForeground, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, show, size, toString, transferFocus
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

maxWidth

public static final int maxWidth
The maximum width that this component could conceivably reach. Used for preferred size, and back buffer size.

maxHeight

public static final int maxHeight
The maximum height that this component could conceivably reach. Used for preferred size, and back buffer size.
Method Detail

getHexViewer

public static HexViewer getHexViewer()
Returns the one and only HexViewer. Creates it if it doesn't exist.
Returns:
The one and only HexViewer.

update

public void update(java.awt.Graphics g)
Overrides default update, to prevent flicker. The default update clears the object, then calls paint. This just calls paint. Clearing is unnecessary, and would merely cause flicker, because paint will draw over the entire screen.
Overrides:
update in class java.awt.Container
Parameters:
g - A handle to the graphics object to paint on.
See Also:
paint(Graphics)

paint

public void paint(java.awt.Graphics g)
Requests all visible aspects of the game to draw in the appropriate order. This order is as follows:
Dark gray background.
Terrain tiles.
Lower portion of selection box.
All GameObjects.
Upper portion of selection box.
All Projectiles.
FPS indicator. (This will be removed soon, and incorporated into the NetwarPanel.
Overrides:
paint in class java.awt.Container

setColor

public void setColor(java.awt.Color c)
Description copied from interface: GameViewer
This method sets the color for subsequent calls to drawLine and drawTriangle.
Specified by:
setColor in interface GameViewer
Following copied from interface: netwar.game.GameViewer
Parameters:
c - The color which subsequent render calls will be drawn in.

drawLine

public void drawLine(Point3D v1,
                     Point3D v2)
Description copied from interface: GameViewer
This method draws a line segment on the GameViewer's display. The line segment is drawn from the pixel containing v1 to the pixel containing v2.
Specified by:
drawLine in interface GameViewer
Following copied from interface: netwar.game.GameViewer
Parameters:
v1 - One end of the line in game-space
v2 - The other end of the line in game-space

drawTriangle

public void drawTriangle(Point3D v1,
                         Point3D v2,
                         Point3D v3)
Description copied from interface: GameViewer
This method draws a filled triangle on the GameViewer's display. The vertices are the pixels containing v1, v2, and v3.
Specified by:
drawTriangle in interface GameViewer
Following copied from interface: netwar.game.GameViewer
Parameters:
v1 - One vertice in game-space.
v2 - A second vertice in game-space.
v3 - The third vertice in game-space.

drawImage

public void drawImage(Point3D vr,
                      java.awt.Image img)
Description copied from interface: GameViewer
This method draws an image on the GameViewer's display.
Specified by:
drawImage in interface GameViewer
Following copied from interface: netwar.game.GameViewer
Parameters:
vr - The point in game-space located at the center of where the image should appear.
img - The Image to display.

getPreferredSize

public java.awt.Dimension getPreferredSize()
Overrides:
getPreferredSize in class java.awt.Container

getMinimumSize

public java.awt.Dimension getMinimumSize()
Overrides:
getMinimumSize in class java.awt.Container

setBounds

public void setBounds(int x,
                      int y,
                      int w,
                      int h)
Captures the new size of the HexViewer, so that the view can be recentered. This is necessary both for immediate adjustment, and for future adjustments. Also, this may eventually be used for image drawing optimization, by not rendering/blitting graphical data which is outside the visible region.
Overrides:
setBounds in class java.awt.Component
Parameters:
x - Used only in superclass.
y - Used only in superclass.
w - The new width, in pixels, of the HexViewer.
h - The new height, in pixels, of the HexViewer.