react-native-games 0.8.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +135 -176
- package/lib/module/games/balloon-blaster/BalloonBlaster.js +9 -14
- package/lib/module/games/balloon-blaster/BalloonBlaster.js.map +1 -1
- package/lib/module/games/balloon-blaster/BalloonBlasterStore.js +1 -1
- package/lib/module/games/balloon-blaster/components/GameArea.js +1 -1
- package/lib/module/games/balloon-blaster/components/GameArea.js.map +1 -1
- package/lib/module/games/balloon-blaster/components/GameBackground.js +24 -17
- package/lib/module/games/balloon-blaster/components/GameBackground.js.map +1 -1
- package/lib/module/games/balloon-blaster/components/ScoreBoard.js +47 -47
- package/lib/module/games/balloon-blaster/components/ScoreBoard.js.map +1 -1
- package/lib/module/games/candy-crush/CandyCrush.js +16 -6
- package/lib/module/games/candy-crush/CandyCrush.js.map +1 -1
- package/lib/module/games/candy-crush/CandyCrushStore.js +4 -6
- package/lib/module/games/candy-crush/CandyCrushStore.js.map +1 -1
- package/lib/module/games/candy-crush/components/ScoreBoard.js +32 -65
- package/lib/module/games/candy-crush/components/ScoreBoard.js.map +1 -1
- package/lib/module/games/{color-sort/ColorSort.js → colors-sort/ColorsSort.js} +37 -24
- package/lib/module/games/colors-sort/ColorsSort.js.map +1 -0
- package/lib/module/games/{color-sort/ColorSortConstants.js → colors-sort/ColorsSortConstants.js} +11 -7
- package/lib/module/games/colors-sort/ColorsSortConstants.js.map +1 -0
- package/lib/module/games/{color-sort/ColorSortService.js → colors-sort/ColorsSortService.js} +1 -1
- package/lib/module/games/colors-sort/ColorsSortService.js.map +1 -0
- package/lib/module/games/{color-sort/ColorSortStore.js → colors-sort/ColorsSortStore.js} +20 -21
- package/lib/module/games/colors-sort/ColorsSortStore.js.map +1 -0
- package/lib/module/games/{color-sort → colors-sort}/components/ColorContainer.js +4 -4
- package/lib/module/games/colors-sort/components/ColorContainer.js.map +1 -0
- package/lib/module/games/{color-sort → colors-sort}/components/GameBackground.js +1 -1
- package/lib/module/games/colors-sort/components/GameBackground.js.map +1 -0
- package/lib/module/games/{color-sort → colors-sort}/components/ScoreBoard.js +14 -22
- package/lib/module/games/colors-sort/components/ScoreBoard.js.map +1 -0
- package/lib/module/games/colors-sort/components/index.js.map +1 -0
- package/lib/module/games/dino-jump/DinoJump.js +23 -23
- package/lib/module/games/dino-jump/DinoJump.js.map +1 -1
- package/lib/module/games/dino-jump/DinoJumpConstants.js +16 -6
- package/lib/module/games/dino-jump/DinoJumpConstants.js.map +1 -1
- package/lib/module/games/dino-jump/DinoJumpService.js +14 -12
- package/lib/module/games/dino-jump/DinoJumpService.js.map +1 -1
- package/lib/module/games/dino-jump/DinoJumpStore.js +14 -20
- package/lib/module/games/dino-jump/DinoJumpStore.js.map +1 -1
- package/lib/module/games/dino-jump/components/DinoSprite.js +15 -6
- package/lib/module/games/dino-jump/components/DinoSprite.js.map +1 -1
- package/lib/module/games/dino-jump/components/GameBackground.js +65 -42
- package/lib/module/games/dino-jump/components/GameBackground.js.map +1 -1
- package/lib/module/games/dino-jump/components/ScoreBoard.js +48 -50
- package/lib/module/games/dino-jump/components/ScoreBoard.js.map +1 -1
- package/lib/module/games/flappy-bird/FlappyBird.js +9 -14
- package/lib/module/games/flappy-bird/FlappyBird.js.map +1 -1
- package/lib/module/games/flappy-bird/FlappyBirdConstants.js +1 -1
- package/lib/module/games/flappy-bird/FlappyBirdStore.js +53 -29
- package/lib/module/games/flappy-bird/FlappyBirdStore.js.map +1 -1
- package/lib/module/games/flappy-bird/components/GameArea.js +3 -2
- package/lib/module/games/flappy-bird/components/GameArea.js.map +1 -1
- package/lib/module/games/flappy-bird/components/GameBackground.js +10 -43
- package/lib/module/games/flappy-bird/components/GameBackground.js.map +1 -1
- package/lib/module/games/flappy-bird/components/Pipes.js +65 -68
- package/lib/module/games/flappy-bird/components/Pipes.js.map +1 -1
- package/lib/module/games/flappy-bird/components/ScoreBoard.js +23 -22
- package/lib/module/games/flappy-bird/components/ScoreBoard.js.map +1 -1
- package/lib/module/games/fruit-merger/FruitMerger.js +13 -5
- package/lib/module/games/fruit-merger/FruitMerger.js.map +1 -1
- package/lib/module/games/fruit-merger/FruitMergerConstants.js +4 -4
- package/lib/module/games/fruit-merger/FruitMergerStore.js +5 -8
- package/lib/module/games/fruit-merger/FruitMergerStore.js.map +1 -1
- package/lib/module/games/fruit-merger/components/GameArea.js +5 -25
- package/lib/module/games/fruit-merger/components/GameArea.js.map +1 -1
- package/lib/module/games/fruit-merger/components/GameBackground.js +40 -19
- package/lib/module/games/fruit-merger/components/GameBackground.js.map +1 -1
- package/lib/module/games/fruit-merger/components/ScoreBoard.js +9 -17
- package/lib/module/games/fruit-merger/components/ScoreBoard.js.map +1 -1
- package/lib/module/games/fruit-ninja/FruitNinja.js +9 -14
- package/lib/module/games/fruit-ninja/FruitNinja.js.map +1 -1
- package/lib/module/games/fruit-ninja/FruitNinjaStore.js +1 -1
- package/lib/module/games/fruit-ninja/components/GameArea.js +1 -1
- package/lib/module/games/fruit-ninja/components/GameArea.js.map +1 -1
- package/lib/module/games/fruit-ninja/components/GameBackground.js +70 -45
- package/lib/module/games/fruit-ninja/components/GameBackground.js.map +1 -1
- package/lib/module/games/fruit-ninja/components/ScoreBoard.js +47 -46
- package/lib/module/games/fruit-ninja/components/ScoreBoard.js.map +1 -1
- package/lib/module/games/game-2048/Game2048.js +81 -52
- package/lib/module/games/game-2048/Game2048.js.map +1 -1
- package/lib/module/games/game-2048/Game2048Constants.js +18 -18
- package/lib/module/games/game-2048/Game2048Constants.js.map +1 -1
- package/lib/module/games/game-2048/Game2048Store.js +10 -12
- package/lib/module/games/game-2048/Game2048Store.js.map +1 -1
- package/lib/module/games/game-2048/components/ScoreBoard.js +25 -43
- package/lib/module/games/game-2048/components/ScoreBoard.js.map +1 -1
- package/lib/module/games/maze-runner/MazeRunner.js +22 -14
- package/lib/module/games/maze-runner/MazeRunner.js.map +1 -1
- package/lib/module/games/maze-runner/MazeRunnerService.js +19 -17
- package/lib/module/games/maze-runner/MazeRunnerService.js.map +1 -1
- package/lib/module/games/maze-runner/components/ScoreBoard.js +32 -42
- package/lib/module/games/maze-runner/components/ScoreBoard.js.map +1 -1
- package/lib/module/games/popit-fidget/PopitFidget.js +27 -38
- package/lib/module/games/popit-fidget/PopitFidget.js.map +1 -1
- package/lib/module/games/popit-fidget/PopitFidgetStore.js +6 -44
- package/lib/module/games/popit-fidget/PopitFidgetStore.js.map +1 -1
- package/lib/module/games/popit-fidget/components/ScoreBoard.js +31 -45
- package/lib/module/games/popit-fidget/components/ScoreBoard.js.map +1 -1
- package/lib/module/games/sliding-numbers/SlidingNumbers.js +18 -20
- package/lib/module/games/sliding-numbers/SlidingNumbers.js.map +1 -1
- package/lib/module/games/sliding-numbers/SlidingNumbersStore.js +4 -5
- package/lib/module/games/sliding-numbers/SlidingNumbersStore.js.map +1 -1
- package/lib/module/games/sliding-numbers/components/ScoreBoard.js +26 -28
- package/lib/module/games/sliding-numbers/components/ScoreBoard.js.map +1 -1
- package/lib/module/games/snake/Snake.js +23 -26
- package/lib/module/games/snake/Snake.js.map +1 -1
- package/lib/module/games/snake/SnakeConstants.js +2 -2
- package/lib/module/games/snake/SnakeStore.js +4 -6
- package/lib/module/games/snake/SnakeStore.js.map +1 -1
- package/lib/module/games/snake/components/ScoreBoard.js +10 -16
- package/lib/module/games/snake/components/ScoreBoard.js.map +1 -1
- package/lib/module/games/space-fighter/SpaceFighter.js +16 -17
- package/lib/module/games/space-fighter/SpaceFighter.js.map +1 -1
- package/lib/module/games/space-fighter/SpaceFighterService.js +7 -6
- package/lib/module/games/space-fighter/SpaceFighterService.js.map +1 -1
- package/lib/module/games/space-fighter/SpaceFighterStore.js +25 -11
- package/lib/module/games/space-fighter/SpaceFighterStore.js.map +1 -1
- package/lib/module/games/space-fighter/components/GameArea.js +1 -7
- package/lib/module/games/space-fighter/components/GameArea.js.map +1 -1
- package/lib/module/games/space-fighter/components/ScoreBoard.js +47 -48
- package/lib/module/games/space-fighter/components/ScoreBoard.js.map +1 -1
- package/lib/module/games/whack-a-mole/WhackAMole.js +12 -5
- package/lib/module/games/whack-a-mole/WhackAMole.js.map +1 -1
- package/lib/module/games/whack-a-mole/WhackAMoleStore.js +1 -1
- package/lib/module/games/whack-a-mole/components/GameBackground.js +37 -30
- package/lib/module/games/whack-a-mole/components/GameBackground.js.map +1 -1
- package/lib/module/games/whack-a-mole/components/ScoreBoard.js +32 -38
- package/lib/module/games/whack-a-mole/components/ScoreBoard.js.map +1 -1
- package/lib/module/helpers/AnimationFrame.js.map +1 -0
- package/lib/module/helpers/AnimationTracker.js.map +1 -0
- package/lib/module/helpers/ErrorHandler.js.map +1 -0
- package/lib/module/helpers/GameControlButton.js.map +1 -0
- package/lib/module/helpers/GameOverModal.js.map +1 -0
- package/lib/module/{shared/helpers → helpers}/GameSettingsModal.js +2 -2
- package/lib/module/helpers/GameSettingsModal.js.map +1 -0
- package/lib/module/helpers/ParticleBlast.js.map +1 -0
- package/lib/module/helpers/ScoreBoardContainer.js +34 -0
- package/lib/module/helpers/ScoreBoardContainer.js.map +1 -0
- package/lib/module/{shared/helpers → helpers}/index.js +1 -1
- package/lib/module/helpers/index.js.map +1 -0
- package/lib/module/index.js +2 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/services/GamesConstants.js +49 -10
- package/lib/module/services/GamesConstants.js.map +1 -1
- package/lib/module/services/GamesService.js +108 -82
- package/lib/module/services/GamesService.js.map +1 -1
- package/lib/module/services/SoundsService.js +1 -1
- package/lib/module/services/SoundsService.js.map +1 -1
- package/lib/module/services/UtilsService.js +32 -0
- package/lib/module/services/UtilsService.js.map +1 -0
- package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts +1 -1
- package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts.map +1 -1
- package/lib/typescript/src/games/balloon-blaster/components/GameBackground.d.ts +1 -0
- package/lib/typescript/src/games/balloon-blaster/components/GameBackground.d.ts.map +1 -1
- package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts +5 -1
- package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts.map +1 -1
- package/lib/typescript/src/games/candy-crush/CandyCrush.d.ts +1 -1
- package/lib/typescript/src/games/candy-crush/CandyCrush.d.ts.map +1 -1
- package/lib/typescript/src/games/candy-crush/CandyCrushStore.d.ts.map +1 -1
- package/lib/typescript/src/games/candy-crush/components/ScoreBoard.d.ts +4 -1
- package/lib/typescript/src/games/candy-crush/components/ScoreBoard.d.ts.map +1 -1
- package/lib/typescript/src/games/colors-sort/ColorsSort.d.ts +4 -0
- package/lib/typescript/src/games/colors-sort/ColorsSort.d.ts.map +1 -0
- package/lib/typescript/src/games/{color-sort/ColorSortConstants.d.ts → colors-sort/ColorsSortConstants.d.ts} +8 -6
- package/lib/typescript/src/games/colors-sort/ColorsSortConstants.d.ts.map +1 -0
- package/lib/typescript/src/games/{color-sort/ColorSortService.d.ts → colors-sort/ColorsSortService.d.ts} +1 -1
- package/lib/typescript/src/games/colors-sort/ColorsSortService.d.ts.map +1 -0
- package/lib/typescript/src/games/{color-sort/ColorSortStore.d.ts → colors-sort/ColorsSortStore.d.ts} +6 -6
- package/lib/typescript/src/games/colors-sort/ColorsSortStore.d.ts.map +1 -0
- package/lib/typescript/src/games/{color-sort → colors-sort}/components/ColorContainer.d.ts +1 -1
- package/lib/typescript/src/games/colors-sort/components/ColorContainer.d.ts.map +1 -0
- package/lib/typescript/src/games/colors-sort/components/GameBackground.d.ts.map +1 -0
- package/lib/typescript/src/games/colors-sort/components/ScoreBoard.d.ts +7 -0
- package/lib/typescript/src/games/colors-sort/components/ScoreBoard.d.ts.map +1 -0
- package/lib/typescript/src/games/colors-sort/components/index.d.ts.map +1 -0
- package/lib/typescript/src/games/dino-jump/DinoJump.d.ts +1 -1
- package/lib/typescript/src/games/dino-jump/DinoJump.d.ts.map +1 -1
- package/lib/typescript/src/games/dino-jump/DinoJumpConstants.d.ts +6 -4
- package/lib/typescript/src/games/dino-jump/DinoJumpConstants.d.ts.map +1 -1
- package/lib/typescript/src/games/dino-jump/DinoJumpService.d.ts +4 -4
- package/lib/typescript/src/games/dino-jump/DinoJumpService.d.ts.map +1 -1
- package/lib/typescript/src/games/dino-jump/DinoJumpStore.d.ts +3 -3
- package/lib/typescript/src/games/dino-jump/DinoJumpStore.d.ts.map +1 -1
- package/lib/typescript/src/games/dino-jump/components/DinoSprite.d.ts.map +1 -1
- package/lib/typescript/src/games/dino-jump/components/GameArea.d.ts +1 -1
- package/lib/typescript/src/games/dino-jump/components/GameBackground.d.ts +1 -0
- package/lib/typescript/src/games/dino-jump/components/GameBackground.d.ts.map +1 -1
- package/lib/typescript/src/games/dino-jump/components/ScoreBoard.d.ts +5 -1
- package/lib/typescript/src/games/dino-jump/components/ScoreBoard.d.ts.map +1 -1
- package/lib/typescript/src/games/flappy-bird/FlappyBird.d.ts +1 -1
- package/lib/typescript/src/games/flappy-bird/FlappyBird.d.ts.map +1 -1
- package/lib/typescript/src/games/flappy-bird/FlappyBirdStore.d.ts +1 -1
- package/lib/typescript/src/games/flappy-bird/FlappyBirdStore.d.ts.map +1 -1
- package/lib/typescript/src/games/flappy-bird/components/GameArea.d.ts +1 -1
- package/lib/typescript/src/games/flappy-bird/components/GameBackground.d.ts +1 -0
- package/lib/typescript/src/games/flappy-bird/components/GameBackground.d.ts.map +1 -1
- package/lib/typescript/src/games/flappy-bird/components/Pipes.d.ts +1 -0
- package/lib/typescript/src/games/flappy-bird/components/Pipes.d.ts.map +1 -1
- package/lib/typescript/src/games/flappy-bird/components/ScoreBoard.d.ts +5 -1
- package/lib/typescript/src/games/flappy-bird/components/ScoreBoard.d.ts.map +1 -1
- package/lib/typescript/src/games/fruit-merger/FruitMerger.d.ts +1 -1
- package/lib/typescript/src/games/fruit-merger/FruitMerger.d.ts.map +1 -1
- package/lib/typescript/src/games/fruit-merger/FruitMergerStore.d.ts +1 -1
- package/lib/typescript/src/games/fruit-merger/FruitMergerStore.d.ts.map +1 -1
- package/lib/typescript/src/games/fruit-merger/components/GameArea.d.ts +1 -1
- package/lib/typescript/src/games/fruit-merger/components/GameArea.d.ts.map +1 -1
- package/lib/typescript/src/games/fruit-merger/components/GameBackground.d.ts +1 -0
- package/lib/typescript/src/games/fruit-merger/components/GameBackground.d.ts.map +1 -1
- package/lib/typescript/src/games/fruit-merger/components/ScoreBoard.d.ts +5 -1
- package/lib/typescript/src/games/fruit-merger/components/ScoreBoard.d.ts.map +1 -1
- package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts +1 -1
- package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts.map +1 -1
- package/lib/typescript/src/games/fruit-ninja/components/GameBackground.d.ts +1 -0
- package/lib/typescript/src/games/fruit-ninja/components/GameBackground.d.ts.map +1 -1
- package/lib/typescript/src/games/fruit-ninja/components/ScoreBoard.d.ts +5 -1
- package/lib/typescript/src/games/fruit-ninja/components/ScoreBoard.d.ts.map +1 -1
- package/lib/typescript/src/games/game-2048/Game2048.d.ts +1 -1
- package/lib/typescript/src/games/game-2048/Game2048.d.ts.map +1 -1
- package/lib/typescript/src/games/game-2048/Game2048Store.d.ts +3 -3
- package/lib/typescript/src/games/game-2048/Game2048Store.d.ts.map +1 -1
- package/lib/typescript/src/games/game-2048/components/ScoreBoard.d.ts +5 -1
- package/lib/typescript/src/games/game-2048/components/ScoreBoard.d.ts.map +1 -1
- package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts +1 -1
- package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts.map +1 -1
- package/lib/typescript/src/games/maze-runner/MazeRunnerService.d.ts +1 -0
- package/lib/typescript/src/games/maze-runner/MazeRunnerService.d.ts.map +1 -1
- package/lib/typescript/src/games/maze-runner/components/ScoreBoard.d.ts +1 -0
- package/lib/typescript/src/games/maze-runner/components/ScoreBoard.d.ts.map +1 -1
- package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts +1 -1
- package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts.map +1 -1
- package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts +2 -5
- package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts.map +1 -1
- package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts +2 -2
- package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts.map +1 -1
- package/lib/typescript/src/games/sliding-numbers/SlidingNumbers.d.ts +1 -1
- package/lib/typescript/src/games/sliding-numbers/SlidingNumbers.d.ts.map +1 -1
- package/lib/typescript/src/games/sliding-numbers/SlidingNumbersStore.d.ts.map +1 -1
- package/lib/typescript/src/games/sliding-numbers/components/ScoreBoard.d.ts +5 -1
- package/lib/typescript/src/games/sliding-numbers/components/ScoreBoard.d.ts.map +1 -1
- package/lib/typescript/src/games/snake/Snake.d.ts +1 -1
- package/lib/typescript/src/games/snake/Snake.d.ts.map +1 -1
- package/lib/typescript/src/games/snake/SnakeConstants.d.ts +2 -2
- package/lib/typescript/src/games/snake/SnakeStore.d.ts.map +1 -1
- package/lib/typescript/src/games/snake/components/ScoreBoard.d.ts +5 -1
- package/lib/typescript/src/games/snake/components/ScoreBoard.d.ts.map +1 -1
- package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts +1 -1
- package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts.map +1 -1
- package/lib/typescript/src/games/space-fighter/SpaceFighterService.d.ts.map +1 -1
- package/lib/typescript/src/games/space-fighter/SpaceFighterStore.d.ts +2 -0
- package/lib/typescript/src/games/space-fighter/SpaceFighterStore.d.ts.map +1 -1
- package/lib/typescript/src/games/space-fighter/components/GameArea.d.ts.map +1 -1
- package/lib/typescript/src/games/space-fighter/components/ScoreBoard.d.ts +5 -1
- package/lib/typescript/src/games/space-fighter/components/ScoreBoard.d.ts.map +1 -1
- package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts +1 -1
- package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts.map +1 -1
- package/lib/typescript/src/games/whack-a-mole/components/GameBackground.d.ts +1 -0
- package/lib/typescript/src/games/whack-a-mole/components/GameBackground.d.ts.map +1 -1
- package/lib/typescript/src/games/whack-a-mole/components/ScoreBoard.d.ts +1 -0
- package/lib/typescript/src/games/whack-a-mole/components/ScoreBoard.d.ts.map +1 -1
- package/lib/typescript/src/helpers/AnimationFrame.d.ts.map +1 -0
- package/lib/typescript/src/helpers/AnimationTracker.d.ts.map +1 -0
- package/lib/typescript/src/helpers/ErrorHandler.d.ts.map +1 -0
- package/lib/typescript/src/helpers/GameControlButton.d.ts.map +1 -0
- package/lib/typescript/src/helpers/GameOverModal.d.ts.map +1 -0
- package/lib/typescript/src/{shared/helpers → helpers}/GameSettingsModal.d.ts +1 -1
- package/lib/typescript/src/helpers/GameSettingsModal.d.ts.map +1 -0
- package/lib/typescript/src/helpers/ParticleBlast.d.ts.map +1 -0
- package/lib/typescript/src/helpers/ScoreBoardContainer.d.ts +9 -0
- package/lib/typescript/src/helpers/ScoreBoardContainer.d.ts.map +1 -0
- package/lib/typescript/src/{shared/helpers → helpers}/index.d.ts +2 -1
- package/lib/typescript/src/helpers/index.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +2 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/services/GamesConstants.d.ts +8 -2
- package/lib/typescript/src/services/GamesConstants.d.ts.map +1 -1
- package/lib/typescript/src/services/GamesService.d.ts +3 -33
- package/lib/typescript/src/services/GamesService.d.ts.map +1 -1
- package/lib/typescript/src/services/SoundsService.d.ts +1 -1
- package/lib/typescript/src/services/UtilsService.d.ts +38 -0
- package/lib/typescript/src/services/UtilsService.d.ts.map +1 -0
- package/package.json +1 -1
- package/lib/module/games/color-sort/ColorSort.js.map +0 -1
- package/lib/module/games/color-sort/ColorSortConstants.js.map +0 -1
- package/lib/module/games/color-sort/ColorSortService.js.map +0 -1
- package/lib/module/games/color-sort/ColorSortStore.js.map +0 -1
- package/lib/module/games/color-sort/components/ColorContainer.js.map +0 -1
- package/lib/module/games/color-sort/components/GameBackground.js.map +0 -1
- package/lib/module/games/color-sort/components/ScoreBoard.js.map +0 -1
- package/lib/module/games/color-sort/components/index.js.map +0 -1
- package/lib/module/shared/helpers/AnimationFrame.js.map +0 -1
- package/lib/module/shared/helpers/AnimationTracker.js.map +0 -1
- package/lib/module/shared/helpers/ErrorHandler.js.map +0 -1
- package/lib/module/shared/helpers/GameControlButton.js.map +0 -1
- package/lib/module/shared/helpers/GameOverModal.js.map +0 -1
- package/lib/module/shared/helpers/GameSettingsModal.js.map +0 -1
- package/lib/module/shared/helpers/ParticleBlast.js.map +0 -1
- package/lib/module/shared/helpers/ResponsiveScoreBoard.js +0 -81
- package/lib/module/shared/helpers/ResponsiveScoreBoard.js.map +0 -1
- package/lib/module/shared/helpers/index.js.map +0 -1
- package/lib/typescript/src/games/color-sort/ColorSort.d.ts +0 -4
- package/lib/typescript/src/games/color-sort/ColorSort.d.ts.map +0 -1
- package/lib/typescript/src/games/color-sort/ColorSortConstants.d.ts.map +0 -1
- package/lib/typescript/src/games/color-sort/ColorSortService.d.ts.map +0 -1
- package/lib/typescript/src/games/color-sort/ColorSortStore.d.ts.map +0 -1
- package/lib/typescript/src/games/color-sort/components/ColorContainer.d.ts.map +0 -1
- package/lib/typescript/src/games/color-sort/components/GameBackground.d.ts.map +0 -1
- package/lib/typescript/src/games/color-sort/components/ScoreBoard.d.ts +0 -3
- package/lib/typescript/src/games/color-sort/components/ScoreBoard.d.ts.map +0 -1
- package/lib/typescript/src/games/color-sort/components/index.d.ts.map +0 -1
- package/lib/typescript/src/shared/helpers/AnimationFrame.d.ts.map +0 -1
- package/lib/typescript/src/shared/helpers/AnimationTracker.d.ts.map +0 -1
- package/lib/typescript/src/shared/helpers/ErrorHandler.d.ts.map +0 -1
- package/lib/typescript/src/shared/helpers/GameControlButton.d.ts.map +0 -1
- package/lib/typescript/src/shared/helpers/GameOverModal.d.ts.map +0 -1
- package/lib/typescript/src/shared/helpers/GameSettingsModal.d.ts.map +0 -1
- package/lib/typescript/src/shared/helpers/ParticleBlast.d.ts.map +0 -1
- package/lib/typescript/src/shared/helpers/ResponsiveScoreBoard.d.ts +0 -42
- package/lib/typescript/src/shared/helpers/ResponsiveScoreBoard.d.ts.map +0 -1
- package/lib/typescript/src/shared/helpers/index.d.ts.map +0 -1
- /package/lib/module/games/{color-sort → colors-sort}/components/index.js +0 -0
- /package/lib/module/{shared/helpers → helpers}/AnimationFrame.js +0 -0
- /package/lib/module/{shared/helpers → helpers}/AnimationTracker.js +0 -0
- /package/lib/module/{shared/helpers → helpers}/ErrorHandler.js +0 -0
- /package/lib/module/{shared/helpers → helpers}/GameControlButton.js +0 -0
- /package/lib/module/{shared/helpers → helpers}/GameOverModal.js +0 -0
- /package/lib/module/{shared/helpers → helpers}/ParticleBlast.js +0 -0
- /package/lib/typescript/src/games/{color-sort → colors-sort}/components/GameBackground.d.ts +0 -0
- /package/lib/typescript/src/games/{color-sort → colors-sort}/components/index.d.ts +0 -0
- /package/lib/typescript/src/{shared/helpers → helpers}/AnimationFrame.d.ts +0 -0
- /package/lib/typescript/src/{shared/helpers → helpers}/AnimationTracker.d.ts +0 -0
- /package/lib/typescript/src/{shared/helpers → helpers}/ErrorHandler.d.ts +0 -0
- /package/lib/typescript/src/{shared/helpers → helpers}/GameControlButton.d.ts +0 -0
- /package/lib/typescript/src/{shared/helpers → helpers}/GameOverModal.d.ts +0 -0
- /package/lib/typescript/src/{shared/helpers → helpers}/ParticleBlast.d.ts +0 -0
|
@@ -5,10 +5,10 @@ import { View, StyleSheet } from 'react-native';
|
|
|
5
5
|
import { GestureHandlerRootView } from 'react-native-gesture-handler';
|
|
6
6
|
import { useFlappyBirdStore } from "./FlappyBirdStore.js";
|
|
7
7
|
import { ScoreBoard, GameArea, GameBackground } from "./components/index.js";
|
|
8
|
-
import { GameControlButton, GameOverModal } from "../../
|
|
9
|
-
import { GameSettingsModal } from "../../
|
|
8
|
+
import { GameControlButton, GameOverModal } from "../../helpers/index.js";
|
|
9
|
+
import { GameSettingsModal } from "../../helpers/index.js";
|
|
10
10
|
import { FLAPPY_BIRD_COLORS } from "./FlappyBirdConstants.js";
|
|
11
|
-
import { GAME_IDS, DEFAULT_GAME_SETTINGS } from "../../services/
|
|
11
|
+
import { GAME_IDS, DEFAULT_GAME_SETTINGS } from "../../services/UtilsService.js";
|
|
12
12
|
import { playSound, GAME_SOUNDS } from "../../services/SoundsService.js";
|
|
13
13
|
import { playHaptic, HapticType } from "../../services/HapticsService.js";
|
|
14
14
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -76,6 +76,9 @@ export const FlappyBird = /*#__PURE__*/React.memo(({
|
|
|
76
76
|
onSettingsChange
|
|
77
77
|
}), [settings, onSettingsChange]);
|
|
78
78
|
|
|
79
|
+
// Get offset from settings
|
|
80
|
+
const offset = settings?.offset ?? 0;
|
|
81
|
+
|
|
79
82
|
// Memoize GameControlButton props to prevent re-renders (CRITICAL)
|
|
80
83
|
const gameControlButtonProps = useMemo(() => ({
|
|
81
84
|
isPlaying,
|
|
@@ -92,13 +95,13 @@ export const FlappyBird = /*#__PURE__*/React.memo(({
|
|
|
92
95
|
style: styles.root,
|
|
93
96
|
children: /*#__PURE__*/_jsx(GestureHandlerRootView, {
|
|
94
97
|
children: /*#__PURE__*/_jsx(GameBackground, {
|
|
98
|
+
offset: offset,
|
|
95
99
|
children: /*#__PURE__*/_jsxs(View, {
|
|
96
100
|
style: styles.container,
|
|
97
101
|
children: [/*#__PURE__*/_jsx(GameArea, {
|
|
98
102
|
settings: settings
|
|
99
|
-
}), /*#__PURE__*/_jsx(
|
|
100
|
-
|
|
101
|
-
children: /*#__PURE__*/_jsx(ScoreBoard, {})
|
|
103
|
+
}), /*#__PURE__*/_jsx(ScoreBoard, {
|
|
104
|
+
offset: offset
|
|
102
105
|
}), /*#__PURE__*/_jsx(GameControlButton, {
|
|
103
106
|
...gameControlButtonProps
|
|
104
107
|
}), /*#__PURE__*/_jsx(GameOverModal, {
|
|
@@ -117,14 +120,6 @@ const styles = StyleSheet.create({
|
|
|
117
120
|
},
|
|
118
121
|
container: {
|
|
119
122
|
flex: 1
|
|
120
|
-
},
|
|
121
|
-
scoreboardContainer: {
|
|
122
|
-
position: 'absolute',
|
|
123
|
-
top: 0,
|
|
124
|
-
left: 20,
|
|
125
|
-
right: 20,
|
|
126
|
-
zIndex: 100,
|
|
127
|
-
pointerEvents: 'none' // Allow touches to pass through to game below
|
|
128
123
|
}
|
|
129
124
|
});
|
|
130
125
|
FlappyBird.displayName = 'FlappyBird';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useCallback","useMemo","useRef","View","StyleSheet","GestureHandlerRootView","useFlappyBirdStore","ScoreBoard","GameArea","GameBackground","GameControlButton","GameOverModal","GameSettingsModal","FLAPPY_BIRD_COLORS","GAME_IDS","DEFAULT_GAME_SETTINGS","playSound","GAME_SOUNDS","playHaptic","HapticType","jsx","_jsx","jsxs","_jsxs","formatTime","seconds","mins","Math","floor","secs","toString","padStart","FlappyBird","memo","settings","onSettingsChange","isPlaying","state","isGameOver","survivalTime","initializeGame","startGame","stopGame","resetGame","prevGameOverRef","current","FLAPPY_BIRD","HIT","enableSounds","HEAVY","enableHaptics","handleStartGame","START","MEDIUM","handleStopGame","handleResetGame","gameOverModalProps","isVisible","score","onPlayAgain","buttonText","primaryColor","GAME_OVER_BG","borderColor","BUTTON_PRIMARY","buttonColor","buttonBorderColor","BUTTON_SECONDARY","scoreLabel","scoreFormatter","gameSettingsModalProps","gameId","gameControlButtonProps","gameOver","onStartGame","onStopGame","startButtonText","stopButtonText","startButtonSubtext","startButtonColor","startButtonBorderColor","style","styles","root","children","container","
|
|
1
|
+
{"version":3,"names":["React","useEffect","useCallback","useMemo","useRef","View","StyleSheet","GestureHandlerRootView","useFlappyBirdStore","ScoreBoard","GameArea","GameBackground","GameControlButton","GameOverModal","GameSettingsModal","FLAPPY_BIRD_COLORS","GAME_IDS","DEFAULT_GAME_SETTINGS","playSound","GAME_SOUNDS","playHaptic","HapticType","jsx","_jsx","jsxs","_jsxs","formatTime","seconds","mins","Math","floor","secs","toString","padStart","FlappyBird","memo","settings","onSettingsChange","isPlaying","state","isGameOver","survivalTime","initializeGame","startGame","stopGame","resetGame","prevGameOverRef","current","FLAPPY_BIRD","HIT","enableSounds","HEAVY","enableHaptics","handleStartGame","START","MEDIUM","handleStopGame","handleResetGame","gameOverModalProps","isVisible","score","onPlayAgain","buttonText","primaryColor","GAME_OVER_BG","borderColor","BUTTON_PRIMARY","buttonColor","buttonBorderColor","BUTTON_SECONDARY","scoreLabel","scoreFormatter","gameSettingsModalProps","gameId","offset","gameControlButtonProps","gameOver","onStartGame","onStopGame","startButtonText","stopButtonText","startButtonSubtext","startButtonColor","startButtonBorderColor","style","styles","root","children","container","create","flex","displayName"],"sourceRoot":"../../../../src","sources":["games/flappy-bird/FlappyBird.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -39,7 +39,7 @@ export const FLAPPY_BIRD_COLORS = {
|
|
|
39
39
|
BUTTON_SECONDARY: '#4A934A',
|
|
40
40
|
GAME_OVER_BG: 'rgba(74, 147, 74, 0.95)',
|
|
41
41
|
SCORE_BACKGROUND: 'rgba(92, 184, 92, 0.4)',
|
|
42
|
-
SCORE_BORDER: 'rgba(
|
|
42
|
+
SCORE_BORDER: 'rgba(92, 184, 92, 0.8)'
|
|
43
43
|
};
|
|
44
44
|
export const FLAPPY_BIRD_THEME = {
|
|
45
45
|
backgroundColor: '#87CEEB',
|
|
@@ -2,19 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
import { create } from 'zustand';
|
|
4
4
|
import { subscribeWithSelector } from 'zustand/middleware';
|
|
5
|
-
import { immerMiddleware } from "../../services/
|
|
5
|
+
import { immerMiddleware } from "../../services/UtilsService.js";
|
|
6
6
|
import { FLAPPY_BIRD_GAME_CONFIG, DIFFICULTY_CONFIG } from "./FlappyBirdConstants.js";
|
|
7
|
-
const
|
|
7
|
+
const BASE_BRICK_WALL_HEIGHT = 150; // Base wall height (both top and bottom)
|
|
8
8
|
|
|
9
|
-
const generateRandomPipeHeight = () => {
|
|
9
|
+
const generateRandomPipeHeight = (offset = 0) => {
|
|
10
10
|
const {
|
|
11
11
|
MIN_PIPE_HEIGHT,
|
|
12
|
-
GAME_HEIGHT
|
|
13
|
-
GROUND_HEIGHT
|
|
12
|
+
GAME_HEIGHT
|
|
14
13
|
} = FLAPPY_BIRD_GAME_CONFIG;
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
|
|
14
|
+
const topWallHeight = BASE_BRICK_WALL_HEIGHT + offset;
|
|
15
|
+
const bottomWallHeight = offset > 0 ? 150 : 250; // Dynamic bottom wall height
|
|
16
|
+
// Calculate playable height accounting for increased top wall and dynamic bottom wall
|
|
17
|
+
// Bottom wall is at screen bottom, so no GROUND_HEIGHT subtraction needed
|
|
18
|
+
const playableHeight = GAME_HEIGHT - topWallHeight - bottomWallHeight;
|
|
19
|
+
const minHeight = topWallHeight + MIN_PIPE_HEIGHT;
|
|
20
|
+
const maxHeight = topWallHeight + playableHeight * 0.6;
|
|
18
21
|
return minHeight + Math.random() * (maxHeight - minHeight);
|
|
19
22
|
};
|
|
20
23
|
export const useFlappyBirdStore = create()(subscribeWithSelector(immerMiddleware((set, get) => ({
|
|
@@ -86,13 +89,9 @@ export const useFlappyBirdStore = create()(subscribeWithSelector(immerMiddleware
|
|
|
86
89
|
if (state.gameLoopInterval) clearInterval(state.gameLoopInterval);
|
|
87
90
|
if (state.pipeSpawnInterval) clearInterval(state.pipeSpawnInterval);
|
|
88
91
|
if (state.timerInterval) clearInterval(state.timerInterval);
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
state.gameLoopInterval = null;
|
|
93
|
-
state.pipeSpawnInterval = null;
|
|
94
|
-
state.timerInterval = null;
|
|
95
|
-
});
|
|
92
|
+
|
|
93
|
+
// Reset the game instead of showing game over modal
|
|
94
|
+
state.initializeGame();
|
|
96
95
|
},
|
|
97
96
|
resetGame: () => {
|
|
98
97
|
const state = get();
|
|
@@ -126,12 +125,16 @@ export const useFlappyBirdStore = create()(subscribeWithSelector(immerMiddleware
|
|
|
126
125
|
const config = DIFFICULTY_CONFIG[settings.difficulty];
|
|
127
126
|
const {
|
|
128
127
|
GAME_HEIGHT,
|
|
129
|
-
GROUND_HEIGHT,
|
|
130
128
|
GRAVITY,
|
|
131
129
|
BIRD_SIZE,
|
|
132
130
|
MAX_FALL_SPEED,
|
|
133
131
|
VELOCITY_DAMPING
|
|
134
132
|
} = FLAPPY_BIRD_GAME_CONFIG;
|
|
133
|
+
const offset = settings.offset ?? 0;
|
|
134
|
+
const topWallHeight = BASE_BRICK_WALL_HEIGHT + offset;
|
|
135
|
+
const bottomWallHeight = offset > 0 ? 150 : 250; // Dynamic bottom wall height
|
|
136
|
+
const bottomWallTop = GAME_HEIGHT - bottomWallHeight; // Bottom wall at screen bottom
|
|
137
|
+
|
|
135
138
|
let topWallCollision = false;
|
|
136
139
|
let bottomWallCollision = false;
|
|
137
140
|
set(draftState => {
|
|
@@ -163,19 +166,19 @@ export const useFlappyBirdStore = create()(subscribeWithSelector(immerMiddleware
|
|
|
163
166
|
}
|
|
164
167
|
}
|
|
165
168
|
|
|
166
|
-
// Check boundaries -
|
|
167
|
-
// Top brick wall collision
|
|
168
|
-
if (draftState.birdY <
|
|
169
|
-
draftState.birdY =
|
|
169
|
+
// Check boundaries - top wall adjusted by offset
|
|
170
|
+
// Top brick wall collision (with offset)
|
|
171
|
+
if (draftState.birdY < topWallHeight) {
|
|
172
|
+
draftState.birdY = topWallHeight;
|
|
170
173
|
draftState.birdVelocity = 0;
|
|
171
174
|
draftState.isGameOver = true;
|
|
172
175
|
draftState.isPlaying = false;
|
|
173
176
|
topWallCollision = true;
|
|
174
177
|
}
|
|
175
178
|
|
|
176
|
-
// Bottom
|
|
177
|
-
if (draftState.birdY + BIRD_SIZE >
|
|
178
|
-
draftState.birdY =
|
|
179
|
+
// Bottom wall collision (150px wall at ground)
|
|
180
|
+
if (draftState.birdY + BIRD_SIZE > bottomWallTop) {
|
|
181
|
+
draftState.birdY = bottomWallTop - BIRD_SIZE;
|
|
179
182
|
draftState.isGameOver = true;
|
|
180
183
|
draftState.isPlaying = false;
|
|
181
184
|
bottomWallCollision = true;
|
|
@@ -185,27 +188,40 @@ export const useFlappyBirdStore = create()(subscribeWithSelector(immerMiddleware
|
|
|
185
188
|
// Add collision blasts after state update
|
|
186
189
|
if (topWallCollision) {
|
|
187
190
|
const blastX = FLAPPY_BIRD_GAME_CONFIG.BIRD_START_X + BIRD_SIZE / 2;
|
|
188
|
-
const blastY =
|
|
191
|
+
const blastY = topWallHeight + BIRD_SIZE / 2;
|
|
189
192
|
get().addCollisionBlast(blastX, blastY);
|
|
190
|
-
|
|
193
|
+
// Clear intervals but don't reset game (modal will show)
|
|
194
|
+
const state = get();
|
|
195
|
+
if (state.gameLoopInterval) clearInterval(state.gameLoopInterval);
|
|
196
|
+
if (state.pipeSpawnInterval) clearInterval(state.pipeSpawnInterval);
|
|
197
|
+
if (state.timerInterval) clearInterval(state.timerInterval);
|
|
191
198
|
}
|
|
192
199
|
if (bottomWallCollision) {
|
|
193
200
|
const blastX = FLAPPY_BIRD_GAME_CONFIG.BIRD_START_X + BIRD_SIZE / 2;
|
|
194
|
-
const blastY =
|
|
201
|
+
const blastY = bottomWallTop - BIRD_SIZE / 2;
|
|
195
202
|
get().addCollisionBlast(blastX, blastY);
|
|
196
|
-
|
|
203
|
+
// Clear intervals but don't reset game (modal will show)
|
|
204
|
+
const state = get();
|
|
205
|
+
if (state.gameLoopInterval) clearInterval(state.gameLoopInterval);
|
|
206
|
+
if (state.pipeSpawnInterval) clearInterval(state.pipeSpawnInterval);
|
|
207
|
+
if (state.timerInterval) clearInterval(state.timerInterval);
|
|
197
208
|
}
|
|
198
209
|
|
|
199
210
|
// Check collision with pipes
|
|
200
211
|
if (get().checkCollision()) {
|
|
201
|
-
|
|
212
|
+
// Clear intervals but don't reset game (modal will show)
|
|
213
|
+
const state = get();
|
|
214
|
+
if (state.gameLoopInterval) clearInterval(state.gameLoopInterval);
|
|
215
|
+
if (state.pipeSpawnInterval) clearInterval(state.pipeSpawnInterval);
|
|
216
|
+
if (state.timerInterval) clearInterval(state.timerInterval);
|
|
202
217
|
}
|
|
203
218
|
},
|
|
204
219
|
spawnPipe: settings => {
|
|
205
220
|
const state = get();
|
|
206
221
|
if (!state.isPlaying || state.isGameOver) return;
|
|
207
222
|
const config = DIFFICULTY_CONFIG[settings.difficulty];
|
|
208
|
-
const
|
|
223
|
+
const offset = settings.offset ?? 0;
|
|
224
|
+
const topHeight = generateRandomPipeHeight(offset);
|
|
209
225
|
const bottomY = topHeight + config.pipeGap;
|
|
210
226
|
const pipe = {
|
|
211
227
|
id: `pipe-${Date.now()}-${Math.random()}`,
|
|
@@ -240,11 +256,19 @@ export const useFlappyBirdStore = create()(subscribeWithSelector(immerMiddleware
|
|
|
240
256
|
// Check collision with top pipe
|
|
241
257
|
if (birdTop < pipe.topHeight) {
|
|
242
258
|
get().addCollisionBlast(birdCenterX, birdCenterY);
|
|
259
|
+
set(state => {
|
|
260
|
+
state.isGameOver = true;
|
|
261
|
+
state.isPlaying = false;
|
|
262
|
+
});
|
|
243
263
|
return true;
|
|
244
264
|
}
|
|
245
265
|
// Check collision with bottom pipe
|
|
246
266
|
if (birdBottom > pipe.bottomY) {
|
|
247
267
|
get().addCollisionBlast(birdCenterX, birdCenterY);
|
|
268
|
+
set(state => {
|
|
269
|
+
state.isGameOver = true;
|
|
270
|
+
state.isPlaying = false;
|
|
271
|
+
});
|
|
248
272
|
return true;
|
|
249
273
|
}
|
|
250
274
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["create","subscribeWithSelector","immerMiddleware","FLAPPY_BIRD_GAME_CONFIG","DIFFICULTY_CONFIG","BRICK_WALL_HEIGHT","generateRandomPipeHeight","MIN_PIPE_HEIGHT","GAME_HEIGHT","GROUND_HEIGHT","playableHeight","minHeight","maxHeight","Math","random","useFlappyBirdStore","set","get","isPlaying","isGameOver","score","survivalTime","birdY","BIRD_START_Y","birdVelocity","pipes","collisionBlasts","gameLoopInterval","pipeSpawnInterval","timerInterval","initializeGame","state","startGame","settings","clearInterval","gameLoop","setInterval","updatePhysics","pipeSpawn","spawnPipe","PIPE_SPAWN_INTERVAL","timer","setTimeout","stopGame","resetGame","jump","JUMP_VELOCITY","config","difficulty","GRAVITY","BIRD_SIZE","MAX_FALL_SPEED","VELOCITY_DAMPING","topWallCollision","bottomWallCollision","draftState","i","length","pipe","x","pipeSpeed","passed","PIPE_WIDTH","BIRD_START_X","splice","blastX","blastY","addCollisionBlast","checkCollision","topHeight","bottomY","pipeGap","id","Date","now","GAME_WIDTH","push","birdLeft","birdRight","birdTop","birdBottom","birdCenterX","birdCenterY","pipeLeft","pipeRight","y","removeCollisionBlast","filter","blast","useIsPlaying","useIsGameOver","useScore","useSurvivalTime","useBirdY","usePipes","useCollisionBlasts"],"sourceRoot":"../../../../src","sources":["games/flappy-bird/FlappyBirdStore.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["create","subscribeWithSelector","immerMiddleware","FLAPPY_BIRD_GAME_CONFIG","DIFFICULTY_CONFIG","BASE_BRICK_WALL_HEIGHT","generateRandomPipeHeight","offset","MIN_PIPE_HEIGHT","GAME_HEIGHT","topWallHeight","bottomWallHeight","playableHeight","minHeight","maxHeight","Math","random","useFlappyBirdStore","set","get","isPlaying","isGameOver","score","survivalTime","birdY","BIRD_START_Y","birdVelocity","pipes","collisionBlasts","gameLoopInterval","pipeSpawnInterval","timerInterval","initializeGame","state","startGame","settings","clearInterval","gameLoop","setInterval","updatePhysics","pipeSpawn","spawnPipe","PIPE_SPAWN_INTERVAL","timer","setTimeout","stopGame","resetGame","jump","JUMP_VELOCITY","config","difficulty","GRAVITY","BIRD_SIZE","MAX_FALL_SPEED","VELOCITY_DAMPING","bottomWallTop","topWallCollision","bottomWallCollision","draftState","i","length","pipe","x","pipeSpeed","passed","PIPE_WIDTH","BIRD_START_X","splice","blastX","blastY","addCollisionBlast","checkCollision","topHeight","bottomY","pipeGap","id","Date","now","GAME_WIDTH","push","birdLeft","birdRight","birdTop","birdBottom","birdCenterX","birdCenterY","pipeLeft","pipeRight","y","removeCollisionBlast","filter","blast","useIsPlaying","useIsGameOver","useScore","useSurvivalTime","useBirdY","usePipes","useCollisionBlasts"],"sourceRoot":"../../../../src","sources":["games/flappy-bird/FlappyBirdStore.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,7 +6,7 @@ import { GestureHandlerRootView } from 'react-native-gesture-handler';
|
|
|
6
6
|
import { usePipes, useFlappyBirdStore, useCollisionBlasts } from "../FlappyBirdStore.js";
|
|
7
7
|
import { Bird } from "./Bird.js";
|
|
8
8
|
import { Pipes } from "./Pipes.js";
|
|
9
|
-
import { ParticleBlast } from "../../../
|
|
9
|
+
import { ParticleBlast } from "../../../helpers/index.js";
|
|
10
10
|
import { playSound, GAME_SOUNDS } from "../../../services/SoundsService.js";
|
|
11
11
|
import { playHaptic, HapticType } from "../../../services/HapticsService.js";
|
|
12
12
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -56,7 +56,8 @@ export const GameArea = /*#__PURE__*/React.memo(({
|
|
|
56
56
|
children: /*#__PURE__*/_jsxs(View, {
|
|
57
57
|
style: styles.gameContainer,
|
|
58
58
|
children: [/*#__PURE__*/_jsx(Pipes, {
|
|
59
|
-
pipes: pipes
|
|
59
|
+
pipes: pipes,
|
|
60
|
+
offset: settings.offset ?? 0
|
|
60
61
|
}), /*#__PURE__*/_jsx(Bird, {
|
|
61
62
|
birdY: birdY,
|
|
62
63
|
velocity: birdVelocity
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useEffect","useRef","View","StyleSheet","TouchableOpacity","GestureHandlerRootView","usePipes","useFlappyBirdStore","useCollisionBlasts","Bird","Pipes","ParticleBlast","playSound","GAME_SOUNDS","playHaptic","HapticType","jsx","_jsx","jsxs","_jsxs","PARTICLE_COLORS","GameArea","memo","settings","birdY","state","birdVelocity","isPlaying","score","pipes","collisionBlasts","jump","removeCollisionBlast","prevScoreRef","current","FLAPPY_BIRD","SCORE","enableSounds","LIGHT","enableHaptics","handleTap","FLAP","handleBlastComplete","id","style","styles","container","children","activeOpacity","onPress","gameContainer","velocity","map","blast","x","y","particleCount","colors","duration","onComplete","create","flex","position","displayName"],"sourceRoot":"../../../../../src","sources":["games/flappy-bird/components/GameArea.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAC7D,SAASC,IAAI,EAAEC,UAAU,EAAEC,gBAAgB,QAAQ,cAAc;AACjE,SAASC,sBAAsB,QAAQ,8BAA8B;AACrE,SAASC,QAAQ,EAAEC,kBAAkB,EAAEC,kBAAkB,QAAQ,uBAAoB;AACrF,SAASC,IAAI,QAAQ,WAAQ;AAC7B,SAASC,KAAK,QAAQ,YAAS;AAC/B,SAASC,aAAa,QAAQ,
|
|
1
|
+
{"version":3,"names":["React","useCallback","useEffect","useRef","View","StyleSheet","TouchableOpacity","GestureHandlerRootView","usePipes","useFlappyBirdStore","useCollisionBlasts","Bird","Pipes","ParticleBlast","playSound","GAME_SOUNDS","playHaptic","HapticType","jsx","_jsx","jsxs","_jsxs","PARTICLE_COLORS","GameArea","memo","settings","birdY","state","birdVelocity","isPlaying","score","pipes","collisionBlasts","jump","removeCollisionBlast","prevScoreRef","current","FLAPPY_BIRD","SCORE","enableSounds","LIGHT","enableHaptics","handleTap","FLAP","handleBlastComplete","id","style","styles","container","children","activeOpacity","onPress","gameContainer","offset","velocity","map","blast","x","y","particleCount","colors","duration","onComplete","create","flex","position","displayName"],"sourceRoot":"../../../../../src","sources":["games/flappy-bird/components/GameArea.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAC7D,SAASC,IAAI,EAAEC,UAAU,EAAEC,gBAAgB,QAAQ,cAAc;AACjE,SAASC,sBAAsB,QAAQ,8BAA8B;AACrE,SAASC,QAAQ,EAAEC,kBAAkB,EAAEC,kBAAkB,QAAQ,uBAAoB;AACrF,SAASC,IAAI,QAAQ,WAAQ;AAC7B,SAASC,KAAK,QAAQ,YAAS;AAC/B,SAASC,aAAa,QAAQ,2BAAkB;AAChD,SAASC,SAAS,EAAEC,WAAW,QAAQ,oCAAiC;AACxE,SAASC,UAAU,EAAEC,UAAU,QAAQ,qCAAkC;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAG1E;AACA,MAAMC,eAAe,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;AAM1F,OAAO,MAAMC,QAAiC,gBAAGvB,KAAK,CAACwB,IAAI,CAAC,CAAC;EAAEC;AAAS,CAAC,KAAK;EAC5E,MAAMC,KAAK,GAAGjB,kBAAkB,CAACkB,KAAK,IAAIA,KAAK,CAACD,KAAK,CAAC;EACtD,MAAME,YAAY,GAAGnB,kBAAkB,CAACkB,KAAK,IAAIA,KAAK,CAACC,YAAY,CAAC;EACpE,MAAMC,SAAS,GAAGpB,kBAAkB,CAACkB,KAAK,IAAIA,KAAK,CAACE,SAAS,CAAC;EAC9D,MAAMC,KAAK,GAAGrB,kBAAkB,CAACkB,KAAK,IAAIA,KAAK,CAACG,KAAK,CAAC;EAEtD,MAAMC,KAAK,GAAGvB,QAAQ,CAAC,CAAC;EACxB,MAAMwB,eAAe,GAAGtB,kBAAkB,CAAC,CAAC;;EAE5C;EACA,MAAMuB,IAAI,GAAGxB,kBAAkB,CAACkB,KAAK,IAAIA,KAAK,CAACM,IAAI,CAAC;EACpD,MAAMC,oBAAoB,GAAGzB,kBAAkB,CAACkB,KAAK,IAAIA,KAAK,CAACO,oBAAoB,CAAC;EAEpF,MAAMC,YAAY,GAAGhC,MAAM,CAAC,CAAC,CAAC;;EAE9B;EACAD,SAAS,CAAC,MAAM;IACd,IAAI4B,KAAK,GAAGK,YAAY,CAACC,OAAO,IAAIP,SAAS,EAAE;MAC7Cf,SAAS,CAACC,WAAW,CAACsB,WAAW,CAACC,KAAK,EAAEb,QAAQ,CAACc,YAAY,CAAC;MAC/DvB,UAAU,CAACC,UAAU,CAACuB,KAAK,EAAEf,QAAQ,CAACgB,aAAa,CAAC;IACtD;IACAN,YAAY,CAACC,OAAO,GAAGN,KAAK;EAC9B,CAAC,EAAE,CAACA,KAAK,EAAED,SAAS,EAAEJ,QAAQ,CAACc,YAAY,EAAEd,QAAQ,CAACgB,aAAa,CAAC,CAAC;EAErE,MAAMC,SAAS,GAAGzC,WAAW,CAAC,MAAM;IAClC,IAAI,CAAC4B,SAAS,EAAE;IAChBI,IAAI,CAAC,CAAC;IACNnB,SAAS,CAACC,WAAW,CAACsB,WAAW,CAACM,IAAI,EAAElB,QAAQ,CAACc,YAAY,CAAC;IAC9DvB,UAAU,CAACC,UAAU,CAACuB,KAAK,EAAEf,QAAQ,CAACgB,aAAa,CAAC;EACtD,CAAC,EAAE,CAACZ,SAAS,EAAEI,IAAI,EAAER,QAAQ,CAACc,YAAY,EAAEd,QAAQ,CAACgB,aAAa,CAAC,CAAC;;EAEpE;EACA,MAAMG,mBAAmB,GAAG3C,WAAW,CAAE4C,EAAU,IAAK;IACtDX,oBAAoB,CAACW,EAAE,CAAC;EAC1B,CAAC,EAAE,CAACX,oBAAoB,CAAC,CAAC;EAE1B,oBACEf,IAAA,CAACf,IAAI;IAAC0C,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,eAC5B9B,IAAA,CAACZ,sBAAsB;MAAA0C,QAAA,eACvB9B,IAAA,CAACb,gBAAgB;QACfwC,KAAK,EAAEC,MAAM,CAACC,SAAU;QACxBE,aAAa,EAAE,CAAE;QACjBC,OAAO,EAAET,SAAU;QAAAO,QAAA,eAEnB5B,KAAA,CAACjB,IAAI;UAAC0C,KAAK,EAAEC,MAAM,CAACK,aAAc;UAAAH,QAAA,gBAChC9B,IAAA,CAACP,KAAK;YAACmB,KAAK,EAAEA,KAAM;YAACsB,MAAM,EAAE5B,QAAQ,CAAC4B,MAAM,IAAI;UAAE,CAAE,CAAC,eACrDlC,IAAA,CAACR,IAAI;YAACe,KAAK,EAAEA,KAAM;YAAC4B,QAAQ,EAAE1B;UAAa,CAAE,CAAC,EAG7CI,eAAe,CAACuB,GAAG,CAAEC,KAAK,iBACzBrC,IAAA,CAACN,aAAa;YAEZ4C,CAAC,EAAED,KAAK,CAACC,CAAE;YACXC,CAAC,EAAEF,KAAK,CAACE,CAAE;YACXC,aAAa,EAAE,EAAG;YAClBC,MAAM,EAAEtC,eAAgB;YACxBuC,QAAQ,EAAE,GAAI;YACdC,UAAU,EAAEA,CAAA,KAAMlB,mBAAmB,CAACY,KAAK,CAACX,EAAE;UAAE,GAN3CW,KAAK,CAACX,EAOZ,CACF,CAAC;QAAA,CACE;MAAC,CACS;IAAC,CACK;EAAC,CACrB,CAAC;AAEX,CAAC,CAAC;AAEF,MAAME,MAAM,GAAG1C,UAAU,CAAC0D,MAAM,CAAC;EAC/Bf,SAAS,EAAE;IACTgB,IAAI,EAAE;EACR,CAAC;EACDZ,aAAa,EAAE;IACbY,IAAI,EAAE,CAAC;IACPC,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC;AAEF1C,QAAQ,CAAC2C,WAAW,GAAG,UAAU","ignoreList":[]}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { View, Dimensions } from 'react-native';
|
|
5
|
-
import { Canvas, LinearGradient, Rect, Circle, vec, Group
|
|
6
|
-
import { FLAPPY_BIRD_COLORS
|
|
5
|
+
import { Canvas, LinearGradient, Rect, Circle, vec, Group } from '@shopify/react-native-skia';
|
|
6
|
+
import { FLAPPY_BIRD_COLORS } from "../FlappyBirdConstants.js";
|
|
7
7
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
8
|
const {
|
|
9
9
|
width,
|
|
@@ -27,25 +27,13 @@ const cloudPositions = [{
|
|
|
27
27
|
y: height * 0.35,
|
|
28
28
|
scale: 0.9
|
|
29
29
|
}];
|
|
30
|
-
|
|
31
|
-
// Pre-calculate grass paths (MAJOR OPTIMIZATION)
|
|
32
|
-
const grassPaths = Array.from({
|
|
33
|
-
length: 20
|
|
34
|
-
}, (_, i) => {
|
|
35
|
-
const x = width / 20 * i;
|
|
36
|
-
const grassPath = Skia.Path.Make();
|
|
37
|
-
grassPath.moveTo(x, 0); // Y will be adjusted in render
|
|
38
|
-
grassPath.lineTo(x + 2, -8);
|
|
39
|
-
grassPath.lineTo(x + 4, 0);
|
|
40
|
-
return {
|
|
41
|
-
path: grassPath,
|
|
42
|
-
x
|
|
43
|
-
};
|
|
44
|
-
});
|
|
45
30
|
export const GameBackground = /*#__PURE__*/React.memo(({
|
|
46
|
-
children
|
|
31
|
+
children,
|
|
32
|
+
offset = 0
|
|
47
33
|
}) => {
|
|
48
|
-
const
|
|
34
|
+
const bottomWallHeight = offset > 0 ? 150 : 250; // Dynamic bottom wall height
|
|
35
|
+
const skyEndY = height - bottomWallHeight; // Sky extends to where bottom wall starts
|
|
36
|
+
|
|
49
37
|
return /*#__PURE__*/_jsxs(View, {
|
|
50
38
|
style: {
|
|
51
39
|
flex: 1
|
|
@@ -60,10 +48,10 @@ export const GameBackground = /*#__PURE__*/React.memo(({
|
|
|
60
48
|
x: 0,
|
|
61
49
|
y: 0,
|
|
62
50
|
width: width,
|
|
63
|
-
height:
|
|
51
|
+
height: skyEndY,
|
|
64
52
|
children: /*#__PURE__*/_jsx(LinearGradient, {
|
|
65
53
|
start: vec(0, 0),
|
|
66
|
-
end: vec(0,
|
|
54
|
+
end: vec(0, skyEndY),
|
|
67
55
|
colors: [FLAPPY_BIRD_COLORS.SKY_START, FLAPPY_BIRD_COLORS.SKY_END]
|
|
68
56
|
})
|
|
69
57
|
}), cloudPositions.map((cloud, index) => /*#__PURE__*/_jsxs(Group, {
|
|
@@ -83,28 +71,7 @@ export const GameBackground = /*#__PURE__*/React.memo(({
|
|
|
83
71
|
r: 15 * cloud.scale,
|
|
84
72
|
color: "rgba(255, 255, 255, 0.7)"
|
|
85
73
|
})]
|
|
86
|
-
}, `cloud-${index}`))
|
|
87
|
-
x: 0,
|
|
88
|
-
y: groundY,
|
|
89
|
-
width: width,
|
|
90
|
-
height: FLAPPY_BIRD_GAME_CONFIG.GROUND_HEIGHT,
|
|
91
|
-
children: /*#__PURE__*/_jsx(LinearGradient, {
|
|
92
|
-
start: vec(0, groundY),
|
|
93
|
-
end: vec(0, height),
|
|
94
|
-
colors: [FLAPPY_BIRD_COLORS.GROUND, FLAPPY_BIRD_COLORS.GROUND_DARK]
|
|
95
|
-
})
|
|
96
|
-
}), /*#__PURE__*/_jsx(Group, {
|
|
97
|
-
transform: [{
|
|
98
|
-
translateY: groundY
|
|
99
|
-
}],
|
|
100
|
-
children: grassPaths.map((grass, i) => /*#__PURE__*/_jsx(Path, {
|
|
101
|
-
path: grass.path,
|
|
102
|
-
style: "stroke",
|
|
103
|
-
strokeWidth: 2,
|
|
104
|
-
color: "#228B22",
|
|
105
|
-
opacity: 0.6
|
|
106
|
-
}, `grass-${i}`))
|
|
107
|
-
})]
|
|
74
|
+
}, `cloud-${index}`))]
|
|
108
75
|
}), children]
|
|
109
76
|
});
|
|
110
77
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","Dimensions","Canvas","LinearGradient","Rect","Circle","vec","Group","
|
|
1
|
+
{"version":3,"names":["React","View","Dimensions","Canvas","LinearGradient","Rect","Circle","vec","Group","FLAPPY_BIRD_COLORS","jsx","_jsx","jsxs","_jsxs","width","height","get","cloudPositions","x","y","scale","GameBackground","memo","children","offset","bottomWallHeight","skyEndY","style","flex","position","start","end","colors","SKY_START","SKY_END","map","cloud","index","cx","cy","r","color","displayName"],"sourceRoot":"../../../../../src","sources":["games/flappy-bird/components/GameBackground.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,71 +8,24 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
8
8
|
const {
|
|
9
9
|
width
|
|
10
10
|
} = Dimensions.get('window');
|
|
11
|
-
//
|
|
11
|
+
// Constants for brick wall
|
|
12
12
|
const brickWallHeight = 150;
|
|
13
13
|
const brickWidth = 40;
|
|
14
14
|
const brickHeight = 20;
|
|
15
|
-
const
|
|
15
|
+
const actualScreenHeight = FLAPPY_BIRD_GAME_CONFIG.GAME_HEIGHT; // Full screen height
|
|
16
16
|
|
|
17
|
-
// Create brick patterns once
|
|
18
|
-
const topBrickElements = React.useMemo(() => {
|
|
19
|
-
const elements = [];
|
|
20
|
-
const cols = Math.ceil(width / brickWidth) + 1;
|
|
21
|
-
const rows = Math.ceil(brickWallHeight / brickHeight);
|
|
22
|
-
for (let col = 0; col < cols; col++) {
|
|
23
|
-
for (let row = 0; row < rows; row++) {
|
|
24
|
-
const xOffset = row % 2 === 0 ? 0 : brickWidth / 2;
|
|
25
|
-
elements.push(/*#__PURE__*/_jsxs(React.Fragment, {
|
|
26
|
-
children: [/*#__PURE__*/_jsx(Rect, {
|
|
27
|
-
x: col * brickWidth - xOffset,
|
|
28
|
-
y: row * brickHeight,
|
|
29
|
-
width: brickWidth - 2,
|
|
30
|
-
height: 2,
|
|
31
|
-
color: "rgba(0,0,0,0.3)"
|
|
32
|
-
}), /*#__PURE__*/_jsx(Rect, {
|
|
33
|
-
x: col * brickWidth - xOffset,
|
|
34
|
-
y: row * brickHeight,
|
|
35
|
-
width: 2,
|
|
36
|
-
height: brickHeight - 2,
|
|
37
|
-
color: "rgba(0,0,0,0.3)"
|
|
38
|
-
})]
|
|
39
|
-
}, `top-brick-${col}-${row}`));
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
return elements;
|
|
43
|
-
}, []);
|
|
44
|
-
const bottomBrickElements = React.useMemo(() => {
|
|
45
|
-
const elements = [];
|
|
46
|
-
const cols = Math.ceil(width / brickWidth) + 1;
|
|
47
|
-
const rows = Math.ceil(brickWallHeight / brickHeight);
|
|
48
|
-
for (let col = 0; col < cols; col++) {
|
|
49
|
-
for (let row = 0; row < rows; row++) {
|
|
50
|
-
const xOffset = row % 2 === 0 ? 0 : brickWidth / 2;
|
|
51
|
-
elements.push(/*#__PURE__*/_jsxs(React.Fragment, {
|
|
52
|
-
children: [/*#__PURE__*/_jsx(Rect, {
|
|
53
|
-
x: col * brickWidth - xOffset,
|
|
54
|
-
y: gameHeight - brickWallHeight + row * brickHeight,
|
|
55
|
-
width: brickWidth - 2,
|
|
56
|
-
height: 2,
|
|
57
|
-
color: "rgba(0,0,0,0.3)"
|
|
58
|
-
}), /*#__PURE__*/_jsx(Rect, {
|
|
59
|
-
x: col * brickWidth - xOffset,
|
|
60
|
-
y: gameHeight - brickWallHeight + row * brickHeight,
|
|
61
|
-
width: 2,
|
|
62
|
-
height: brickHeight - 2,
|
|
63
|
-
color: "rgba(0,0,0,0.3)"
|
|
64
|
-
})]
|
|
65
|
-
}, `bottom-brick-${col}-${row}`));
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
return elements;
|
|
69
|
-
}, []);
|
|
70
17
|
export const Pipes = /*#__PURE__*/React.memo(({
|
|
71
|
-
pipes
|
|
18
|
+
pipes,
|
|
19
|
+
offset = 0
|
|
72
20
|
}) => {
|
|
73
21
|
const {
|
|
74
22
|
PIPE_WIDTH
|
|
75
23
|
} = FLAPPY_BIRD_GAME_CONFIG;
|
|
24
|
+
|
|
25
|
+
// Increase top wall height by offset
|
|
26
|
+
const adjustedTopWallHeight = brickWallHeight + offset;
|
|
27
|
+
// Dynamic bottom wall height based on offset
|
|
28
|
+
const bottomWallHeight = offset > 0 ? 150 : 250;
|
|
76
29
|
return /*#__PURE__*/_jsx(View, {
|
|
77
30
|
style: StyleSheet.absoluteFill,
|
|
78
31
|
pointerEvents: "none",
|
|
@@ -84,28 +37,72 @@ export const Pipes = /*#__PURE__*/React.memo(({
|
|
|
84
37
|
x: 0,
|
|
85
38
|
y: 0,
|
|
86
39
|
width: width,
|
|
87
|
-
height:
|
|
40
|
+
height: adjustedTopWallHeight,
|
|
88
41
|
children: /*#__PURE__*/_jsx(LinearGradient, {
|
|
89
42
|
start: vec(0, 0),
|
|
90
|
-
end: vec(0,
|
|
43
|
+
end: vec(0, adjustedTopWallHeight),
|
|
91
44
|
colors: ['#8B4513', '#A0522D', '#8B4513']
|
|
92
45
|
})
|
|
93
|
-
}),
|
|
46
|
+
}), Array.from({
|
|
47
|
+
length: Math.ceil(width / brickWidth) + 1
|
|
48
|
+
}).map((_, col) => Array.from({
|
|
49
|
+
length: Math.ceil(adjustedTopWallHeight / brickHeight)
|
|
50
|
+
}).map((_, row) => {
|
|
51
|
+
const xOffset = row % 2 === 0 ? 0 : brickWidth / 2;
|
|
52
|
+
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
53
|
+
children: [/*#__PURE__*/_jsx(Rect, {
|
|
54
|
+
x: col * brickWidth - xOffset,
|
|
55
|
+
y: row * brickHeight,
|
|
56
|
+
width: brickWidth - 2,
|
|
57
|
+
height: 2,
|
|
58
|
+
color: "rgba(0,0,0,0.3)"
|
|
59
|
+
}), /*#__PURE__*/_jsx(Rect, {
|
|
60
|
+
x: col * brickWidth - xOffset,
|
|
61
|
+
y: row * brickHeight,
|
|
62
|
+
width: 2,
|
|
63
|
+
height: brickHeight - 2,
|
|
64
|
+
color: "rgba(0,0,0,0.3)"
|
|
65
|
+
})]
|
|
66
|
+
}, `top-brick-${col}-${row}`);
|
|
67
|
+
})), /*#__PURE__*/_jsx(Rect, {
|
|
94
68
|
x: 0,
|
|
95
|
-
y:
|
|
69
|
+
y: actualScreenHeight - bottomWallHeight,
|
|
96
70
|
width: width,
|
|
97
|
-
height:
|
|
71
|
+
height: bottomWallHeight,
|
|
98
72
|
children: /*#__PURE__*/_jsx(LinearGradient, {
|
|
99
|
-
start: vec(0,
|
|
100
|
-
end: vec(0,
|
|
73
|
+
start: vec(0, actualScreenHeight - bottomWallHeight),
|
|
74
|
+
end: vec(0, actualScreenHeight),
|
|
101
75
|
colors: ['#8B4513', '#A0522D', '#8B4513']
|
|
102
76
|
})
|
|
103
|
-
}),
|
|
77
|
+
}), Array.from({
|
|
78
|
+
length: Math.ceil(width / brickWidth) + 1
|
|
79
|
+
}).map((_, col) => Array.from({
|
|
80
|
+
length: Math.ceil(bottomWallHeight / brickHeight)
|
|
81
|
+
}).map((_, row) => {
|
|
82
|
+
const xOffset = row % 2 === 0 ? 0 : brickWidth / 2;
|
|
83
|
+
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
84
|
+
children: [/*#__PURE__*/_jsx(Rect, {
|
|
85
|
+
x: col * brickWidth - xOffset,
|
|
86
|
+
y: actualScreenHeight - bottomWallHeight + row * brickHeight,
|
|
87
|
+
width: brickWidth - 2,
|
|
88
|
+
height: 2,
|
|
89
|
+
color: "rgba(0,0,0,0.3)"
|
|
90
|
+
}), /*#__PURE__*/_jsx(Rect, {
|
|
91
|
+
x: col * brickWidth - xOffset,
|
|
92
|
+
y: actualScreenHeight - bottomWallHeight + row * brickHeight,
|
|
93
|
+
width: 2,
|
|
94
|
+
height: brickHeight - 2,
|
|
95
|
+
color: "rgba(0,0,0,0.3)"
|
|
96
|
+
})]
|
|
97
|
+
}, `bottom-brick-${col}-${row}`);
|
|
98
|
+
})), pipes.map(pipe => {
|
|
104
99
|
// Ensure pipes stay within the playable area (between walls)
|
|
105
|
-
|
|
106
|
-
const
|
|
107
|
-
const
|
|
108
|
-
const
|
|
100
|
+
// Pipes are already generated with offset, so don't add it again
|
|
101
|
+
const topPipeStart = adjustedTopWallHeight;
|
|
102
|
+
const bottomWallTop = actualScreenHeight - bottomWallHeight; // Dynamic bottom wall
|
|
103
|
+
const topPipeEnd = Math.max(topPipeStart, Math.min(pipe.topHeight, bottomWallTop));
|
|
104
|
+
const bottomPipeStart = Math.max(topPipeStart, Math.min(pipe.bottomY, bottomWallTop));
|
|
105
|
+
const bottomPipeEnd = bottomWallTop;
|
|
109
106
|
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
110
107
|
children: [topPipeEnd > topPipeStart && /*#__PURE__*/_jsxs(_Fragment, {
|
|
111
108
|
children: [/*#__PURE__*/_jsx(RoundedRect, {
|