|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectip4.ass4.server.Game
public class Game
Game har hand om en match mellan två klienter. Klienterna skickar via servern in sina racketrörelser, Game beräknar uifrån dessa och diverse parametrar för bolens hastighet, rotation, riktning mm de båda spelarnas, samt bollens position. Klienten begär, också via servern, dessa positioner och använder dessa för att interagera med respektive användare.
Spelplanen är 600x400 enheter stor, det står klienterna fritt att tolka detta (Tennis-klienten anser sig t.ex. ha en 600x400 stor skärm oavsett fönsterstorleken)
poäng utdelas om en klient slår bollen över den andra klientens kortsida eller om bollen stannar på motståndarens planhalva.
| Field Summary | |
|---|---|
private double |
ballAcceleration
bollens ballAcceleration i enheter/sekundkvadrat |
private double |
ballHitWallRotationReduction
hur stor del av bollens rotation i procent som bibehålls efter en kollision med en vägg. |
private double |
ballStartVelocity
bollens starthastighet (vid serve) |
private double |
ballVelocity
bollens aktuella hastighet i enheter/sekund |
private static int |
BX
|
private static int |
BY
|
private double |
direction
bollens riktning |
private long |
framerate
antalet positionsupdateringar/sekund |
private double[] |
gameData
spelarnas och bollens aktuella positioner [s1x,s1y,s2x,s2y,bx,by] |
private int[] |
gameDataOut
spelarnas och bollens aktuella positioner samt spelarnas poäng [s1x,s1y,s2x,s2y,bx,by,s1p,s2p] |
private java.lang.String |
left
vänster spelares id-värde |
private int |
newRot
(+-)rotation som aderas till bollen om racket träffar den med hastighet i y-led |
private static int |
P1X
|
private static int |
P1Y
|
private static int |
P2X
|
private static int |
P2Y
|
private int[] |
playerMovement
spelarnas aktuella rörelseriktningar [s1dx,s1dy,s2dx,s2dy] |
private double |
playerVelocity
racketens hastighet vid rörese; |
private static int |
POINT_P1
|
private static int |
POINT_P2
|
private java.lang.String |
right
höger spelares id-värde |
private double |
rotAcceleration
bollrotationsacceleration |
private double |
rotation
bollens rotation i varv/sekund |
private boolean |
serve
true om bollen är stilla pga serve |
private boolean |
started
true om denna match har startat |
| Constructor Summary | |
|---|---|
Game(java.lang.String left,
java.lang.String right)
konstruktor, skapar en tråd som efter fem sekunder startar matchen och därefter uppdaterar spelarnas och bollens positioner framerate gånger per sekund. |
|
| Method Summary | |
|---|---|
int[] |
getGameData()
|
boolean |
isStarted()
|
void |
playerMovement(java.lang.String id,
int[] movement)
anropas via servern av klient som vill uppdatera sin racketrörelse |
void |
setBallAcceleration(double ballAcceleration)
sätter bollens acceleration, bör vara negativ;) |
void |
setBallStartVelocity(double ballStartVelocity)
sätter bollstartshastigheten, denna plus rackethastigheten ger bollens fart vid serv. |
void |
setFramerate(long framerate)
sätter anal speluppdateringar/sekund, om servern hinner med. |
void |
setNewRot(int newRot)
sätter bollens rotationsökning vid snedslag |
void |
setPlayerVelocity(double playerVelocity)
sätter rackethastigheten |
void |
setRotAcceleration(double rotAcceleration)
sätter rotationsaccelerationen, bör vara negativ;) |
java.lang.String |
side(java.lang.String id)
returnerar vilken sida av planen klient med idvärde id spelar på |
void |
stopGame()
anropas via servern av klient som avslutar matchen |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
private boolean started
private boolean serve
private java.lang.String left
private java.lang.String right
private double[] gameData
[s1x,s1y,s2x,s2y,bx,by]
private int[] gameDataOut
[s1x,s1y,s2x,s2y,bx,by,s1p,s2p]
private int[] playerMovement
[s1dx,s1dy,s2dx,s2dy]
private double playerVelocity
private double ballVelocity
private double ballStartVelocity
private double ballAcceleration
private long framerate
private double direction
private static final int P1X
private static final int P1Y
private static final int P2X
private static final int P2Y
private static final int BX
private static final int BY
private static final int POINT_P1
private static final int POINT_P2
private double rotation
private double ballHitWallRotationReduction
private int newRot
private double rotAcceleration
| Constructor Detail |
|---|
public Game(java.lang.String left,
java.lang.String right)
left - vänster spelares idvärderight - höger spelares idvärde| Method Detail |
|---|
public boolean isStarted()
public void stopGame()
public int[] getGameData()
throws TennisGameException
TennisGameException - om motståndaren avslutat matchengameData
public void playerMovement(java.lang.String id,
int[] movement)
id - klientens idvärdemovement - racketrörelse, [dx, dy] möjliga värden för dx och dy = -1,0,1public java.lang.String side(java.lang.String id)
id - klientens idvärde
public void setBallAcceleration(double ballAcceleration)
GameVariableListener
setBallAcceleration in interface GameVariableListenerballAcceleration - bollens accelerationGameVariableListener.setBallAcceleration(double)public void setBallStartVelocity(double ballStartVelocity)
GameVariableListener
setBallStartVelocity in interface GameVariableListenerballStartVelocity - bollstartshastighetenGameVariableListener.setBallStartVelocity(double)public void setFramerate(long framerate)
GameVariableListener
setFramerate in interface GameVariableListenerGameVariableListener.setFramerate(long)public void setNewRot(int newRot)
GameVariableListener
setNewRot in interface GameVariableListenernewRot - rotationsökningGameVariableListener.setNewRot(int)public void setPlayerVelocity(double playerVelocity)
GameVariableListener
setPlayerVelocity in interface GameVariableListenerplayerVelocity - rackethastighetenGameVariableListener.setPlayerVelocity(double)public void setRotAcceleration(double rotAcceleration)
GameVariableListener
setRotAcceleration in interface GameVariableListenerrotAcceleration - rotationsaccelerationen;GameVariableListener.setRotAcceleration(double)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||