@@ -2,7 +2,7 @@ import { Scene } from "phaser";
22import { AssetsConfig } from "../configs" ;
33import { Hero } from "../game-objects" ;
44import { ForestLevel } from "../levels" ;
5- import { SceneTag } from "../tags" ;
5+ import { AnimationTag , HeroEventTag , ImageTag , SceneTag , SpritesheetTag } from "../tags" ;
66
77export class Game extends Scene {
88 private _hero : Hero | undefined ;
@@ -46,7 +46,11 @@ export class Game extends Scene {
4646
4747 this . _hero = new Hero ( this ) ;
4848 this . _hero . on ( "destroy" , ( ) => this . scene . start ( SceneTag . GAME_OVER ) ) ;
49+
50+ this . events . on ( HeroEventTag . HURT , ( ) => { } ) ;
4951 this . _currentLevel = new ForestLevel ( this . _hero , this ) ;
52+
53+ this . createHeartsAnimation ( ) ;
5054 }
5155
5256 /**
@@ -72,6 +76,7 @@ export class Game extends Scene {
7276
7377 this . _hero ?. update ( time , delta ) ;
7478 this . _currentLevel ?. update ( ) ;
79+ this . updateHearts ( ) ;
7580 }
7681
7782 private createDebug ( ) : void {
@@ -93,4 +98,35 @@ export class Game extends Scene {
9398 this . _hero . heroState . set ( { action : "MOVING-RIGHT" } ) ;
9499 }
95100 }
101+
102+ private updateHearts ( ) : void {
103+ if ( ! this . _hero ) {
104+ return ;
105+ }
106+
107+ const { hp, maximumHp } = this . _hero ;
108+
109+ this . drawHearts ( maximumHp , ImageTag . HEART_BACKGROUND ) ;
110+ this . drawHearts ( maximumHp , ImageTag . HEART_BORDER ) ;
111+ this . drawHearts ( hp , ImageTag . HEART ) ;
112+ }
113+
114+ private drawHearts ( loop : number , imageTag : ImageTag ) : void {
115+ for ( let i = 0 ; i < loop ; i ++ ) {
116+ const heart = this . add . sprite ( 16 + 18 * i , 16 , imageTag ) ;
117+ heart . setOrigin ( 0 , 0 ) ;
118+ heart . setScrollFactor ( 0 ) ;
119+ }
120+ }
121+
122+ private createHeartsAnimation ( ) : void {
123+ this . anims . create ( {
124+ key : AnimationTag . HEART_CHANGE ,
125+ frames : this . anims . generateFrameNumbers ( SpritesheetTag . HEART , {
126+ start : 0 ,
127+ end : 4 ,
128+ } ) ,
129+ frameRate : 8 ,
130+ } ) ;
131+ }
96132}
0 commit comments