|
|||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||
java.lang.Object | +--CellBasedGame.DynamicObject
Classe generica di gestione degli oggetti mobili (giocatori, mostri, etc.) di un gioco basato su celle. Fornisce anche alcuni strumenti per l'implementazione dell'intelligenza artificiale degli oggetti mobili gestiti automaticamente
| Field Summary | |
protected static int |
DIJKSTRAARRAY
Il lato del quadrato su cui verrà applicato l'algoritmo di Dijkstra |
protected static int |
DIJKSTRABORDER
Il bordo oltre gli oggetti a cui viene applicato Dijkstra |
protected static int |
DIJKSTRALIMIT
Indica il limite sotto il quale applicare l'algoritmo di Dijkstra per la ricerca del target |
static int |
DIRECTION_DOWN
(costante) Costante che rappresenta una delle possibili direzioni dell'oggetto |
static int |
DIRECTION_LEFT
(costante) Costante che rappresenta una delle possibili direzioni dell'oggetto |
static int |
DIRECTION_NONE
(costante) Costante che rappresenta la direzione nulla (nessun movimento) |
static int |
DIRECTION_RIGHT
(costante) Costante che rappresenta una delle possibili direzioni dell'oggetto |
static int |
DIRECTION_UP
(costante) Costante che rappresenta una delle possibili direzioni dell'oggetto |
protected static int |
INFINITE
Un numero sufficientemente alto per rappresentare l'infinito in un algoritmo |
protected boolean |
m_bAlive
(costante) Costante che rappresenta una delle possibili direzioni dell'oggetto |
protected boolean |
m_bMustChangeDirection
Segnala se occorre cambiare o meno direzione |
protected CellBasedGame |
m_cbGame
Il CellBasedGame in cui è inserito l'oggetto |
protected int |
m_nDeltaX
Valore X dell'ultimo scostamento nelle celle |
protected int |
m_nDeltaY
Valore Y dell'ultimo scostamento nelle celle |
protected int |
m_nLastCellX
Coordinata X dell'ultima cella in cui l'oggetto si è presentato. |
protected int |
m_nLastCellY
Coordinata Y dell'ultima cella in cui l'oggetto si è presentato. |
protected int |
m_nLastDirection
L'ultima direzione utilizzata dall'oggetto |
protected int |
m_nSpeed
Velocità dell'essere vivente |
protected int |
m_nX
Coordinata X del DynamicObject |
protected int |
m_nY
Coordinata Y del DynamicObject |
| Constructor Summary | |
DynamicObject(CellBasedGame Game,
int nX,
int nY)
(costruttore) Crea un nuovo DynamicObject |
|
| Method Summary | |
private int |
applyDijkstra(int nSX,
int nSY,
int nTX,
int nTY)
Funzione di supporto che implementa l'algoritmo di Dijkstra del cammino minimo. |
protected int |
chase(DynamicObject objTarget)
Funzione di supporto per l'intelligenza artificiale. |
protected abstract int |
chooseDirection()
Funzione che viene richiamata quando è necessario scegliere una direzione da prendere. |
boolean |
collide(DynamicObject obj)
Restituisce true se l'oggetto corrente collide con un oggetto parametro |
protected int |
deltasToDirection(int nDx,
int nDy)
Funzione di supporto che converte una coppia di scostamenti sull'asse x e y in una direzione |
void |
die()
"Uccide" un dato DynamicObject (usato per implementazioni di mostri e simili) |
int |
getX()
Restituisce la coordinata X dell'oggetto |
int |
getY()
Restituisce la coordinata X dell'oggetto |
protected boolean |
isDirectionValid(int dir)
Funzione che restituisce se la direzione passata come parametro è valida, cioè non porta a collisioni con muri |
void |
move()
Funzione richiamata ogni volta che l'oggetto deve essere mosso in automatico Gestisce tutti i problemi legati allo spostamento |
void |
move(int dir)
Funzione richiamabile per far muovere l'oggetto solo in una data direzione |
protected int |
oppositeDirection(int dir)
Funzione di supporto che restituisce la direzione opposta di una data. |
abstract void |
paint(java.awt.Graphics gfx)
Funzione che viene richiamata quando è necessario disegnare a schermo lo sprite corrispondente a questo oggetto. |
protected int |
random(int psame,
int popposite)
Funzione di supporto per l'intelligenza artificiale. |
private boolean |
rangeX(int a,
int l)
Restituisce true se a e l sono all'interno di un range pari alla larghezza di una Cell |
private boolean |
rangeY(int a,
int l)
Restituisce true se a e l sono all'interno di un range pari all'altezza di una Cell |
void |
setSpeed(int speed)
Imposta la velocità dell'oggetto |
protected int |
stupid()
Funzione di supporto per l'intelligenza artificiale. |
| Methods inherited from class java.lang.Object |
|
| Field Detail |
protected int m_nX
protected int m_nY
protected int m_nSpeed
protected boolean m_bMustChangeDirection
protected int m_nLastCellX
protected int m_nLastCellY
protected int m_nLastDirection
protected CellBasedGame m_cbGame
protected static final int DIJKSTRALIMIT
protected static final int INFINITE
protected static final int DIJKSTRABORDER
protected static final int DIJKSTRAARRAY
protected int m_nDeltaX
protected int m_nDeltaY
public static final int DIRECTION_NONE
public static final int DIRECTION_DOWN
public static final int DIRECTION_RIGHT
public static final int DIRECTION_LEFT
public static final int DIRECTION_UP
protected boolean m_bAlive
| Constructor Detail |
public DynamicObject(CellBasedGame Game,
int nX,
int nY)
Game - Il gioco CellBasedGame in cui l'oggetto è inseritonX - La coordinata X di partenza [in pixel]nY - La coordinata Y di partenza [in pixel]| Method Detail |
public int getX()
public int getY()
public void setSpeed(int speed)
speed - La nuova velocità a cui deve andare l'oggettopublic void move()
public void move(int dir)
dir - La direzione verso cui muovere l'oggettoprotected int stupid()
protected int random(int psame,
int popposite)
psame - Un numero intero compreso tra 0 e 100 che indica la probabilità che venga mantenuta la stessa direzionepopposite - Un numero intero compreso tra 0 e 100 che indica la probabilità che venga presa la direzione esattamente opposta alla corrente (le altre due direzioni sono equiprobabili)protected int oppositeDirection(int dir)
dir - La direzione di cui vogliamo conoscere l'opposta.protected int chase(DynamicObject objTarget)
objTarget - L'oggetto da inseguireprotected boolean isDirectionValid(int dir)
dir - La direzione di cui si vuole controllare la validità.
protected int deltasToDirection(int nDx,
int nDy)
nDx - Scostamento sull'asse XnDy - Scostamento sull'asse Y
private int applyDijkstra(int nSX,
int nSY,
int nTX,
int nTY)
private boolean rangeX(int a,
int l)
a - Numero da verificare essere all'interno di un range (l, l+CellWidth)l - Numero che delimita l'intervallo
private boolean rangeY(int a,
int l)
a - Numero da verificare essere all'interno di un range (l, l+CellHeight)l - Numero che delimita l'intervallopublic boolean collide(DynamicObject obj)
obj - l'oggetto di cui verificare la collisionepublic void die()
protected abstract int chooseDirection()
public abstract void paint(java.awt.Graphics gfx)
|
|||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||