-
Notifications
You must be signed in to change notification settings - Fork 1
Serialization Design
The game will be save in a customize .txt file named with username, using JAVA build in library- PrintWriter and BufferedReader. The game will load/save the file once the player envoke the correspond save/load button
The first line of file will consist of the amount of time left at the current level:
If the amount of time left is equal to 0. In another phrase the user saved at the end of a level. The file will simply save the game at the **next level ** with the exception that it is already the end of game. If the user save at the end of game. The file will only consist with a line of "###END###" to indicate the end of entire game
The second line of file will consist of a number indicate the current level
The third line of file will consist the difficulty level of the game in String, such as {easy,medium,hard}
The fourth line consist a number indicate number of player
A string of ###user will come before every string line consist of player's information
The format for player's information comes in a string line with username; totalCoins; current score in the level;health; shipSkin; UpperLeftXPosition; UpperLeftPosition; width;height;deltaX; deltaY; and additional affects on the player separate by a colon. Additionally, information for additional affects will be separate by commas according to the additional affect type within the colons
The format for player's information comes in a string line with current score in the level; health; shipSkin; UpperLeftXPosition; UpperLeftPosition;width;height; deltaX; deltaY; and additional affects on the player separate by a colon. Additionally, information for additional affects will be separate by commas according to the additional affect type within the colons.
Note: username and totalCoins is been taken out,** since this mode of game does not require any login of user.**
The line after player's information consist the number of game Object
A string of ###gameobject will come before every string line consist of game object The format for game object comes in a string line with object type; specific Object Type; UpperLeftXPosition; UpperLeftYposition; deltaX; delatY; and additional affects on the object, each separate by a colon. Additionally, information for additional affects will be separate by commas within the colons.
The file ends with ENDL#, indicate the end of a files
* 15
* 2
* easy
* 1
* ###user
* Jack;100;20;58;SHIP1;300;450;5;5;10;10;Faster,5,20
Explanation: Faster is an example affect make player move faster. The player gain a increase of speed by5, and for 20 seconds
* 3
* ###gameobject
* EnemyObject;GHOST;100;230;5;5;4;4;Freeze,0,5; Faster,5,20
Explanation: Freeze is an powerup that change the deltax and deltay for EnemyObject to 0 for 5 seconds
* ###gameobject
* Obstacle;Obstacle;100;250;5;5;0;0
* ###gameobject
* PowerUp;Freeze;20;50;5;5;0;0
* ENDL#
*
* 60
* 4
* easy
* 1
* ###user
* Andrew;100;20;30;SHIP1;300;450;5;5;10;10
* ENDL#
* 28
* 4
* easy
* 2
* ###user
* 20;87;SHIP1;300;450;5;5;10;10;Faster,5,20
* ###user
* 20;15;SHIP2;20;300;450;5;5;10;10;Faster,5,20
* ENDL#
* ###END###
[Save/Load Methods] https://github.com/bjucps209/spring2021-team4/blob/main/Wave/src/model/Wave.java
[Unit Tests] https://github.com/bjucps209/spring2021-team4/blob/main/Wave/src/model/WaveTest.java
Peer Review: 2021/4/3 4:17 pm Reviewer: Conner Recommendation: Beware of change might occur later during the implementation stage, such as adding new variables.