pl.tph.javatacka.game.sprites
Class Curve

java.lang.Object
  extended by pl.tph.javatacka.graphics.Sprite
      extended by pl.tph.javatacka.game.sprites.Curve

public class Curve
extends Sprite

Obiekty Klasy Curve reprezentują krzywe kontrolowane przez graczy. Są one najistotniejszym elementem dynamicznym w grze.

Klasa Curve rozszerza klasę abstrakcyjną Sprite dodając do niej nowe pola i metody potrzebne do reprezentacji krzywych. W tych obiektach przechowywane są informacje o aktualnym i ostatnim położeniu "głowy" krzywej, wartości jej wektora prędkości, kierunku poruszania oraz jej kolorze.
Co może dziwić w obiekcie nie są przechowywane żadne informacje o samej krzywej (w sensie geometrycznym).

Krzywe rysowane na ekranie nie są ciągłe. Co jakiś czas mogą się w nich losowo pojawiać przerwy o również losowej długości.

Author:
Tomasz Pieczerak (tph)
See Also:
Sprite

Field Summary
private  java.awt.Color color
          Kolor krzywej.
private  double direction
          Aktualny kierunek poruszania się wyrażony w stopniach.
private  boolean hole
          Flaga informująca czy aktualnie w krzywej jest dziura.
private  double lastHoleDistance
          Dystans od ostatniej zmiany z dziura na nie-dziura lub na odwrót.
private  double oldX
          Pionową składowa poprzedniego położenia.
private  double oldY
          Pozioma składowa poprzedniego położenia.
private  double velocity
          Aktualna wartość wektora prędkości
 
Fields inherited from class pl.tph.javatacka.graphics.Sprite
dx, dy, height, width, x, y
 
Constructor Summary
Curve(java.awt.Color color)
          Konstruktor klasy Curve tworzy nową krzywą o podanym kolorze.
 
Method Summary
 void draw(java.awt.Graphics2D g2)
          Rysuje krzywą w odpowiednim kolorze w podanym kontekście graficznym.
 java.awt.Color getColor()
          Zwraca kolor krzywej.
 double getDirection()
          Zwraca aktualny kierunek poruszania się krzywej w stopniach.
 double getOldX()
          Zwraca pionową składową poprzedniego położenia.
 double getOldY()
          Zwraca poziomą składową poprzedniego położenia.
 double getVelocity()
          Zwraca aktualną wartość wektora prędkości.
 double getVelocityX()
          Zwraca aktualną wartość pionowej składowej wektora prędkości.
 double getVelocityY()
          Zwraca aktualną wartość poziomej składowej wektora prędkości.
 boolean isHole()
          Zwraca informację czy aktualnie w krzywej jest dziura.
 void rawDraw(java.awt.Graphics2D g2)
          Rysuje krzywą w podanym kontekście graficznym bez ustawiania koloru.
 void setDirection(double direction)
          Ustawia kierunek poruszania się krzywej na podany
 void setOldXY(double oldX, double oldY)
          Ustawia poprzednią pozycję "głowy" krzywej.
 void setVelocity(double velocity)
          Ustawia wartość wektora prędkości na podaną
 void setXY(double x, double y)
          Ustawia aktualną pozycję "głowy" krzywej.
 void update(long elapsedTime)
          Aktualizuje pozycję "głowy" krzywej w oparciu o wartość wektora prędkości oraz kierunek poruszania.
 
Methods inherited from class pl.tph.javatacka.graphics.Sprite
getHeight, getWidth, getX, getY, setHeight, setVelocityX, setVelocityY, setWidth, setX, setY
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

oldX

private double oldX
Pionową składowa poprzedniego położenia.


oldY

private double oldY
Pozioma składowa poprzedniego położenia.


velocity

private double velocity
Aktualna wartość wektora prędkości


direction

private double direction
Aktualny kierunek poruszania się wyrażony w stopniach.


hole

private boolean hole
Flaga informująca czy aktualnie w krzywej jest dziura.


lastHoleDistance

private double lastHoleDistance
Dystans od ostatniej zmiany z dziura na nie-dziura lub na odwrót.


color

private java.awt.Color color
Kolor krzywej.

Constructor Detail

Curve

public Curve(java.awt.Color color)
Konstruktor klasy Curve tworzy nową krzywą o podanym kolorze. Wszystkie pozostałe pola są inicjowane wartościami zerowymi.

Parameters:
color -
Method Detail

update

public void update(long elapsedTime)
Aktualizuje pozycję "głowy" krzywej w oparciu o wartość wektora prędkości oraz kierunek poruszania.

Overrides:
update in class Sprite
Parameters:
elapsedTime - czas w milisekundach

draw

public void draw(java.awt.Graphics2D g2)
Rysuje krzywą w odpowiednim kolorze w podanym kontekście graficznym.

Parameters:
g2 - kontekst graficzny

rawDraw

public void rawDraw(java.awt.Graphics2D g2)
Rysuje krzywą w podanym kontekście graficznym bez ustawiania koloru.

Parameters:
g2 - kontekst graficzny

setXY

public void setXY(double x,
                  double y)
Ustawia aktualną pozycję "głowy" krzywej.

Parameters:
x - pionowa składowa położenia
y - pozioma składowa położenia

setOldXY

public void setOldXY(double oldX,
                     double oldY)
Ustawia poprzednią pozycję "głowy" krzywej.

Parameters:
oldX - pionowa składowa położenia
oldY - pozioma składowa położenia

getVelocity

public double getVelocity()
Zwraca aktualną wartość wektora prędkości. Prędkość jest podana w pikselach na milisekundę.


setVelocity

public void setVelocity(double velocity)
Ustawia wartość wektora prędkości na podaną

Parameters:
velocity - szybkość w pikselach na milisekundę

getDirection

public double getDirection()
Zwraca aktualny kierunek poruszania się krzywej w stopniach.


setDirection

public void setDirection(double direction)
Ustawia kierunek poruszania się krzywej na podany

Parameters:
direction - kierunek w stopniach (może być ponad 360)

getColor

public java.awt.Color getColor()
Zwraca kolor krzywej.


getOldX

public double getOldX()
Zwraca pionową składową poprzedniego położenia.


getOldY

public double getOldY()
Zwraca poziomą składową poprzedniego położenia.


getVelocityX

public double getVelocityX()
Zwraca aktualną wartość pionowej składowej wektora prędkości.

Overrides:
getVelocityX in class Sprite
Returns:
składowa pozioma prędkości (podana w pikselach na milisekundę)

getVelocityY

public double getVelocityY()
Zwraca aktualną wartość poziomej składowej wektora prędkości.

Overrides:
getVelocityY in class Sprite
Returns:
składowa pionowa prędkości (podana w pikselach na milisekundę)

isHole

public boolean isHole()
Zwraca informację czy aktualnie w krzywej jest dziura.