New HuD | New level with new ladders |
---|---|
![]() |
![]() |
- Update player HuD. Now the HuD for the player visualized not above the player but on the top-left corner
- Update not only health count but also health bar
- Decrease player health from
10
to5
- Update player background audio file and add extra ones.
- Loop audio when it ends
- Update default font color
Animation | Animation name |
---|---|
![]() |
Double jump |
![]() |
Wall jump / slide |
![]() |
Attack |
- Add player extra animations:
- wall-slide animation
- double-jump animation
- attack animation
- Add player new mechanics:
- Slide by the wall (wall-slide)
- Double jump
- Jump from the wall (wall-jump)
- Attack the enemies
- Add
side sensor
which handles right and left sides for the player. It help to understand that the player has any contact on sides. For example it used to track enemies onattack
or walls onwall_slide
- Add
textures.ron
file which contains the whole game textures for the game. All player states and animations for it. Sizes, items in a sprite sheet and so on. The same logic for theenemies
andtutorials
.
- Move all shared components into
common/components
file. Mademain.rs
file less and more readable.
- Upgrade to
[email protected]
and all related dependencies - Update
offsets
for player animations to make it more consistent
Animation | Animation name |
---|---|
![]() |
Climbing |
![]() |
Death by enemy hit |
![]() |
Death by out-of-bounce |
- Add idle, climb, hit, death animation for the player
- Add
PlayerAnimationState
which says in which animation state the player right now. It helps to run the logic only on specific animation states and wait before we may start new physics actions.
- Chang Player texture to the apple from Phil Giarrusso on itch.io
- Show death menu only when the death player animation is over
- Remove pumpkin and dragon icons
- Remove changing the character by pressing
Q
key
- Add
settings.ron
file which stores all basic information about the game settings - Create
temporary/settings.ron
which contain instance of user settings. It's bein created only once when it's absent. - Read from settings to start the game with correct audio settings.
- Disable
TutorialPlugin
for now because it has a bug which is described in the same file. Tutorial should be turned on when the game will be upgraded to[email protected]
version
- Add damage to the enemy when the player interacts with them.
- Add an ability to change settings. For now, it's only
music
- Ability to turn on / off music
- Ability to increase / decrease volume
- Ability to go back to the main menu
- Move
MainMenuUI
andDeadMenuUI
intoUI
plugin and add only this plugin inmain.rs
. We may add additional UI plugins later and it will not affect main file.
Out-of bounce dead | Enemy damage |
---|---|
![]() |
![]() |
- Add background game music when the player is playing the game. And paused it when the player is in menu.
- Add player health and add HuD (Heads-up Display)
- Add
Health
for Player and all enemies (currently all enemies has the same amount of health but it will be changed in the future). - Update
Health
component when the player clickedH
keyboard (just for testing). There is no relation to the game. Just to check how to updateHealth
component and HuD width. - Show dead menu when the player is dead. Forbid to resume the game if the player is dead
- Add out-of bounce area when the player should die because it's a restricted area.
- Add more complex game state. Add additional game state for
Game
andMenu
states. NowMenu
hasMain
andDead
sub states.
- Add enemy sprites and make them look like a monsters
- Add
patrol
for the monster to be able to walk on the map - Add enemy animation if they are on move (the same logic as we did for player)
- Do not affect tutorials if there is any interactions except the Player. Because previously any kind of entity may affect tutorials and even the monsters removes tutorials after collision interactions.
- Change enemy sprite rotation when the monster goes on left or right
- Add movement tutorial. When we show a UI on the top-left screen. And we're leading the user of how to move and climb
User couldn't jump on new levels. But ground detection works fine for current levels. Maybe the problem inside how the levels has been created or how ground detection checks new loaded levels.
I'll try to play with it and fix it in the next release.
- Add an ability to use main menu. When the user open the menu they may interact with
Play
andExit
buttons to play or exit the game respectively.
- Remove an ability to jump in the air. Now the player may jump only once until it faced the surface.
- Add Main Menu to pause and resume the game. For now it may only pause and resume the game. But every button just resume the game and now it's more fake.
- Add
iyes_loopless
crate to manupulate with the game state. For now player and enemies spawns only when user enter the game in the first time. And when the user in the menu all systems which are related with player or enemy are not running anymore. It should help to manupulate with systems extendability because the logic has been written for the whole plugin but not for the each system.
- [debug] Debug layer now might be run via command
cargo run --features bevy/dynamic --features debug
which enables debug layer on the top of current ones and visualize all the collisions on the screen. - Added an enemies on the screen based on Ldtk map position. Currently they are visualized just as boxes.
- Updated
bevy_rapier2d
to 0.14 when the collider and rigid-body positions are read from theGlobalTransform
instead ofTransform
. After that all collisions with the floor, ladders, and enemies works correctly. I've also created an issue into the bevy_ecs_ldtk when described the problem and @Trouv helped me with the explanation. Hopefully, now everything works fine.
sync_global_coords_with_local
system becauserapier
now works withGlobalTransform
.
- [debug] Update debug layer when dimensions are changed
- Spawn the player and the map with collisions
- You may change player sprite by pressing
Q
(now only 2 options: Pumpkin and Dragon) - You may travel through different levels in the same map
- Movement animation
- Debug layer to visualize Player, Ladder and Wall collisions
Ladders is not interactive when in the Ldtk settings set
LevelSpawnBehavior::UseWorldTranslation {
load_level_neighbors: true,
}
by this config we load all nearby levels and change the position for the levels from local to global.
I've created a sync_global_coords_with_local
to syncronize global coords
and local coords after the collision has been set.
I don't know why it happened by I think the same problem occurs for the
Ladders