-
Notifications
You must be signed in to change notification settings - Fork 4
Infinite Generating Terrains_Implementation Explanation
The main part of this feature is located in MainGameScreen.java, ForestGameArea.java, TerrainFactory.java. We changed the whole camera perspective from an up-down view to a 2D scrolling game, which continuously generates the terrains.
Scrolling screen
- In the MainGameScreen.java, we changed the constructor's local variable into a global variable :
forestGameArea = new ForestGameArea(terrainFactory);
- In ForestGameArea.java, it automatically generated a player which stores in this class, we need to save the player's variable in the MainGameScreen.java for later use:
player = forestGameArea.player;
- In the MainGameScreen.java's render function, we will get the player's current position from the player's variable which stored previously.
player.setPosition((float) (player.getPosition().x+0.05), player.getPosition().y);
- Then we centralised the screen to the player by setting the camera position to the player's current position:
Vector2 screenVector = player.getPosition(); screenVector.y = 7f; renderer.getCamera().getEntity().setPosition(screenVector);
Infinite loop the terrain
- In the MainGameScreen.java's render function, when the player move to each terrain(22 square box as a set) set's middle point, it will start generating the next set of terrain.
if(screenVector.x > (2*counter+1)*10) { counter+=1; forestGameArea.spawnTerrainRandomly((int) (screenVector.x+2));
- In the ForestGameArea.java, we created a spawnTerrainRandomly function, which is used to spawn the next set of terrain randomly based on the player's x-value position, and generate a set of terrain randomly according to the random number.
Terrain generation
- In the ForestGameArea.java's spawnTerrain function, we created a set of terrain by generating 22 square boxes (Entity) which player can walk on them.
- Then, we apply the image of each square boxes of the terrain.
- Infinite generating the terrain and scrolling screen.
In the following sprint, we will implement various kinds of terrain and randomly generate them. We will also come up with some algorithms to better pile up rocks and woods to improve the user experience.
Camera Angle and The Player's Perspective
Achievements Trophies and Cards
πΎ Obstacle/Enemy
βMonster Manual
βObstacles/Enemies
ββ- Alien Plants
ββ- Variation thorns
ββ- Falling Meteorites
ββ- FaceHugger
ββ- AlienMonkey
βSpaceship & Map Entry
βParticle effect
[code for debuff animations](code for debuff animations)
Main Character Movement, Interactions and Animations - Code Guidelines
ItemBar & Recycle system
πΎ Obstacle/Enemy
βObstacle/Enemy
βMonster Manual
βSpaceship Boss
βParticle effects
βOther Related Code
βUML & Sequence diagram of enemies/obstacles
Scoring System Implementation Explanation
Buff and Debuff Implementation
Infinite generating terrains Implementation Explanation
Game Over Screen and functions explaination
Buffer timer before game start
Rocks and woods layout optimization
Magma and nails code implementation
Guide: Adding Background music for a particular screen
History Scoreboard - Score Details
Listening for important events in the Achievements ecosystem
Hunger and Thirst icon code guidelines
Hunger and Thirst User Testing
Buff and Debuff Manual User Testing
The New Button User Test in Setting Page
The Main Menu Buttons User Testing
Infinite loop game and Terrain Testing
https://github.com/UQdeco2800/2021-ext-studio-2.wiki.git
πΎ Obstacle/Enemy
βObstacle testing
ββ- Alien Plants & Variation Thorns
ββ- Falling Meteorites
βEnemy testing
ββ- Alien Monkeys & Facehugger
ββ- Spaceship Boss
βMonster Manual
βParticle-effect
βPlayer attack testing
ββ- Player Attack
Sprint 1
Sprint 2
Sprint 3
Sprint 4
Changeable background & Buffer time testing
Game over screen test sprint 4
New terrain textures on bonus map test sprint 4
Achievements System, Game Records and Unlockable Chapters
Musics Implementation Testing plan