-
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
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 user information
The format for player's information comes in a string line with username; shipSkin; totalCoins; current score in the level; UpperLeftXPosition; UpperLeftPosition; 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 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;SHIP1;100;20;300;450;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;4;4;Freeze,0,5
Explanation: Freeze is an powerup that change the deltax and deltay for EnemyObject to 0 for 5 seconds
* ###gameobject
* Obstacle;Obstacle;100;250;0;0
* ###gameobject
* PowerUp;Freeze;20;50;0;0
* ENDL#
*
* 60
* 4
* easy
* 1
* ###user
* Andrew;SHIP1;100;20;300;450;10;10;Faster,5,20
* ENDL#
[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.