Class Tracksail.JRenderView

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byTracksail.JRenderView
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable
Enclosing class:
Tracksail

class Tracksail.JRenderView
extends javax.swing.JComponent

Custom GUI component, a drawing area on which all graphics of the game are drawn.


Nested Class Summary
 
Nested classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
private  java.awt.image.BufferedImage[] direction_images
          image series for the guiding arrow
private  java.awt.image.BufferedImage green_image
          image of green buoy
private  Vector2 look_at
          The point in the world where we direct our view to.
private  float pix_per_m
          Tells how many pixels on the screen represent one metre.
private  java.awt.image.BufferedImage red_image
          image of red buoy
private  java.awt.image.BufferedImage[] sail_images
          image series for the sail
private  java.awt.image.BufferedImage seatile_image
          image of sea waves
private  java.awt.image.BufferedImage[] ship_images
          image series for the boat
private  java.awt.Dimension size
          size of the window in pixels
private  java.awt.image.BufferedImage[] wind_images
          image series for the wind sock
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Container
 
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
 
Constructor Summary
Tracksail.JRenderView()
          Constructor.
 
Method Summary
 void drawImage(java.awt.Graphics g, java.awt.image.BufferedImage img, int x, int y)
          Draw the image so that the center of the image is at (x, y).
 void drawRotatedImage(java.awt.Graphics g, java.awt.image.BufferedImage[] images, int x, int y, int direction)
          Draw one image from a rotated image series.
 void drawSea(java.awt.Graphics g)
          Draw the sea.
 void drawTrack(java.awt.Graphics g)
          Draw the track with buoys.
 java.awt.Dimension getMinimumSize()
          Returns the minimum size of this component.
 java.awt.Dimension getPreferredSize()
          Returns the ideal size of this component.
 void lookAt(Vector2 at)
          Set the center of our view.
 void paintComponent(java.awt.Graphics g)
          Draw a component.
 int worldToScreenX(float x)
          Calculate the x coordinate of a point of the world on screen (pixel position).
 int worldToScreenY(float y)
          Calculate the y coordinate of a point of the world on screen (pixel position).
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getNextFocusableComponent, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

size

private java.awt.Dimension size
size of the window in pixels


ship_images

private java.awt.image.BufferedImage[] ship_images
image series for the boat


sail_images

private java.awt.image.BufferedImage[] sail_images
image series for the sail


wind_images

private java.awt.image.BufferedImage[] wind_images
image series for the wind sock


direction_images

private java.awt.image.BufferedImage[] direction_images
image series for the guiding arrow


seatile_image

private java.awt.image.BufferedImage seatile_image
image of sea waves


red_image

private java.awt.image.BufferedImage red_image
image of red buoy


green_image

private java.awt.image.BufferedImage green_image
image of green buoy


pix_per_m

private float pix_per_m
Tells how many pixels on the screen represent one metre.

If e.g. the boat is 5m long and it's length in the image is 64 pixels, we get a multiplier of about 64 px / 5 m = 12.8 px/m.


look_at

private Vector2 look_at
The point in the world where we direct our view to.

This is the point in the world that we see in the center of the screen. The idea is to stay centered on one's own boat.

Constructor Detail

Tracksail.JRenderView

public Tracksail.JRenderView()
Constructor.

Initialises the drawing component.

Method Detail

getMinimumSize

public java.awt.Dimension getMinimumSize()
Returns the minimum size of this component.

Returns:
Minimum size of this component.

getPreferredSize

public java.awt.Dimension getPreferredSize()
Returns the ideal size of this component.

Returns:
Ideal size of this component.

lookAt

public void lookAt(Vector2 at)
Set the center of our view.

Parameters:
at - the target location of our view

worldToScreenX

public int worldToScreenX(float x)
Calculate the x coordinate of a point of the world on screen (pixel position).

Parameters:
x - x coordinate in the world

worldToScreenY

public int worldToScreenY(float y)
Calculate the y coordinate of a point of the world on screen (pixel position).

Parameters:
y - y coordinate in the world

drawImage

public void drawImage(java.awt.Graphics g,
                      java.awt.image.BufferedImage img,
                      int x,
                      int y)
Draw the image so that the center of the image is at (x, y).

Parameters:
g - Graphics
img - the image to draw
x - x coordinate of the image center on screen
y - y coordinate of the image center on screen

drawRotatedImage

public void drawRotatedImage(java.awt.Graphics g,
                             java.awt.image.BufferedImage[] images,
                             int x,
                             int y,
                             int direction)
Draw one image from a rotated image series.

Parameters:
g - Graphics
images - an image series of 36 rotated images
x - x coordinate of the image center on screen
y - y coordinate of the image center on screen
direction - the direction of the image

drawSea

public void drawSea(java.awt.Graphics g)
Draw the sea.

The sea is drawn with 64x64 pixel tiles that scroll on the background.

Parameters:
g - Graphics

drawTrack

public void drawTrack(java.awt.Graphics g)
Draw the track with buoys.

Parameters:
g - Graphics

paintComponent

public void paintComponent(java.awt.Graphics g)
Draw a component.

Parameters:
g - Graphics