|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object group1.model.Environment
public class Environment
An environment, or a level, that contains a list of game objects. (Terrain, enemies, Jeff, etc.) In other words, the various areas in which the action will take place.
This class no longer uses a discrete grid to store the objects. Instead, it handles everything using double values. (It does, however, use a grid to optimize hit detection. In theory, it should be making all of the accessor and informative functions roughly O(1), which is no small joke. And, the time click should only be O(n).)
Note that this class and the GameObj classes technically store the data upside-down. Java treats the y-axis as top-to-bottom, which is too confusing for actual physics calculations. So, we make all calculations as though it's represented from bottom-to-top, then reverse the values later.
Also, a note on intersection: Objects actually need to sit within each other ever so slightly. See, Rectangle2D.intersects() doesn't work unless they intersect. So, if an object is moved completely outside of an object it hits, those objects are no longer touching. This can cause glitchy effects with walls and ceilings, and completely breaks any concept of standing on the floor.
Constructor Summary | |
---|---|
Environment()
Default constructor. |
|
Environment(Jeff jef,
java.lang.String filename,
PictureList[] pictureCache)
Constructor. |
Method Summary | |
---|---|
void |
addObject(GameObj obj)
Add an object. |
void |
addObject(GameObj obj,
double x,
double y)
Add object, with the position explicitly defined by the caller. |
void |
addObject(GameObj obj,
GameObj creatorObj)
Add an object, with the position defined as being the position of the object that "created" or "threw" it. |
double |
getGravity()
Get the gravity from the environment. |
XYPair |
getGroundVelocity(GameObj obj)
Check whether or not an object is on ground that it can walk on, AND return the velocity of the ground if it's on ground. |
double |
getHeight()
Return the "true" height of the Environment. |
XYPair |
getJeffsPosition()
Get Jeff's position. |
GameObj |
getObject(int i)
Return the specified object in the environment. |
java.util.List<GameObj> |
getObjectList()
Return the full list of objects in the Environment. |
int |
getObjectListSize()
Return the size of the list of all objects in the environment. |
double |
getWidth()
Return the "true" width of the Environment. |
boolean |
isObjectNearLadder(GameObj obj)
Check whether or not an object is close enough to a ladder to grab it. |
boolean |
isObjectOnGround(GameObj obj)
Check whether or not an object is on ground that it can walk on. |
void |
setGravity(double grav)
Set the gravity. |
TimeClickReturn |
timeClick()
Calculates and sets the positions and velocities of all objects in the environment, based upon the objects' own movements and hit detection. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public Environment()
public Environment(Jeff jef, java.lang.String filename, PictureList[] pictureCache) throws java.io.EOFException, java.io.IOException
jef
- The hero of the game. (The only object that carries over between environments.)filename
- The name of the text file where the Environment is represented.
java.io.EOFException
- in case of file format error when more data was
expected than given in the file.
java.io.IOException
- if other input error occurs.Method Detail |
---|
public void setGravity(double grav)
grav
- The gravity value. (Should be negative. Unless we're falling up or something...?)public TimeClickReturn timeClick()
This should be called by the Game class at each time click.
public XYPair getGroundVelocity(GameObj obj)
obj
- The object in question.
public boolean isObjectOnGround(GameObj obj)
obj
- The object in question.
public boolean isObjectNearLadder(GameObj obj)
obj
- The object in question.
public double getGravity()
public XYPair getJeffsPosition()
public java.util.List<GameObj> getObjectList()
public GameObj getObject(int i)
public int getObjectListSize()
public double getHeight()
public double getWidth()
public void addObject(GameObj obj, GameObj creatorObj)
obj
- The GameObj being added.creatorObj
- The object "creating" or "throwing" this object.public void addObject(GameObj obj, double x, double y)
obj
- The GameObj being added.x
- The x-position of the object.y
- The x-position of the object.public void addObject(GameObj obj)
obj
- The GameObj being added.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |