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.
Files changed (334) hide show
  1. package/README.md +135 -176
  2. package/lib/module/games/balloon-blaster/BalloonBlaster.js +9 -14
  3. package/lib/module/games/balloon-blaster/BalloonBlaster.js.map +1 -1
  4. package/lib/module/games/balloon-blaster/BalloonBlasterStore.js +1 -1
  5. package/lib/module/games/balloon-blaster/components/GameArea.js +1 -1
  6. package/lib/module/games/balloon-blaster/components/GameArea.js.map +1 -1
  7. package/lib/module/games/balloon-blaster/components/GameBackground.js +24 -17
  8. package/lib/module/games/balloon-blaster/components/GameBackground.js.map +1 -1
  9. package/lib/module/games/balloon-blaster/components/ScoreBoard.js +47 -47
  10. package/lib/module/games/balloon-blaster/components/ScoreBoard.js.map +1 -1
  11. package/lib/module/games/candy-crush/CandyCrush.js +16 -6
  12. package/lib/module/games/candy-crush/CandyCrush.js.map +1 -1
  13. package/lib/module/games/candy-crush/CandyCrushStore.js +4 -6
  14. package/lib/module/games/candy-crush/CandyCrushStore.js.map +1 -1
  15. package/lib/module/games/candy-crush/components/ScoreBoard.js +32 -65
  16. package/lib/module/games/candy-crush/components/ScoreBoard.js.map +1 -1
  17. package/lib/module/games/{color-sort/ColorSort.js → colors-sort/ColorsSort.js} +37 -24
  18. package/lib/module/games/colors-sort/ColorsSort.js.map +1 -0
  19. package/lib/module/games/{color-sort/ColorSortConstants.js → colors-sort/ColorsSortConstants.js} +11 -7
  20. package/lib/module/games/colors-sort/ColorsSortConstants.js.map +1 -0
  21. package/lib/module/games/{color-sort/ColorSortService.js → colors-sort/ColorsSortService.js} +1 -1
  22. package/lib/module/games/colors-sort/ColorsSortService.js.map +1 -0
  23. package/lib/module/games/{color-sort/ColorSortStore.js → colors-sort/ColorsSortStore.js} +20 -21
  24. package/lib/module/games/colors-sort/ColorsSortStore.js.map +1 -0
  25. package/lib/module/games/{color-sort → colors-sort}/components/ColorContainer.js +4 -4
  26. package/lib/module/games/colors-sort/components/ColorContainer.js.map +1 -0
  27. package/lib/module/games/{color-sort → colors-sort}/components/GameBackground.js +1 -1
  28. package/lib/module/games/colors-sort/components/GameBackground.js.map +1 -0
  29. package/lib/module/games/{color-sort → colors-sort}/components/ScoreBoard.js +14 -22
  30. package/lib/module/games/colors-sort/components/ScoreBoard.js.map +1 -0
  31. package/lib/module/games/colors-sort/components/index.js.map +1 -0
  32. package/lib/module/games/dino-jump/DinoJump.js +23 -23
  33. package/lib/module/games/dino-jump/DinoJump.js.map +1 -1
  34. package/lib/module/games/dino-jump/DinoJumpConstants.js +16 -6
  35. package/lib/module/games/dino-jump/DinoJumpConstants.js.map +1 -1
  36. package/lib/module/games/dino-jump/DinoJumpService.js +14 -12
  37. package/lib/module/games/dino-jump/DinoJumpService.js.map +1 -1
  38. package/lib/module/games/dino-jump/DinoJumpStore.js +14 -20
  39. package/lib/module/games/dino-jump/DinoJumpStore.js.map +1 -1
  40. package/lib/module/games/dino-jump/components/DinoSprite.js +15 -6
  41. package/lib/module/games/dino-jump/components/DinoSprite.js.map +1 -1
  42. package/lib/module/games/dino-jump/components/GameBackground.js +65 -42
  43. package/lib/module/games/dino-jump/components/GameBackground.js.map +1 -1
  44. package/lib/module/games/dino-jump/components/ScoreBoard.js +48 -50
  45. package/lib/module/games/dino-jump/components/ScoreBoard.js.map +1 -1
  46. package/lib/module/games/flappy-bird/FlappyBird.js +9 -14
  47. package/lib/module/games/flappy-bird/FlappyBird.js.map +1 -1
  48. package/lib/module/games/flappy-bird/FlappyBirdConstants.js +1 -1
  49. package/lib/module/games/flappy-bird/FlappyBirdStore.js +53 -29
  50. package/lib/module/games/flappy-bird/FlappyBirdStore.js.map +1 -1
  51. package/lib/module/games/flappy-bird/components/GameArea.js +3 -2
  52. package/lib/module/games/flappy-bird/components/GameArea.js.map +1 -1
  53. package/lib/module/games/flappy-bird/components/GameBackground.js +10 -43
  54. package/lib/module/games/flappy-bird/components/GameBackground.js.map +1 -1
  55. package/lib/module/games/flappy-bird/components/Pipes.js +65 -68
  56. package/lib/module/games/flappy-bird/components/Pipes.js.map +1 -1
  57. package/lib/module/games/flappy-bird/components/ScoreBoard.js +23 -22
  58. package/lib/module/games/flappy-bird/components/ScoreBoard.js.map +1 -1
  59. package/lib/module/games/fruit-merger/FruitMerger.js +13 -5
  60. package/lib/module/games/fruit-merger/FruitMerger.js.map +1 -1
  61. package/lib/module/games/fruit-merger/FruitMergerConstants.js +4 -4
  62. package/lib/module/games/fruit-merger/FruitMergerStore.js +5 -8
  63. package/lib/module/games/fruit-merger/FruitMergerStore.js.map +1 -1
  64. package/lib/module/games/fruit-merger/components/GameArea.js +5 -25
  65. package/lib/module/games/fruit-merger/components/GameArea.js.map +1 -1
  66. package/lib/module/games/fruit-merger/components/GameBackground.js +40 -19
  67. package/lib/module/games/fruit-merger/components/GameBackground.js.map +1 -1
  68. package/lib/module/games/fruit-merger/components/ScoreBoard.js +9 -17
  69. package/lib/module/games/fruit-merger/components/ScoreBoard.js.map +1 -1
  70. package/lib/module/games/fruit-ninja/FruitNinja.js +9 -14
  71. package/lib/module/games/fruit-ninja/FruitNinja.js.map +1 -1
  72. package/lib/module/games/fruit-ninja/FruitNinjaStore.js +1 -1
  73. package/lib/module/games/fruit-ninja/components/GameArea.js +1 -1
  74. package/lib/module/games/fruit-ninja/components/GameArea.js.map +1 -1
  75. package/lib/module/games/fruit-ninja/components/GameBackground.js +70 -45
  76. package/lib/module/games/fruit-ninja/components/GameBackground.js.map +1 -1
  77. package/lib/module/games/fruit-ninja/components/ScoreBoard.js +47 -46
  78. package/lib/module/games/fruit-ninja/components/ScoreBoard.js.map +1 -1
  79. package/lib/module/games/game-2048/Game2048.js +81 -52
  80. package/lib/module/games/game-2048/Game2048.js.map +1 -1
  81. package/lib/module/games/game-2048/Game2048Constants.js +18 -18
  82. package/lib/module/games/game-2048/Game2048Constants.js.map +1 -1
  83. package/lib/module/games/game-2048/Game2048Store.js +10 -12
  84. package/lib/module/games/game-2048/Game2048Store.js.map +1 -1
  85. package/lib/module/games/game-2048/components/ScoreBoard.js +25 -43
  86. package/lib/module/games/game-2048/components/ScoreBoard.js.map +1 -1
  87. package/lib/module/games/maze-runner/MazeRunner.js +22 -14
  88. package/lib/module/games/maze-runner/MazeRunner.js.map +1 -1
  89. package/lib/module/games/maze-runner/MazeRunnerService.js +19 -17
  90. package/lib/module/games/maze-runner/MazeRunnerService.js.map +1 -1
  91. package/lib/module/games/maze-runner/components/ScoreBoard.js +32 -42
  92. package/lib/module/games/maze-runner/components/ScoreBoard.js.map +1 -1
  93. package/lib/module/games/popit-fidget/PopitFidget.js +27 -38
  94. package/lib/module/games/popit-fidget/PopitFidget.js.map +1 -1
  95. package/lib/module/games/popit-fidget/PopitFidgetStore.js +6 -44
  96. package/lib/module/games/popit-fidget/PopitFidgetStore.js.map +1 -1
  97. package/lib/module/games/popit-fidget/components/ScoreBoard.js +31 -45
  98. package/lib/module/games/popit-fidget/components/ScoreBoard.js.map +1 -1
  99. package/lib/module/games/sliding-numbers/SlidingNumbers.js +18 -20
  100. package/lib/module/games/sliding-numbers/SlidingNumbers.js.map +1 -1
  101. package/lib/module/games/sliding-numbers/SlidingNumbersStore.js +4 -5
  102. package/lib/module/games/sliding-numbers/SlidingNumbersStore.js.map +1 -1
  103. package/lib/module/games/sliding-numbers/components/ScoreBoard.js +26 -28
  104. package/lib/module/games/sliding-numbers/components/ScoreBoard.js.map +1 -1
  105. package/lib/module/games/snake/Snake.js +23 -26
  106. package/lib/module/games/snake/Snake.js.map +1 -1
  107. package/lib/module/games/snake/SnakeConstants.js +2 -2
  108. package/lib/module/games/snake/SnakeStore.js +4 -6
  109. package/lib/module/games/snake/SnakeStore.js.map +1 -1
  110. package/lib/module/games/snake/components/ScoreBoard.js +10 -16
  111. package/lib/module/games/snake/components/ScoreBoard.js.map +1 -1
  112. package/lib/module/games/space-fighter/SpaceFighter.js +16 -17
  113. package/lib/module/games/space-fighter/SpaceFighter.js.map +1 -1
  114. package/lib/module/games/space-fighter/SpaceFighterService.js +7 -6
  115. package/lib/module/games/space-fighter/SpaceFighterService.js.map +1 -1
  116. package/lib/module/games/space-fighter/SpaceFighterStore.js +25 -11
  117. package/lib/module/games/space-fighter/SpaceFighterStore.js.map +1 -1
  118. package/lib/module/games/space-fighter/components/GameArea.js +1 -7
  119. package/lib/module/games/space-fighter/components/GameArea.js.map +1 -1
  120. package/lib/module/games/space-fighter/components/ScoreBoard.js +47 -48
  121. package/lib/module/games/space-fighter/components/ScoreBoard.js.map +1 -1
  122. package/lib/module/games/whack-a-mole/WhackAMole.js +12 -5
  123. package/lib/module/games/whack-a-mole/WhackAMole.js.map +1 -1
  124. package/lib/module/games/whack-a-mole/WhackAMoleStore.js +1 -1
  125. package/lib/module/games/whack-a-mole/components/GameBackground.js +37 -30
  126. package/lib/module/games/whack-a-mole/components/GameBackground.js.map +1 -1
  127. package/lib/module/games/whack-a-mole/components/ScoreBoard.js +32 -38
  128. package/lib/module/games/whack-a-mole/components/ScoreBoard.js.map +1 -1
  129. package/lib/module/helpers/AnimationFrame.js.map +1 -0
  130. package/lib/module/helpers/AnimationTracker.js.map +1 -0
  131. package/lib/module/helpers/ErrorHandler.js.map +1 -0
  132. package/lib/module/helpers/GameControlButton.js.map +1 -0
  133. package/lib/module/helpers/GameOverModal.js.map +1 -0
  134. package/lib/module/{shared/helpers → helpers}/GameSettingsModal.js +2 -2
  135. package/lib/module/helpers/GameSettingsModal.js.map +1 -0
  136. package/lib/module/helpers/ParticleBlast.js.map +1 -0
  137. package/lib/module/helpers/ScoreBoardContainer.js +34 -0
  138. package/lib/module/helpers/ScoreBoardContainer.js.map +1 -0
  139. package/lib/module/{shared/helpers → helpers}/index.js +1 -1
  140. package/lib/module/helpers/index.js.map +1 -0
  141. package/lib/module/index.js +2 -1
  142. package/lib/module/index.js.map +1 -1
  143. package/lib/module/services/GamesConstants.js +49 -10
  144. package/lib/module/services/GamesConstants.js.map +1 -1
  145. package/lib/module/services/GamesService.js +108 -82
  146. package/lib/module/services/GamesService.js.map +1 -1
  147. package/lib/module/services/SoundsService.js +1 -1
  148. package/lib/module/services/SoundsService.js.map +1 -1
  149. package/lib/module/services/UtilsService.js +32 -0
  150. package/lib/module/services/UtilsService.js.map +1 -0
  151. package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts +1 -1
  152. package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts.map +1 -1
  153. package/lib/typescript/src/games/balloon-blaster/components/GameBackground.d.ts +1 -0
  154. package/lib/typescript/src/games/balloon-blaster/components/GameBackground.d.ts.map +1 -1
  155. package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts +5 -1
  156. package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts.map +1 -1
  157. package/lib/typescript/src/games/candy-crush/CandyCrush.d.ts +1 -1
  158. package/lib/typescript/src/games/candy-crush/CandyCrush.d.ts.map +1 -1
  159. package/lib/typescript/src/games/candy-crush/CandyCrushStore.d.ts.map +1 -1
  160. package/lib/typescript/src/games/candy-crush/components/ScoreBoard.d.ts +4 -1
  161. package/lib/typescript/src/games/candy-crush/components/ScoreBoard.d.ts.map +1 -1
  162. package/lib/typescript/src/games/colors-sort/ColorsSort.d.ts +4 -0
  163. package/lib/typescript/src/games/colors-sort/ColorsSort.d.ts.map +1 -0
  164. package/lib/typescript/src/games/{color-sort/ColorSortConstants.d.ts → colors-sort/ColorsSortConstants.d.ts} +8 -6
  165. package/lib/typescript/src/games/colors-sort/ColorsSortConstants.d.ts.map +1 -0
  166. package/lib/typescript/src/games/{color-sort/ColorSortService.d.ts → colors-sort/ColorsSortService.d.ts} +1 -1
  167. package/lib/typescript/src/games/colors-sort/ColorsSortService.d.ts.map +1 -0
  168. package/lib/typescript/src/games/{color-sort/ColorSortStore.d.ts → colors-sort/ColorsSortStore.d.ts} +6 -6
  169. package/lib/typescript/src/games/colors-sort/ColorsSortStore.d.ts.map +1 -0
  170. package/lib/typescript/src/games/{color-sort → colors-sort}/components/ColorContainer.d.ts +1 -1
  171. package/lib/typescript/src/games/colors-sort/components/ColorContainer.d.ts.map +1 -0
  172. package/lib/typescript/src/games/colors-sort/components/GameBackground.d.ts.map +1 -0
  173. package/lib/typescript/src/games/colors-sort/components/ScoreBoard.d.ts +7 -0
  174. package/lib/typescript/src/games/colors-sort/components/ScoreBoard.d.ts.map +1 -0
  175. package/lib/typescript/src/games/colors-sort/components/index.d.ts.map +1 -0
  176. package/lib/typescript/src/games/dino-jump/DinoJump.d.ts +1 -1
  177. package/lib/typescript/src/games/dino-jump/DinoJump.d.ts.map +1 -1
  178. package/lib/typescript/src/games/dino-jump/DinoJumpConstants.d.ts +6 -4
  179. package/lib/typescript/src/games/dino-jump/DinoJumpConstants.d.ts.map +1 -1
  180. package/lib/typescript/src/games/dino-jump/DinoJumpService.d.ts +4 -4
  181. package/lib/typescript/src/games/dino-jump/DinoJumpService.d.ts.map +1 -1
  182. package/lib/typescript/src/games/dino-jump/DinoJumpStore.d.ts +3 -3
  183. package/lib/typescript/src/games/dino-jump/DinoJumpStore.d.ts.map +1 -1
  184. package/lib/typescript/src/games/dino-jump/components/DinoSprite.d.ts.map +1 -1
  185. package/lib/typescript/src/games/dino-jump/components/GameArea.d.ts +1 -1
  186. package/lib/typescript/src/games/dino-jump/components/GameBackground.d.ts +1 -0
  187. package/lib/typescript/src/games/dino-jump/components/GameBackground.d.ts.map +1 -1
  188. package/lib/typescript/src/games/dino-jump/components/ScoreBoard.d.ts +5 -1
  189. package/lib/typescript/src/games/dino-jump/components/ScoreBoard.d.ts.map +1 -1
  190. package/lib/typescript/src/games/flappy-bird/FlappyBird.d.ts +1 -1
  191. package/lib/typescript/src/games/flappy-bird/FlappyBird.d.ts.map +1 -1
  192. package/lib/typescript/src/games/flappy-bird/FlappyBirdStore.d.ts +1 -1
  193. package/lib/typescript/src/games/flappy-bird/FlappyBirdStore.d.ts.map +1 -1
  194. package/lib/typescript/src/games/flappy-bird/components/GameArea.d.ts +1 -1
  195. package/lib/typescript/src/games/flappy-bird/components/GameBackground.d.ts +1 -0
  196. package/lib/typescript/src/games/flappy-bird/components/GameBackground.d.ts.map +1 -1
  197. package/lib/typescript/src/games/flappy-bird/components/Pipes.d.ts +1 -0
  198. package/lib/typescript/src/games/flappy-bird/components/Pipes.d.ts.map +1 -1
  199. package/lib/typescript/src/games/flappy-bird/components/ScoreBoard.d.ts +5 -1
  200. package/lib/typescript/src/games/flappy-bird/components/ScoreBoard.d.ts.map +1 -1
  201. package/lib/typescript/src/games/fruit-merger/FruitMerger.d.ts +1 -1
  202. package/lib/typescript/src/games/fruit-merger/FruitMerger.d.ts.map +1 -1
  203. package/lib/typescript/src/games/fruit-merger/FruitMergerStore.d.ts +1 -1
  204. package/lib/typescript/src/games/fruit-merger/FruitMergerStore.d.ts.map +1 -1
  205. package/lib/typescript/src/games/fruit-merger/components/GameArea.d.ts +1 -1
  206. package/lib/typescript/src/games/fruit-merger/components/GameArea.d.ts.map +1 -1
  207. package/lib/typescript/src/games/fruit-merger/components/GameBackground.d.ts +1 -0
  208. package/lib/typescript/src/games/fruit-merger/components/GameBackground.d.ts.map +1 -1
  209. package/lib/typescript/src/games/fruit-merger/components/ScoreBoard.d.ts +5 -1
  210. package/lib/typescript/src/games/fruit-merger/components/ScoreBoard.d.ts.map +1 -1
  211. package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts +1 -1
  212. package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts.map +1 -1
  213. package/lib/typescript/src/games/fruit-ninja/components/GameBackground.d.ts +1 -0
  214. package/lib/typescript/src/games/fruit-ninja/components/GameBackground.d.ts.map +1 -1
  215. package/lib/typescript/src/games/fruit-ninja/components/ScoreBoard.d.ts +5 -1
  216. package/lib/typescript/src/games/fruit-ninja/components/ScoreBoard.d.ts.map +1 -1
  217. package/lib/typescript/src/games/game-2048/Game2048.d.ts +1 -1
  218. package/lib/typescript/src/games/game-2048/Game2048.d.ts.map +1 -1
  219. package/lib/typescript/src/games/game-2048/Game2048Store.d.ts +3 -3
  220. package/lib/typescript/src/games/game-2048/Game2048Store.d.ts.map +1 -1
  221. package/lib/typescript/src/games/game-2048/components/ScoreBoard.d.ts +5 -1
  222. package/lib/typescript/src/games/game-2048/components/ScoreBoard.d.ts.map +1 -1
  223. package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts +1 -1
  224. package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts.map +1 -1
  225. package/lib/typescript/src/games/maze-runner/MazeRunnerService.d.ts +1 -0
  226. package/lib/typescript/src/games/maze-runner/MazeRunnerService.d.ts.map +1 -1
  227. package/lib/typescript/src/games/maze-runner/components/ScoreBoard.d.ts +1 -0
  228. package/lib/typescript/src/games/maze-runner/components/ScoreBoard.d.ts.map +1 -1
  229. package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts +1 -1
  230. package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts.map +1 -1
  231. package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts +2 -5
  232. package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts.map +1 -1
  233. package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts +2 -2
  234. package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts.map +1 -1
  235. package/lib/typescript/src/games/sliding-numbers/SlidingNumbers.d.ts +1 -1
  236. package/lib/typescript/src/games/sliding-numbers/SlidingNumbers.d.ts.map +1 -1
  237. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersStore.d.ts.map +1 -1
  238. package/lib/typescript/src/games/sliding-numbers/components/ScoreBoard.d.ts +5 -1
  239. package/lib/typescript/src/games/sliding-numbers/components/ScoreBoard.d.ts.map +1 -1
  240. package/lib/typescript/src/games/snake/Snake.d.ts +1 -1
  241. package/lib/typescript/src/games/snake/Snake.d.ts.map +1 -1
  242. package/lib/typescript/src/games/snake/SnakeConstants.d.ts +2 -2
  243. package/lib/typescript/src/games/snake/SnakeStore.d.ts.map +1 -1
  244. package/lib/typescript/src/games/snake/components/ScoreBoard.d.ts +5 -1
  245. package/lib/typescript/src/games/snake/components/ScoreBoard.d.ts.map +1 -1
  246. package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts +1 -1
  247. package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts.map +1 -1
  248. package/lib/typescript/src/games/space-fighter/SpaceFighterService.d.ts.map +1 -1
  249. package/lib/typescript/src/games/space-fighter/SpaceFighterStore.d.ts +2 -0
  250. package/lib/typescript/src/games/space-fighter/SpaceFighterStore.d.ts.map +1 -1
  251. package/lib/typescript/src/games/space-fighter/components/GameArea.d.ts.map +1 -1
  252. package/lib/typescript/src/games/space-fighter/components/ScoreBoard.d.ts +5 -1
  253. package/lib/typescript/src/games/space-fighter/components/ScoreBoard.d.ts.map +1 -1
  254. package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts +1 -1
  255. package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts.map +1 -1
  256. package/lib/typescript/src/games/whack-a-mole/components/GameBackground.d.ts +1 -0
  257. package/lib/typescript/src/games/whack-a-mole/components/GameBackground.d.ts.map +1 -1
  258. package/lib/typescript/src/games/whack-a-mole/components/ScoreBoard.d.ts +1 -0
  259. package/lib/typescript/src/games/whack-a-mole/components/ScoreBoard.d.ts.map +1 -1
  260. package/lib/typescript/src/helpers/AnimationFrame.d.ts.map +1 -0
  261. package/lib/typescript/src/helpers/AnimationTracker.d.ts.map +1 -0
  262. package/lib/typescript/src/helpers/ErrorHandler.d.ts.map +1 -0
  263. package/lib/typescript/src/helpers/GameControlButton.d.ts.map +1 -0
  264. package/lib/typescript/src/helpers/GameOverModal.d.ts.map +1 -0
  265. package/lib/typescript/src/{shared/helpers → helpers}/GameSettingsModal.d.ts +1 -1
  266. package/lib/typescript/src/helpers/GameSettingsModal.d.ts.map +1 -0
  267. package/lib/typescript/src/helpers/ParticleBlast.d.ts.map +1 -0
  268. package/lib/typescript/src/helpers/ScoreBoardContainer.d.ts +9 -0
  269. package/lib/typescript/src/helpers/ScoreBoardContainer.d.ts.map +1 -0
  270. package/lib/typescript/src/{shared/helpers → helpers}/index.d.ts +2 -1
  271. package/lib/typescript/src/helpers/index.d.ts.map +1 -0
  272. package/lib/typescript/src/index.d.ts +2 -1
  273. package/lib/typescript/src/index.d.ts.map +1 -1
  274. package/lib/typescript/src/services/GamesConstants.d.ts +8 -2
  275. package/lib/typescript/src/services/GamesConstants.d.ts.map +1 -1
  276. package/lib/typescript/src/services/GamesService.d.ts +3 -33
  277. package/lib/typescript/src/services/GamesService.d.ts.map +1 -1
  278. package/lib/typescript/src/services/SoundsService.d.ts +1 -1
  279. package/lib/typescript/src/services/UtilsService.d.ts +38 -0
  280. package/lib/typescript/src/services/UtilsService.d.ts.map +1 -0
  281. package/package.json +1 -1
  282. package/lib/module/games/color-sort/ColorSort.js.map +0 -1
  283. package/lib/module/games/color-sort/ColorSortConstants.js.map +0 -1
  284. package/lib/module/games/color-sort/ColorSortService.js.map +0 -1
  285. package/lib/module/games/color-sort/ColorSortStore.js.map +0 -1
  286. package/lib/module/games/color-sort/components/ColorContainer.js.map +0 -1
  287. package/lib/module/games/color-sort/components/GameBackground.js.map +0 -1
  288. package/lib/module/games/color-sort/components/ScoreBoard.js.map +0 -1
  289. package/lib/module/games/color-sort/components/index.js.map +0 -1
  290. package/lib/module/shared/helpers/AnimationFrame.js.map +0 -1
  291. package/lib/module/shared/helpers/AnimationTracker.js.map +0 -1
  292. package/lib/module/shared/helpers/ErrorHandler.js.map +0 -1
  293. package/lib/module/shared/helpers/GameControlButton.js.map +0 -1
  294. package/lib/module/shared/helpers/GameOverModal.js.map +0 -1
  295. package/lib/module/shared/helpers/GameSettingsModal.js.map +0 -1
  296. package/lib/module/shared/helpers/ParticleBlast.js.map +0 -1
  297. package/lib/module/shared/helpers/ResponsiveScoreBoard.js +0 -81
  298. package/lib/module/shared/helpers/ResponsiveScoreBoard.js.map +0 -1
  299. package/lib/module/shared/helpers/index.js.map +0 -1
  300. package/lib/typescript/src/games/color-sort/ColorSort.d.ts +0 -4
  301. package/lib/typescript/src/games/color-sort/ColorSort.d.ts.map +0 -1
  302. package/lib/typescript/src/games/color-sort/ColorSortConstants.d.ts.map +0 -1
  303. package/lib/typescript/src/games/color-sort/ColorSortService.d.ts.map +0 -1
  304. package/lib/typescript/src/games/color-sort/ColorSortStore.d.ts.map +0 -1
  305. package/lib/typescript/src/games/color-sort/components/ColorContainer.d.ts.map +0 -1
  306. package/lib/typescript/src/games/color-sort/components/GameBackground.d.ts.map +0 -1
  307. package/lib/typescript/src/games/color-sort/components/ScoreBoard.d.ts +0 -3
  308. package/lib/typescript/src/games/color-sort/components/ScoreBoard.d.ts.map +0 -1
  309. package/lib/typescript/src/games/color-sort/components/index.d.ts.map +0 -1
  310. package/lib/typescript/src/shared/helpers/AnimationFrame.d.ts.map +0 -1
  311. package/lib/typescript/src/shared/helpers/AnimationTracker.d.ts.map +0 -1
  312. package/lib/typescript/src/shared/helpers/ErrorHandler.d.ts.map +0 -1
  313. package/lib/typescript/src/shared/helpers/GameControlButton.d.ts.map +0 -1
  314. package/lib/typescript/src/shared/helpers/GameOverModal.d.ts.map +0 -1
  315. package/lib/typescript/src/shared/helpers/GameSettingsModal.d.ts.map +0 -1
  316. package/lib/typescript/src/shared/helpers/ParticleBlast.d.ts.map +0 -1
  317. package/lib/typescript/src/shared/helpers/ResponsiveScoreBoard.d.ts +0 -42
  318. package/lib/typescript/src/shared/helpers/ResponsiveScoreBoard.d.ts.map +0 -1
  319. package/lib/typescript/src/shared/helpers/index.d.ts.map +0 -1
  320. /package/lib/module/games/{color-sort → colors-sort}/components/index.js +0 -0
  321. /package/lib/module/{shared/helpers → helpers}/AnimationFrame.js +0 -0
  322. /package/lib/module/{shared/helpers → helpers}/AnimationTracker.js +0 -0
  323. /package/lib/module/{shared/helpers → helpers}/ErrorHandler.js +0 -0
  324. /package/lib/module/{shared/helpers → helpers}/GameControlButton.js +0 -0
  325. /package/lib/module/{shared/helpers → helpers}/GameOverModal.js +0 -0
  326. /package/lib/module/{shared/helpers → helpers}/ParticleBlast.js +0 -0
  327. /package/lib/typescript/src/games/{color-sort → colors-sort}/components/GameBackground.d.ts +0 -0
  328. /package/lib/typescript/src/games/{color-sort → colors-sort}/components/index.d.ts +0 -0
  329. /package/lib/typescript/src/{shared/helpers → helpers}/AnimationFrame.d.ts +0 -0
  330. /package/lib/typescript/src/{shared/helpers → helpers}/AnimationTracker.d.ts +0 -0
  331. /package/lib/typescript/src/{shared/helpers → helpers}/ErrorHandler.d.ts +0 -0
  332. /package/lib/typescript/src/{shared/helpers → helpers}/GameControlButton.d.ts +0 -0
  333. /package/lib/typescript/src/{shared/helpers → helpers}/GameOverModal.d.ts +0 -0
  334. /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 "../../shared/helpers/index.js";
9
- import { GameSettingsModal } from "../../shared/helpers/index.js";
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/GamesService.js";
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(View, {
100
- style: styles.scoreboardContainer,
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","scoreboardContainer","create","flex","position","top","left","right","zIndex","pointerEvents","displayName"],"sourceRoot":"../../../../src","sources":["games/flappy-bird/FlappyBird.tsx"],"mappings":"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","ignoreList":[]}
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(255, 215, 0, 0.8)'
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/GamesService.js";
5
+ import { immerMiddleware } from "../../services/UtilsService.js";
6
6
  import { FLAPPY_BIRD_GAME_CONFIG, DIFFICULTY_CONFIG } from "./FlappyBirdConstants.js";
7
- const BRICK_WALL_HEIGHT = 150; // Must match Pipes.tsx
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 playableHeight = GAME_HEIGHT - GROUND_HEIGHT - BRICK_WALL_HEIGHT * 2;
16
- const minHeight = BRICK_WALL_HEIGHT + MIN_PIPE_HEIGHT;
17
- const maxHeight = BRICK_WALL_HEIGHT + playableHeight * 0.6;
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
- set(state => {
90
- state.isPlaying = false;
91
- state.isGameOver = true;
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 - brick walls are at 150px from top and bottom
167
- // Top brick wall collision
168
- if (draftState.birdY < BRICK_WALL_HEIGHT) {
169
- draftState.birdY = BRICK_WALL_HEIGHT;
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 brick wall collision
177
- if (draftState.birdY + BIRD_SIZE > GAME_HEIGHT - GROUND_HEIGHT - BRICK_WALL_HEIGHT) {
178
- draftState.birdY = GAME_HEIGHT - GROUND_HEIGHT - BRICK_WALL_HEIGHT - BIRD_SIZE;
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 = BRICK_WALL_HEIGHT + BIRD_SIZE / 2;
191
+ const blastY = topWallHeight + BIRD_SIZE / 2;
189
192
  get().addCollisionBlast(blastX, blastY);
190
- get().stopGame(); // Stop game and clear all intervals including timer
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 = GAME_HEIGHT - GROUND_HEIGHT - BRICK_WALL_HEIGHT - BIRD_SIZE / 2;
201
+ const blastY = bottomWallTop - BIRD_SIZE / 2;
195
202
  get().addCollisionBlast(blastX, blastY);
196
- get().stopGame(); // Stop game and clear all intervals including timer
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
- get().stopGame();
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 topHeight = generateRandomPipeHeight();
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":";;AAAA,SAASA,MAAM,QAAQ,SAAS;AAChC,SAASC,qBAAqB,QAAQ,oBAAoB;AAC1D,SAASC,eAAe,QAAQ,gCAA6B;AAC7D,SAASC,uBAAuB,EAAEC,iBAAiB,QAAQ,0BAAuB;AA0ClF,MAAMC,iBAAiB,GAAG,GAAG,CAAC,CAAC;;AAE/B,MAAMC,wBAAwB,GAAGA,CAAA,KAAc;EAC7C,MAAM;IAAEC,eAAe;IAAEC,WAAW;IAAEC;EAAc,CAAC,GAAGN,uBAAuB;EAC/E,MAAMO,cAAc,GAAGF,WAAW,GAAGC,aAAa,GAAIJ,iBAAiB,GAAG,CAAE;EAC5E,MAAMM,SAAS,GAAGN,iBAAiB,GAAGE,eAAe;EACrD,MAAMK,SAAS,GAAGP,iBAAiB,GAAIK,cAAc,GAAG,GAAI;EAC5D,OAAOC,SAAS,GAAGE,IAAI,CAACC,MAAM,CAAC,CAAC,IAAIF,SAAS,GAAGD,SAAS,CAAC;AAC5D,CAAC;AAED,OAAO,MAAMI,kBAAkB,GAAGf,MAAM,CAAkB,CAAC,CACzDC,qBAAqB,CACnBC,eAAe,CAAC,CAACc,GAAQ,EAAEC,GAAQ,MAAM;EACvCC,SAAS,EAAE,KAAK;EAChBC,UAAU,EAAE,KAAK;EACjBC,KAAK,EAAE,CAAC;EACRC,YAAY,EAAE,CAAC;EACfC,KAAK,EAAEnB,uBAAuB,CAACoB,YAAY;EAC3CC,YAAY,EAAE,CAAC;EACfC,KAAK,EAAE,EAAE;EACTC,eAAe,EAAE,EAAE;EACnBC,gBAAgB,EAAE,IAAI;EACtBC,iBAAiB,EAAE,IAAI;EACvBC,aAAa,EAAE,IAAI;EAEnBC,cAAc,EAAEA,CAAA,KAAM;IACpBd,GAAG,CAAEe,KAAsB,IAAK;MAC9BA,KAAK,CAACb,SAAS,GAAG,KAAK;MACvBa,KAAK,CAACZ,UAAU,GAAG,KAAK;MACxBY,KAAK,CAACX,KAAK,GAAG,CAAC;MACfW,KAAK,CAACV,YAAY,GAAG,CAAC;MACtBU,KAAK,CAACT,KAAK,GAAGnB,uBAAuB,CAACoB,YAAY;MAClDQ,KAAK,CAACP,YAAY,GAAG,CAAC;MACtBO,KAAK,CAACN,KAAK,GAAG,EAAE;MAChBM,KAAK,CAACL,eAAe,GAAG,EAAE;IAC5B,CAAC,CAAC;EACJ,CAAC;EAEDM,SAAS,EAAGC,QAAsB,IAAK;IACrC,MAAMF,KAAK,GAAGd,GAAG,CAAC,CAAC;IACnB,IAAIc,KAAK,CAACJ,gBAAgB,EAAEO,aAAa,CAACH,KAAK,CAACJ,gBAAgB,CAAC;IACjE,IAAII,KAAK,CAACH,iBAAiB,EAAEM,aAAa,CAACH,KAAK,CAACH,iBAAiB,CAAC;IACnE,IAAIG,KAAK,CAACF,aAAa,EAAEK,aAAa,CAACH,KAAK,CAACF,aAAa,CAAC;IAE3Db,GAAG,CAAEe,KAAsB,IAAK;MAC9BA,KAAK,CAACb,SAAS,GAAG,IAAI;MACtBa,KAAK,CAACZ,UAAU,GAAG,KAAK;MACxBY,KAAK,CAACT,KAAK,GAAGnB,uBAAuB,CAACoB,YAAY;MAClDQ,KAAK,CAACP,YAAY,GAAG,CAAC;MACtBO,KAAK,CAACN,KAAK,GAAG,EAAE;MAChBM,KAAK,CAACX,KAAK,GAAG,CAAC;MACfW,KAAK,CAACV,YAAY,GAAG,CAAC;IACxB,CAAC,CAAC;;IAEF;IACA,MAAMc,QAAQ,GAAGC,WAAW,CAAC,MAAM;MACjCnB,GAAG,CAAC,CAAC,CAACoB,aAAa,CAACJ,QAAQ,CAAC;IAC/B,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC;;IAEb;IACA,MAAMK,SAAS,GAAGF,WAAW,CAAC,MAAM;MAClCnB,GAAG,CAAC,CAAC,CAACsB,SAAS,CAACN,QAAQ,CAAC;IAC3B,CAAC,EAAE9B,uBAAuB,CAACqC,mBAAmB,CAAC;;IAE/C;IACA,MAAMC,KAAK,GAAGL,WAAW,CAAC,MAAM;MAC9BpB,GAAG,CAAEe,KAAsB,IAAK;QAC9BA,KAAK,CAACV,YAAY,IAAI,CAAC;MACzB,CAAC,CAAC;IACJ,CAAC,EAAE,IAAI,CAAC;IAERL,GAAG,CAAEe,KAAsB,IAAK;MAC9BA,KAAK,CAACJ,gBAAgB,GAAGQ,QAAQ;MACjCJ,KAAK,CAACH,iBAAiB,GAAGU,SAAS;MACnCP,KAAK,CAACF,aAAa,GAAGY,KAAK;IAC7B,CAAC,CAAC;;IAEF;IACAC,UAAU,CAAC,MAAMzB,GAAG,CAAC,CAAC,CAACsB,SAAS,CAACN,QAAQ,CAAC,EAAE,GAAG,CAAC;EAClD,CAAC;EAEDU,QAAQ,EAAEA,CAAA,KAAM;IACd,MAAMZ,KAAK,GAAGd,GAAG,CAAC,CAAC;IACnB,IAAIc,KAAK,CAACJ,gBAAgB,EAAEO,aAAa,CAACH,KAAK,CAACJ,gBAAgB,CAAC;IACjE,IAAII,KAAK,CAACH,iBAAiB,EAAEM,aAAa,CAACH,KAAK,CAACH,iBAAiB,CAAC;IACnE,IAAIG,KAAK,CAACF,aAAa,EAAEK,aAAa,CAACH,KAAK,CAACF,aAAa,CAAC;IAE3Db,GAAG,CAAEe,KAAsB,IAAK;MAC9BA,KAAK,CAACb,SAAS,GAAG,KAAK;MACvBa,KAAK,CAACZ,UAAU,GAAG,IAAI;MACvBY,KAAK,CAACJ,gBAAgB,GAAG,IAAI;MAC7BI,KAAK,CAACH,iBAAiB,GAAG,IAAI;MAC9BG,KAAK,CAACF,aAAa,GAAG,IAAI;IAC5B,CAAC,CAAC;EACJ,CAAC;EAEDe,SAAS,EAAEA,CAAA,KAAM;IACf,MAAMb,KAAK,GAAGd,GAAG,CAAC,CAAC;IACnB,IAAIc,KAAK,CAACJ,gBAAgB,EAAEO,aAAa,CAACH,KAAK,CAACJ,gBAAgB,CAAC;IACjE,IAAII,KAAK,CAACH,iBAAiB,EAAEM,aAAa,CAACH,KAAK,CAACH,iBAAiB,CAAC;IACnE,IAAIG,KAAK,CAACF,aAAa,EAAEK,aAAa,CAACH,KAAK,CAACF,aAAa,CAAC;IAE3Db,GAAG,CAAEe,KAAsB,IAAK;MAC9BA,KAAK,CAACb,SAAS,GAAG,KAAK;MACvBa,KAAK,CAACZ,UAAU,GAAG,KAAK;MACxBY,KAAK,CAACX,KAAK,GAAG,CAAC;MACfW,KAAK,CAACV,YAAY,GAAG,CAAC;MACtBU,KAAK,CAACT,KAAK,GAAGnB,uBAAuB,CAACoB,YAAY;MAClDQ,KAAK,CAACP,YAAY,GAAG,CAAC;MACtBO,KAAK,CAACN,KAAK,GAAG,EAAE;MAChBM,KAAK,CAACL,eAAe,GAAG,EAAE;MAC1BK,KAAK,CAACJ,gBAAgB,GAAG,IAAI;MAC7BI,KAAK,CAACH,iBAAiB,GAAG,IAAI;MAC9BG,KAAK,CAACF,aAAa,GAAG,IAAI;IAC5B,CAAC,CAAC;EACJ,CAAC;EAEDgB,IAAI,EAAEA,CAAA,KAAM;IACV,MAAMd,KAAK,GAAGd,GAAG,CAAC,CAAC;IACnB,IAAI,CAACc,KAAK,CAACb,SAAS,IAAIa,KAAK,CAACZ,UAAU,EAAE;IAE1CH,GAAG,CAAEe,KAAsB,IAAK;MAC9BA,KAAK,CAACP,YAAY,GAAGrB,uBAAuB,CAAC2C,aAAa;IAC5D,CAAC,CAAC;EACJ,CAAC;EAEDT,aAAa,EAAGJ,QAAsB,IAAK;IACzC,MAAMF,KAAK,GAAGd,GAAG,CAAC,CAAC;IACnB,IAAI,CAACc,KAAK,CAACb,SAAS,IAAIa,KAAK,CAACZ,UAAU,EAAE;IAE1C,MAAM4B,MAAM,GAAG3C,iBAAiB,CAAC6B,QAAQ,CAACe,UAAU,CAAC;IACrD,MAAM;MAAExC,WAAW;MAAEC,aAAa;MAAEwC,OAAO;MAAEC,SAAS;MAAEC,cAAc;MAAEC;IAAiB,CAAC,GAAGjD,uBAAuB;IAEpH,IAAIkD,gBAAgB,GAAG,KAAK;IAC5B,IAAIC,mBAAmB,GAAG,KAAK;IAE/BtC,GAAG,CAAEuC,UAA2B,IAAK;MACnC;MACAA,UAAU,CAAC/B,YAAY,IAAIyB,OAAO;MAClCM,UAAU,CAAC/B,YAAY,IAAI4B,gBAAgB;;MAE3C;MACA,IAAIG,UAAU,CAAC/B,YAAY,GAAG2B,cAAc,EAAE;QAC5CI,UAAU,CAAC/B,YAAY,GAAG2B,cAAc;MAC1C;MAEAI,UAAU,CAACjC,KAAK,IAAIiC,UAAU,CAAC/B,YAAY;;MAE3C;MACA,KAAK,IAAIgC,CAAC,GAAGD,UAAU,CAAC9B,KAAK,CAACgC,MAAM,GAAG,CAAC,EAAED,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;QACrD,MAAME,IAAI,GAAGH,UAAU,CAAC9B,KAAK,CAAC+B,CAAC,CAAC;QAChC,IAAI,CAACE,IAAI,EAAE;QAEXA,IAAI,CAACC,CAAC,IAAIZ,MAAM,CAACa,SAAS;;QAE1B;QACA,IAAI,CAACF,IAAI,CAACG,MAAM,IAAIH,IAAI,CAACC,CAAC,GAAGxD,uBAAuB,CAAC2D,UAAU,GAAG3D,uBAAuB,CAAC4D,YAAY,EAAE;UACtGL,IAAI,CAACG,MAAM,GAAG,IAAI;UAClBN,UAAU,CAACnC,KAAK,IAAI,CAAC;QACvB;;QAEA;QACA,IAAIsC,IAAI,CAACC,CAAC,GAAGxD,uBAAuB,CAAC2D,UAAU,GAAG,CAAC,EAAE;UACnDP,UAAU,CAAC9B,KAAK,CAACuC,MAAM,CAACR,CAAC,EAAE,CAAC,CAAC;QAC/B;MACF;;MAEA;MACA;MACA,IAAID,UAAU,CAACjC,KAAK,GAAGjB,iBAAiB,EAAE;QACxCkD,UAAU,CAACjC,KAAK,GAAGjB,iBAAiB;QACpCkD,UAAU,CAAC/B,YAAY,GAAG,CAAC;QAC3B+B,UAAU,CAACpC,UAAU,GAAG,IAAI;QAC5BoC,UAAU,CAACrC,SAAS,GAAG,KAAK;QAC5BmC,gBAAgB,GAAG,IAAI;MACzB;;MAEA;MACA,IAAIE,UAAU,CAACjC,KAAK,GAAG4B,SAAS,GAAG1C,WAAW,GAAGC,aAAa,GAAGJ,iBAAiB,EAAE;QAClFkD,UAAU,CAACjC,KAAK,GAAGd,WAAW,GAAGC,aAAa,GAAGJ,iBAAiB,GAAG6C,SAAS;QAC9EK,UAAU,CAACpC,UAAU,GAAG,IAAI;QAC5BoC,UAAU,CAACrC,SAAS,GAAG,KAAK;QAC5BoC,mBAAmB,GAAG,IAAI;MAC5B;IACF,CAAC,CAAC;;IAEF;IACA,IAAID,gBAAgB,EAAE;MACpB,MAAMY,MAAM,GAAG9D,uBAAuB,CAAC4D,YAAY,GAAGb,SAAS,GAAG,CAAC;MACnE,MAAMgB,MAAM,GAAG7D,iBAAiB,GAAG6C,SAAS,GAAG,CAAC;MAChDjC,GAAG,CAAC,CAAC,CAACkD,iBAAiB,CAACF,MAAM,EAAEC,MAAM,CAAC;MACvCjD,GAAG,CAAC,CAAC,CAAC0B,QAAQ,CAAC,CAAC,CAAC,CAAC;IACpB;IAEA,IAAIW,mBAAmB,EAAE;MACvB,MAAMW,MAAM,GAAG9D,uBAAuB,CAAC4D,YAAY,GAAGb,SAAS,GAAG,CAAC;MACnE,MAAMgB,MAAM,GAAG1D,WAAW,GAAGC,aAAa,GAAGJ,iBAAiB,GAAG6C,SAAS,GAAG,CAAC;MAC9EjC,GAAG,CAAC,CAAC,CAACkD,iBAAiB,CAACF,MAAM,EAAEC,MAAM,CAAC;MACvCjD,GAAG,CAAC,CAAC,CAAC0B,QAAQ,CAAC,CAAC,CAAC,CAAC;IACpB;;IAEA;IACA,IAAI1B,GAAG,CAAC,CAAC,CAACmD,cAAc,CAAC,CAAC,EAAE;MAC1BnD,GAAG,CAAC,CAAC,CAAC0B,QAAQ,CAAC,CAAC;IAClB;EACF,CAAC;EAEDJ,SAAS,EAAGN,QAAsB,IAAK;IACrC,MAAMF,KAAK,GAAGd,GAAG,CAAC,CAAC;IACnB,IAAI,CAACc,KAAK,CAACb,SAAS,IAAIa,KAAK,CAACZ,UAAU,EAAE;IAE1C,MAAM4B,MAAM,GAAG3C,iBAAiB,CAAC6B,QAAQ,CAACe,UAAU,CAAC;IACrD,MAAMqB,SAAS,GAAG/D,wBAAwB,CAAC,CAAC;IAC5C,MAAMgE,OAAO,GAAGD,SAAS,GAAGtB,MAAM,CAACwB,OAAO;IAE1C,MAAMb,IAAU,GAAG;MACjBc,EAAE,EAAE,QAAQC,IAAI,CAACC,GAAG,CAAC,CAAC,IAAI7D,IAAI,CAACC,MAAM,CAAC,CAAC,EAAE;MACzC6C,CAAC,EAAExD,uBAAuB,CAACwE,UAAU;MACrCN,SAAS;MACTC,OAAO;MACPT,MAAM,EAAE;IACV,CAAC;IAED7C,GAAG,CAAEe,KAAsB,IAAK;MAC9BA,KAAK,CAACN,KAAK,CAACmD,IAAI,CAAClB,IAAI,CAAC;IACxB,CAAC,CAAC;EACJ,CAAC;EAEDU,cAAc,EAAEA,CAAA,KAAe;IAC7B,MAAMrC,KAAK,GAAGd,GAAG,CAAC,CAAC;IACnB,MAAM;MAAE8C,YAAY;MAAEb,SAAS;MAAEY;IAAW,CAAC,GAAG3D,uBAAuB;IAEvE,MAAM0E,QAAQ,GAAGd,YAAY;IAC7B,MAAMe,SAAS,GAAGf,YAAY,GAAGb,SAAS;IAC1C,MAAM6B,OAAO,GAAGhD,KAAK,CAACT,KAAK;IAC3B,MAAM0D,UAAU,GAAGjD,KAAK,CAACT,KAAK,GAAG4B,SAAS;IAC1C,MAAM+B,WAAW,GAAGlB,YAAY,GAAGb,SAAS,GAAG,CAAC;IAChD,MAAMgC,WAAW,GAAGnD,KAAK,CAACT,KAAK,GAAG4B,SAAS,GAAG,CAAC;IAE/C,KAAK,MAAMQ,IAAI,IAAI3B,KAAK,CAACN,KAAK,EAAE;MAC9B,MAAM0D,QAAQ,GAAGzB,IAAI,CAACC,CAAC;MACvB,MAAMyB,SAAS,GAAG1B,IAAI,CAACC,CAAC,GAAGG,UAAU;;MAErC;MACA,IAAIgB,SAAS,GAAGK,QAAQ,IAAIN,QAAQ,GAAGO,SAAS,EAAE;QAChD;QACA,IAAIL,OAAO,GAAGrB,IAAI,CAACW,SAAS,EAAE;UAC5BpD,GAAG,CAAC,CAAC,CAACkD,iBAAiB,CAACc,WAAW,EAAEC,WAAW,CAAC;UACjD,OAAO,IAAI;QACb;QACA;QACA,IAAIF,UAAU,GAAGtB,IAAI,CAACY,OAAO,EAAE;UAC7BrD,GAAG,CAAC,CAAC,CAACkD,iBAAiB,CAACc,WAAW,EAAEC,WAAW,CAAC;UACjD,OAAO,IAAI;QACb;MACF;IACF;IAEA,OAAO,KAAK;EACd,CAAC;EAEDf,iBAAiB,EAAEA,CAACR,CAAS,EAAE0B,CAAS,KAAK;IAC3CrE,GAAG,CAAEe,KAAsB,IAAK;MAC9BA,KAAK,CAACL,eAAe,CAACkD,IAAI,CAAC;QACzBJ,EAAE,EAAE,SAASC,IAAI,CAACC,GAAG,CAAC,CAAC,IAAI7D,IAAI,CAACC,MAAM,CAAC,CAAC,EAAE;QAC1C6C,CAAC;QACD0B;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC;EAEDC,oBAAoB,EAAGd,EAAU,IAAK;IACpCxD,GAAG,CAAEe,KAAsB,IAAK;MAC9BA,KAAK,CAACL,eAAe,GAAGK,KAAK,CAACL,eAAe,CAAC6D,MAAM,CAACC,KAAK,IAAIA,KAAK,CAAChB,EAAE,KAAKA,EAAE,CAAC;IAChF,CAAC,CAAC;EACJ;AACF,CAAC,CAAC,CACJ,CACF,CAAC;AAED,OAAO,MAAMiB,YAAY,GAAGA,CAAA,KAAM1E,kBAAkB,CAACgB,KAAK,IAAIA,KAAK,CAACb,SAAS,CAAC;AAC9E,OAAO,MAAMwE,aAAa,GAAGA,CAAA,KAAM3E,kBAAkB,CAACgB,KAAK,IAAIA,KAAK,CAACZ,UAAU,CAAC;AAChF,OAAO,MAAMwE,QAAQ,GAAGA,CAAA,KAAM5E,kBAAkB,CAACgB,KAAK,IAAIA,KAAK,CAACX,KAAK,CAAC;AACtE,OAAO,MAAMwE,eAAe,GAAGA,CAAA,KAAM7E,kBAAkB,CAACgB,KAAK,IAAIA,KAAK,CAACV,YAAY,CAAC;AACpF,OAAO,MAAMwE,QAAQ,GAAGA,CAAA,KAAM9E,kBAAkB,CAACgB,KAAK,IAAIA,KAAK,CAACT,KAAK,CAAC;AACtE,OAAO,MAAMwE,QAAQ,GAAGA,CAAA,KAAM/E,kBAAkB,CAACgB,KAAK,IAAIA,KAAK,CAACN,KAAK,CAAC;AACtE,OAAO,MAAMsE,kBAAkB,GAAGA,CAAA,KAAMhF,kBAAkB,CAACgB,KAAK,IAAIA,KAAK,CAACL,eAAe,CAAC","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 "../../../shared/helpers/index.js";
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":"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","ignoreList":[]}
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":"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","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, Path, Skia } from '@shopify/react-native-skia';
6
- import { FLAPPY_BIRD_COLORS, FLAPPY_BIRD_GAME_CONFIG } from "../FlappyBirdConstants.js";
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 groundY = FLAPPY_BIRD_GAME_CONFIG.GAME_HEIGHT - FLAPPY_BIRD_GAME_CONFIG.GROUND_HEIGHT;
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: groundY,
51
+ height: skyEndY,
64
52
  children: /*#__PURE__*/_jsx(LinearGradient, {
65
53
  start: vec(0, 0),
66
- end: vec(0, groundY),
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}`)), /*#__PURE__*/_jsx(Rect, {
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","Path","Skia","FLAPPY_BIRD_COLORS","FLAPPY_BIRD_GAME_CONFIG","jsx","_jsx","jsxs","_jsxs","width","height","get","cloudPositions","x","y","scale","grassPaths","Array","from","length","_","i","grassPath","Make","moveTo","lineTo","path","GameBackground","memo","children","groundY","GAME_HEIGHT","GROUND_HEIGHT","style","flex","position","start","end","colors","SKY_START","SKY_END","map","cloud","index","cx","cy","r","color","GROUND","GROUND_DARK","transform","translateY","grass","strokeWidth","opacity","displayName"],"sourceRoot":"../../../../../src","sources":["games/flappy-bird/components/GameBackground.tsx"],"mappings":"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","ignoreList":[]}
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
- // Pre-calculate brick patterns outside component (MAJOR OPTIMIZATION)
11
+ // Constants for brick wall
12
12
  const brickWallHeight = 150;
13
13
  const brickWidth = 40;
14
14
  const brickHeight = 20;
15
- const gameHeight = FLAPPY_BIRD_GAME_CONFIG.GAME_HEIGHT - FLAPPY_BIRD_GAME_CONFIG.GROUND_HEIGHT;
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: brickWallHeight,
40
+ height: adjustedTopWallHeight,
88
41
  children: /*#__PURE__*/_jsx(LinearGradient, {
89
42
  start: vec(0, 0),
90
- end: vec(0, brickWallHeight),
43
+ end: vec(0, adjustedTopWallHeight),
91
44
  colors: ['#8B4513', '#A0522D', '#8B4513']
92
45
  })
93
- }), topBrickElements, /*#__PURE__*/_jsx(Rect, {
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: gameHeight - brickWallHeight,
69
+ y: actualScreenHeight - bottomWallHeight,
96
70
  width: width,
97
- height: brickWallHeight,
71
+ height: bottomWallHeight,
98
72
  children: /*#__PURE__*/_jsx(LinearGradient, {
99
- start: vec(0, gameHeight - brickWallHeight),
100
- end: vec(0, gameHeight),
73
+ start: vec(0, actualScreenHeight - bottomWallHeight),
74
+ end: vec(0, actualScreenHeight),
101
75
  colors: ['#8B4513', '#A0522D', '#8B4513']
102
76
  })
103
- }), bottomBrickElements, pipes.map(pipe => {
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
- const topPipeStart = brickWallHeight;
106
- const topPipeEnd = Math.max(topPipeStart, Math.min(pipe.topHeight, gameHeight - brickWallHeight));
107
- const bottomPipeStart = Math.max(topPipeStart, Math.min(pipe.bottomY, gameHeight - brickWallHeight));
108
- const bottomPipeEnd = gameHeight - brickWallHeight;
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, {