react-native-games 0.7.0 → 1.0.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 (459) hide show
  1. package/README.md +507 -84
  2. package/lib/module/games/balloon-blaster/BalloonBlaster.js +13 -21
  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 +131 -0
  12. package/lib/module/games/candy-crush/CandyCrush.js.map +1 -0
  13. package/lib/module/games/candy-crush/CandyCrushConstants.js +125 -0
  14. package/lib/module/games/candy-crush/CandyCrushConstants.js.map +1 -0
  15. package/lib/module/games/candy-crush/CandyCrushService.js +370 -0
  16. package/lib/module/games/candy-crush/CandyCrushService.js.map +1 -0
  17. package/lib/module/games/candy-crush/CandyCrushStore.js +303 -0
  18. package/lib/module/games/candy-crush/CandyCrushStore.js.map +1 -0
  19. package/lib/module/games/candy-crush/components/CandyItem.js +191 -0
  20. package/lib/module/games/candy-crush/components/CandyItem.js.map +1 -0
  21. package/lib/module/games/candy-crush/components/GameBackground.js +85 -0
  22. package/lib/module/games/candy-crush/components/GameBackground.js.map +1 -0
  23. package/lib/module/games/candy-crush/components/GameGrid.js +314 -0
  24. package/lib/module/games/candy-crush/components/GameGrid.js.map +1 -0
  25. package/lib/module/games/candy-crush/components/ScoreBoard.js +79 -0
  26. package/lib/module/games/candy-crush/components/ScoreBoard.js.map +1 -0
  27. package/lib/module/games/candy-crush/components/index.js +7 -0
  28. package/lib/module/games/candy-crush/components/index.js.map +1 -0
  29. package/lib/module/games/candy-crush/index.js +6 -0
  30. package/lib/module/games/candy-crush/index.js.map +1 -0
  31. package/lib/module/games/colors-sort/ColorsSort.js +143 -0
  32. package/lib/module/games/colors-sort/ColorsSort.js.map +1 -0
  33. package/lib/module/games/colors-sort/ColorsSortConstants.js +72 -0
  34. package/lib/module/games/colors-sort/ColorsSortConstants.js.map +1 -0
  35. package/lib/module/games/colors-sort/ColorsSortService.js +255 -0
  36. package/lib/module/games/colors-sort/ColorsSortService.js.map +1 -0
  37. package/lib/module/games/colors-sort/ColorsSortStore.js +257 -0
  38. package/lib/module/games/colors-sort/ColorsSortStore.js.map +1 -0
  39. package/lib/module/games/colors-sort/components/ColorContainer.js +140 -0
  40. package/lib/module/games/colors-sort/components/ColorContainer.js.map +1 -0
  41. package/lib/module/games/colors-sort/components/GameBackground.js +135 -0
  42. package/lib/module/games/colors-sort/components/GameBackground.js.map +1 -0
  43. package/lib/module/games/colors-sort/components/ScoreBoard.js +70 -0
  44. package/lib/module/games/colors-sort/components/ScoreBoard.js.map +1 -0
  45. package/lib/module/games/colors-sort/components/index.js +6 -0
  46. package/lib/module/games/colors-sort/components/index.js.map +1 -0
  47. package/lib/module/games/dino-jump/DinoJump.js +209 -0
  48. package/lib/module/games/dino-jump/DinoJump.js.map +1 -0
  49. package/lib/module/games/dino-jump/DinoJumpConstants.js +189 -0
  50. package/lib/module/games/dino-jump/DinoJumpConstants.js.map +1 -0
  51. package/lib/module/games/dino-jump/DinoJumpService.js +270 -0
  52. package/lib/module/games/dino-jump/DinoJumpService.js.map +1 -0
  53. package/lib/module/games/dino-jump/DinoJumpStore.js +381 -0
  54. package/lib/module/games/dino-jump/DinoJumpStore.js.map +1 -0
  55. package/lib/module/games/dino-jump/components/DinoSprite.js +418 -0
  56. package/lib/module/games/dino-jump/components/DinoSprite.js.map +1 -0
  57. package/lib/module/games/dino-jump/components/GameArea.js +68 -0
  58. package/lib/module/games/dino-jump/components/GameArea.js.map +1 -0
  59. package/lib/module/games/dino-jump/components/GameBackground.js +444 -0
  60. package/lib/module/games/dino-jump/components/GameBackground.js.map +1 -0
  61. package/lib/module/games/dino-jump/components/ObstacleSprite.js +306 -0
  62. package/lib/module/games/dino-jump/components/ObstacleSprite.js.map +1 -0
  63. package/lib/module/games/dino-jump/components/ScoreBoard.js +105 -0
  64. package/lib/module/games/dino-jump/components/ScoreBoard.js.map +1 -0
  65. package/lib/module/games/dino-jump/components/StarSprite.js +45 -0
  66. package/lib/module/games/dino-jump/components/StarSprite.js.map +1 -0
  67. package/lib/module/games/dino-jump/components/index.js +9 -0
  68. package/lib/module/games/dino-jump/components/index.js.map +1 -0
  69. package/lib/module/games/flappy-bird/FlappyBird.js +126 -0
  70. package/lib/module/games/flappy-bird/FlappyBird.js.map +1 -0
  71. package/lib/module/games/flappy-bird/FlappyBirdConstants.js +90 -0
  72. package/lib/module/games/flappy-bird/FlappyBirdConstants.js.map +1 -0
  73. package/lib/module/games/flappy-bird/FlappyBirdStore.js +300 -0
  74. package/lib/module/games/flappy-bird/FlappyBirdStore.js.map +1 -0
  75. package/lib/module/games/flappy-bird/components/Bird.js +87 -0
  76. package/lib/module/games/flappy-bird/components/Bird.js.map +1 -0
  77. package/lib/module/games/flappy-bird/components/GameArea.js +87 -0
  78. package/lib/module/games/flappy-bird/components/GameArea.js.map +1 -0
  79. package/lib/module/games/flappy-bird/components/GameBackground.js +79 -0
  80. package/lib/module/games/flappy-bird/components/GameBackground.js.map +1 -0
  81. package/lib/module/games/flappy-bird/components/Pipes.js +172 -0
  82. package/lib/module/games/flappy-bird/components/Pipes.js.map +1 -0
  83. package/lib/module/games/flappy-bird/components/ScoreBoard.js +73 -0
  84. package/lib/module/games/flappy-bird/components/ScoreBoard.js.map +1 -0
  85. package/lib/module/games/flappy-bird/components/index.js +8 -0
  86. package/lib/module/games/flappy-bird/components/index.js.map +1 -0
  87. package/lib/module/games/fruit-merger/FruitMerger.js +120 -0
  88. package/lib/module/games/fruit-merger/FruitMerger.js.map +1 -0
  89. package/lib/module/games/fruit-merger/FruitMergerConstants.js +119 -0
  90. package/lib/module/games/fruit-merger/FruitMergerConstants.js.map +1 -0
  91. package/lib/module/games/fruit-merger/FruitMergerService.js +13 -0
  92. package/lib/module/games/fruit-merger/FruitMergerService.js.map +1 -0
  93. package/lib/module/games/fruit-merger/FruitMergerStore.js +315 -0
  94. package/lib/module/games/fruit-merger/FruitMergerStore.js.map +1 -0
  95. package/lib/module/games/fruit-merger/components/FruitItem.js +102 -0
  96. package/lib/module/games/fruit-merger/components/FruitItem.js.map +1 -0
  97. package/lib/module/games/fruit-merger/components/GameArea.js +103 -0
  98. package/lib/module/games/fruit-merger/components/GameArea.js.map +1 -0
  99. package/lib/module/games/fruit-merger/components/GameBackground.js +498 -0
  100. package/lib/module/games/fruit-merger/components/GameBackground.js.map +1 -0
  101. package/lib/module/games/fruit-merger/components/ScoreBoard.js +58 -0
  102. package/lib/module/games/fruit-merger/components/ScoreBoard.js.map +1 -0
  103. package/lib/module/games/fruit-merger/components/index.js +7 -0
  104. package/lib/module/games/fruit-merger/components/index.js.map +1 -0
  105. package/lib/module/games/fruit-ninja/FruitNinja.js +14 -22
  106. package/lib/module/games/fruit-ninja/FruitNinja.js.map +1 -1
  107. package/lib/module/games/fruit-ninja/FruitNinjaStore.js +1 -1
  108. package/lib/module/games/fruit-ninja/components/GameArea.js +1 -1
  109. package/lib/module/games/fruit-ninja/components/GameArea.js.map +1 -1
  110. package/lib/module/games/fruit-ninja/components/GameBackground.js +70 -45
  111. package/lib/module/games/fruit-ninja/components/GameBackground.js.map +1 -1
  112. package/lib/module/games/fruit-ninja/components/ScoreBoard.js +47 -46
  113. package/lib/module/games/fruit-ninja/components/ScoreBoard.js.map +1 -1
  114. package/lib/module/games/game-2048/Game2048.js +149 -0
  115. package/lib/module/games/game-2048/Game2048.js.map +1 -0
  116. package/lib/module/games/game-2048/Game2048Constants.js +263 -0
  117. package/lib/module/games/game-2048/Game2048Constants.js.map +1 -0
  118. package/lib/module/games/game-2048/Game2048Service.js +457 -0
  119. package/lib/module/games/game-2048/Game2048Service.js.map +1 -0
  120. package/lib/module/games/game-2048/Game2048Store.js +236 -0
  121. package/lib/module/games/game-2048/Game2048Store.js.map +1 -0
  122. package/lib/module/games/game-2048/components/GameBackground.js +247 -0
  123. package/lib/module/games/game-2048/components/GameBackground.js.map +1 -0
  124. package/lib/module/games/game-2048/components/GameGrid.js +139 -0
  125. package/lib/module/games/game-2048/components/GameGrid.js.map +1 -0
  126. package/lib/module/games/game-2048/components/GameTile.js +72 -0
  127. package/lib/module/games/game-2048/components/GameTile.js.map +1 -0
  128. package/lib/module/games/game-2048/components/ScoreBoard.js +52 -0
  129. package/lib/module/games/game-2048/components/ScoreBoard.js.map +1 -0
  130. package/lib/module/games/game-2048/components/index.js +7 -0
  131. package/lib/module/games/game-2048/components/index.js.map +1 -0
  132. package/lib/module/games/maze-runner/MazeRunner.js +51 -41
  133. package/lib/module/games/maze-runner/MazeRunner.js.map +1 -1
  134. package/lib/module/games/maze-runner/MazeRunnerService.js +19 -17
  135. package/lib/module/games/maze-runner/MazeRunnerService.js.map +1 -1
  136. package/lib/module/games/maze-runner/components/ScoreBoard.js +32 -42
  137. package/lib/module/games/maze-runner/components/ScoreBoard.js.map +1 -1
  138. package/lib/module/games/popit-fidget/PopitFidget.js +57 -66
  139. package/lib/module/games/popit-fidget/PopitFidget.js.map +1 -1
  140. package/lib/module/games/popit-fidget/PopitFidgetStore.js +6 -44
  141. package/lib/module/games/popit-fidget/PopitFidgetStore.js.map +1 -1
  142. package/lib/module/games/popit-fidget/components/ScoreBoard.js +31 -45
  143. package/lib/module/games/popit-fidget/components/ScoreBoard.js.map +1 -1
  144. package/lib/module/games/sliding-numbers/SlidingNumbers.js +159 -0
  145. package/lib/module/games/sliding-numbers/SlidingNumbers.js.map +1 -0
  146. package/lib/module/games/sliding-numbers/SlidingNumbersConstants.js +207 -0
  147. package/lib/module/games/sliding-numbers/SlidingNumbersConstants.js.map +1 -0
  148. package/lib/module/games/sliding-numbers/SlidingNumbersService.js +248 -0
  149. package/lib/module/games/sliding-numbers/SlidingNumbersService.js.map +1 -0
  150. package/lib/module/games/sliding-numbers/SlidingNumbersStore.js +274 -0
  151. package/lib/module/games/sliding-numbers/SlidingNumbersStore.js.map +1 -0
  152. package/lib/module/games/sliding-numbers/components/GameBackground.js +259 -0
  153. package/lib/module/games/sliding-numbers/components/GameBackground.js.map +1 -0
  154. package/lib/module/games/sliding-numbers/components/NumbersGrid.js +174 -0
  155. package/lib/module/games/sliding-numbers/components/NumbersGrid.js.map +1 -0
  156. package/lib/module/games/sliding-numbers/components/NumbersTile.js +116 -0
  157. package/lib/module/games/sliding-numbers/components/NumbersTile.js.map +1 -0
  158. package/lib/module/games/sliding-numbers/components/ScoreBoard.js +64 -0
  159. package/lib/module/games/sliding-numbers/components/ScoreBoard.js.map +1 -0
  160. package/lib/module/games/sliding-numbers/components/index.js +7 -0
  161. package/lib/module/games/sliding-numbers/components/index.js.map +1 -0
  162. package/lib/module/games/snake/Snake.js +189 -0
  163. package/lib/module/games/snake/Snake.js.map +1 -0
  164. package/lib/module/games/snake/SnakeConstants.js +138 -0
  165. package/lib/module/games/snake/SnakeConstants.js.map +1 -0
  166. package/lib/module/games/snake/SnakeService.js +148 -0
  167. package/lib/module/games/snake/SnakeService.js.map +1 -0
  168. package/lib/module/games/snake/SnakeStore.js +182 -0
  169. package/lib/module/games/snake/SnakeStore.js.map +1 -0
  170. package/lib/module/games/snake/components/GameBackground.js +221 -0
  171. package/lib/module/games/snake/components/GameBackground.js.map +1 -0
  172. package/lib/module/games/snake/components/GameGrid.js +153 -0
  173. package/lib/module/games/snake/components/GameGrid.js.map +1 -0
  174. package/lib/module/games/snake/components/ScoreBoard.js +51 -0
  175. package/lib/module/games/snake/components/ScoreBoard.js.map +1 -0
  176. package/lib/module/games/snake/components/index.js +6 -0
  177. package/lib/module/games/snake/components/index.js.map +1 -0
  178. package/lib/module/games/snake/index.js +6 -0
  179. package/lib/module/games/snake/index.js.map +1 -0
  180. package/lib/module/games/space-fighter/SpaceFighter.js +22 -26
  181. package/lib/module/games/space-fighter/SpaceFighter.js.map +1 -1
  182. package/lib/module/games/space-fighter/SpaceFighterService.js +7 -6
  183. package/lib/module/games/space-fighter/SpaceFighterService.js.map +1 -1
  184. package/lib/module/games/space-fighter/SpaceFighterStore.js +25 -11
  185. package/lib/module/games/space-fighter/SpaceFighterStore.js.map +1 -1
  186. package/lib/module/games/space-fighter/components/GameArea.js +1 -7
  187. package/lib/module/games/space-fighter/components/GameArea.js.map +1 -1
  188. package/lib/module/games/space-fighter/components/ScoreBoard.js +47 -48
  189. package/lib/module/games/space-fighter/components/ScoreBoard.js.map +1 -1
  190. package/lib/module/games/whack-a-mole/WhackAMole.js +17 -10
  191. package/lib/module/games/whack-a-mole/WhackAMole.js.map +1 -1
  192. package/lib/module/games/whack-a-mole/WhackAMoleStore.js +1 -1
  193. package/lib/module/games/whack-a-mole/components/GameBackground.js +37 -30
  194. package/lib/module/games/whack-a-mole/components/GameBackground.js.map +1 -1
  195. package/lib/module/games/whack-a-mole/components/ScoreBoard.js +32 -38
  196. package/lib/module/games/whack-a-mole/components/ScoreBoard.js.map +1 -1
  197. package/lib/module/helpers/AnimationFrame.js.map +1 -0
  198. package/lib/module/helpers/AnimationTracker.js.map +1 -0
  199. package/lib/module/helpers/ErrorHandler.js.map +1 -0
  200. package/lib/module/helpers/GameControlButton.js.map +1 -0
  201. package/lib/module/{shared/helpers → helpers}/GameOverModal.js +6 -3
  202. package/lib/module/helpers/GameOverModal.js.map +1 -0
  203. package/lib/module/{shared/helpers → helpers}/GameSettingsModal.js +5 -5
  204. package/lib/module/helpers/GameSettingsModal.js.map +1 -0
  205. package/lib/module/{shared/helpers → helpers}/ParticleBlast.js +3 -2
  206. package/lib/module/helpers/ParticleBlast.js.map +1 -0
  207. package/lib/module/helpers/ScoreBoardContainer.js +34 -0
  208. package/lib/module/helpers/ScoreBoardContainer.js.map +1 -0
  209. package/lib/module/{shared/helpers → helpers}/index.js +1 -1
  210. package/lib/module/helpers/index.js.map +1 -0
  211. package/lib/module/index.js +9 -0
  212. package/lib/module/index.js.map +1 -1
  213. package/lib/module/services/GamesConstants.js +100 -5
  214. package/lib/module/services/GamesConstants.js.map +1 -1
  215. package/lib/module/services/GamesService.js +108 -42
  216. package/lib/module/services/GamesService.js.map +1 -1
  217. package/lib/module/services/SoundsService.js +132 -1
  218. package/lib/module/services/SoundsService.js.map +1 -1
  219. package/lib/module/services/UtilsService.js +32 -0
  220. package/lib/module/services/UtilsService.js.map +1 -0
  221. package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts +1 -1
  222. package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts.map +1 -1
  223. package/lib/typescript/src/games/balloon-blaster/components/GameBackground.d.ts +1 -0
  224. package/lib/typescript/src/games/balloon-blaster/components/GameBackground.d.ts.map +1 -1
  225. package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts +5 -1
  226. package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts.map +1 -1
  227. package/lib/typescript/src/games/candy-crush/CandyCrush.d.ts +4 -0
  228. package/lib/typescript/src/games/candy-crush/CandyCrush.d.ts.map +1 -0
  229. package/lib/typescript/src/games/candy-crush/CandyCrushConstants.d.ts +104 -0
  230. package/lib/typescript/src/games/candy-crush/CandyCrushConstants.d.ts.map +1 -0
  231. package/lib/typescript/src/games/candy-crush/CandyCrushService.d.ts +40 -0
  232. package/lib/typescript/src/games/candy-crush/CandyCrushService.d.ts.map +1 -0
  233. package/lib/typescript/src/games/candy-crush/CandyCrushStore.d.ts +48 -0
  234. package/lib/typescript/src/games/candy-crush/CandyCrushStore.d.ts.map +1 -0
  235. package/lib/typescript/src/games/candy-crush/components/CandyItem.d.ts +13 -0
  236. package/lib/typescript/src/games/candy-crush/components/CandyItem.d.ts.map +1 -0
  237. package/lib/typescript/src/games/candy-crush/components/GameBackground.d.ts +5 -0
  238. package/lib/typescript/src/games/candy-crush/components/GameBackground.d.ts.map +1 -0
  239. package/lib/typescript/src/games/candy-crush/components/GameGrid.d.ts +3 -0
  240. package/lib/typescript/src/games/candy-crush/components/GameGrid.d.ts.map +1 -0
  241. package/lib/typescript/src/games/candy-crush/components/ScoreBoard.d.ts +6 -0
  242. package/lib/typescript/src/games/candy-crush/components/ScoreBoard.d.ts.map +1 -0
  243. package/lib/typescript/src/games/candy-crush/components/index.d.ts +5 -0
  244. package/lib/typescript/src/games/candy-crush/components/index.d.ts.map +1 -0
  245. package/lib/typescript/src/games/candy-crush/index.d.ts +4 -0
  246. package/lib/typescript/src/games/candy-crush/index.d.ts.map +1 -0
  247. package/lib/typescript/src/games/colors-sort/ColorsSort.d.ts +4 -0
  248. package/lib/typescript/src/games/colors-sort/ColorsSort.d.ts.map +1 -0
  249. package/lib/typescript/src/games/colors-sort/ColorsSortConstants.d.ts +54 -0
  250. package/lib/typescript/src/games/colors-sort/ColorsSortConstants.d.ts.map +1 -0
  251. package/lib/typescript/src/games/colors-sort/ColorsSortService.d.ts +66 -0
  252. package/lib/typescript/src/games/colors-sort/ColorsSortService.d.ts.map +1 -0
  253. package/lib/typescript/src/games/colors-sort/ColorsSortStore.d.ts +48 -0
  254. package/lib/typescript/src/games/colors-sort/ColorsSortStore.d.ts.map +1 -0
  255. package/lib/typescript/src/games/colors-sort/components/ColorContainer.d.ts +11 -0
  256. package/lib/typescript/src/games/colors-sort/components/ColorContainer.d.ts.map +1 -0
  257. package/lib/typescript/src/games/colors-sort/components/GameBackground.d.ts +7 -0
  258. package/lib/typescript/src/games/colors-sort/components/GameBackground.d.ts.map +1 -0
  259. package/lib/typescript/src/games/colors-sort/components/ScoreBoard.d.ts +7 -0
  260. package/lib/typescript/src/games/colors-sort/components/ScoreBoard.d.ts.map +1 -0
  261. package/lib/typescript/src/games/colors-sort/components/index.d.ts +4 -0
  262. package/lib/typescript/src/games/colors-sort/components/index.d.ts.map +1 -0
  263. package/lib/typescript/src/games/dino-jump/DinoJump.d.ts +4 -0
  264. package/lib/typescript/src/games/dino-jump/DinoJump.d.ts.map +1 -0
  265. package/lib/typescript/src/games/dino-jump/DinoJumpConstants.d.ts +97 -0
  266. package/lib/typescript/src/games/dino-jump/DinoJumpConstants.d.ts.map +1 -0
  267. package/lib/typescript/src/games/dino-jump/DinoJumpService.d.ts +40 -0
  268. package/lib/typescript/src/games/dino-jump/DinoJumpService.d.ts.map +1 -0
  269. package/lib/typescript/src/games/dino-jump/DinoJumpStore.d.ts +103 -0
  270. package/lib/typescript/src/games/dino-jump/DinoJumpStore.d.ts.map +1 -0
  271. package/lib/typescript/src/games/dino-jump/components/DinoSprite.d.ts +3 -0
  272. package/lib/typescript/src/games/dino-jump/components/DinoSprite.d.ts.map +1 -0
  273. package/lib/typescript/src/games/dino-jump/components/GameArea.d.ts +8 -0
  274. package/lib/typescript/src/games/dino-jump/components/GameArea.d.ts.map +1 -0
  275. package/lib/typescript/src/games/dino-jump/components/GameBackground.d.ts +8 -0
  276. package/lib/typescript/src/games/dino-jump/components/GameBackground.d.ts.map +1 -0
  277. package/lib/typescript/src/games/dino-jump/components/ObstacleSprite.d.ts +3 -0
  278. package/lib/typescript/src/games/dino-jump/components/ObstacleSprite.d.ts.map +1 -0
  279. package/lib/typescript/src/games/dino-jump/components/ScoreBoard.d.ts +7 -0
  280. package/lib/typescript/src/games/dino-jump/components/ScoreBoard.d.ts.map +1 -0
  281. package/lib/typescript/src/games/dino-jump/components/StarSprite.d.ts +3 -0
  282. package/lib/typescript/src/games/dino-jump/components/StarSprite.d.ts.map +1 -0
  283. package/lib/typescript/src/games/dino-jump/components/index.d.ts +7 -0
  284. package/lib/typescript/src/games/dino-jump/components/index.d.ts.map +1 -0
  285. package/lib/typescript/src/games/flappy-bird/FlappyBird.d.ts +4 -0
  286. package/lib/typescript/src/games/flappy-bird/FlappyBird.d.ts.map +1 -0
  287. package/lib/typescript/src/games/flappy-bird/FlappyBirdConstants.d.ts +83 -0
  288. package/lib/typescript/src/games/flappy-bird/FlappyBirdConstants.d.ts.map +1 -0
  289. package/lib/typescript/src/games/flappy-bird/FlappyBirdStore.d.ts +53 -0
  290. package/lib/typescript/src/games/flappy-bird/FlappyBirdStore.d.ts.map +1 -0
  291. package/lib/typescript/src/games/flappy-bird/components/Bird.d.ts +8 -0
  292. package/lib/typescript/src/games/flappy-bird/components/Bird.d.ts.map +1 -0
  293. package/lib/typescript/src/games/flappy-bird/components/GameArea.d.ts +8 -0
  294. package/lib/typescript/src/games/flappy-bird/components/GameArea.d.ts.map +1 -0
  295. package/lib/typescript/src/games/flappy-bird/components/GameBackground.d.ts +8 -0
  296. package/lib/typescript/src/games/flappy-bird/components/GameBackground.d.ts.map +1 -0
  297. package/lib/typescript/src/games/flappy-bird/components/Pipes.d.ts +9 -0
  298. package/lib/typescript/src/games/flappy-bird/components/Pipes.d.ts.map +1 -0
  299. package/lib/typescript/src/games/flappy-bird/components/ScoreBoard.d.ts +7 -0
  300. package/lib/typescript/src/games/flappy-bird/components/ScoreBoard.d.ts.map +1 -0
  301. package/lib/typescript/src/games/flappy-bird/components/index.d.ts +6 -0
  302. package/lib/typescript/src/games/flappy-bird/components/index.d.ts.map +1 -0
  303. package/lib/typescript/src/games/fruit-merger/FruitMerger.d.ts +4 -0
  304. package/lib/typescript/src/games/fruit-merger/FruitMerger.d.ts.map +1 -0
  305. package/lib/typescript/src/games/fruit-merger/FruitMergerConstants.d.ts +115 -0
  306. package/lib/typescript/src/games/fruit-merger/FruitMergerConstants.d.ts.map +1 -0
  307. package/lib/typescript/src/games/fruit-merger/FruitMergerService.d.ts +5 -0
  308. package/lib/typescript/src/games/fruit-merger/FruitMergerService.d.ts.map +1 -0
  309. package/lib/typescript/src/games/fruit-merger/FruitMergerStore.d.ts +43 -0
  310. package/lib/typescript/src/games/fruit-merger/FruitMergerStore.d.ts.map +1 -0
  311. package/lib/typescript/src/games/fruit-merger/components/FruitItem.d.ts +10 -0
  312. package/lib/typescript/src/games/fruit-merger/components/FruitItem.d.ts.map +1 -0
  313. package/lib/typescript/src/games/fruit-merger/components/GameArea.d.ts +8 -0
  314. package/lib/typescript/src/games/fruit-merger/components/GameArea.d.ts.map +1 -0
  315. package/lib/typescript/src/games/fruit-merger/components/GameBackground.d.ts +8 -0
  316. package/lib/typescript/src/games/fruit-merger/components/GameBackground.d.ts.map +1 -0
  317. package/lib/typescript/src/games/fruit-merger/components/ScoreBoard.d.ts +7 -0
  318. package/lib/typescript/src/games/fruit-merger/components/ScoreBoard.d.ts.map +1 -0
  319. package/lib/typescript/src/games/fruit-merger/components/index.d.ts +5 -0
  320. package/lib/typescript/src/games/fruit-merger/components/index.d.ts.map +1 -0
  321. package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts +1 -1
  322. package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts.map +1 -1
  323. package/lib/typescript/src/games/fruit-ninja/components/GameBackground.d.ts +1 -0
  324. package/lib/typescript/src/games/fruit-ninja/components/GameBackground.d.ts.map +1 -1
  325. package/lib/typescript/src/games/fruit-ninja/components/ScoreBoard.d.ts +5 -1
  326. package/lib/typescript/src/games/fruit-ninja/components/ScoreBoard.d.ts.map +1 -1
  327. package/lib/typescript/src/games/game-2048/Game2048.d.ts +4 -0
  328. package/lib/typescript/src/games/game-2048/Game2048.d.ts.map +1 -0
  329. package/lib/typescript/src/games/game-2048/Game2048Constants.d.ts +163 -0
  330. package/lib/typescript/src/games/game-2048/Game2048Constants.d.ts.map +1 -0
  331. package/lib/typescript/src/games/game-2048/Game2048Service.d.ts +113 -0
  332. package/lib/typescript/src/games/game-2048/Game2048Service.d.ts.map +1 -0
  333. package/lib/typescript/src/games/game-2048/Game2048Store.d.ts +48 -0
  334. package/lib/typescript/src/games/game-2048/Game2048Store.d.ts.map +1 -0
  335. package/lib/typescript/src/games/game-2048/components/GameBackground.d.ts +7 -0
  336. package/lib/typescript/src/games/game-2048/components/GameBackground.d.ts.map +1 -0
  337. package/lib/typescript/src/games/game-2048/components/GameGrid.d.ts +7 -0
  338. package/lib/typescript/src/games/game-2048/components/GameGrid.d.ts.map +1 -0
  339. package/lib/typescript/src/games/game-2048/components/GameTile.d.ts +13 -0
  340. package/lib/typescript/src/games/game-2048/components/GameTile.d.ts.map +1 -0
  341. package/lib/typescript/src/games/game-2048/components/ScoreBoard.d.ts +7 -0
  342. package/lib/typescript/src/games/game-2048/components/ScoreBoard.d.ts.map +1 -0
  343. package/lib/typescript/src/games/game-2048/components/index.d.ts +5 -0
  344. package/lib/typescript/src/games/game-2048/components/index.d.ts.map +1 -0
  345. package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts +1 -1
  346. package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts.map +1 -1
  347. package/lib/typescript/src/games/maze-runner/MazeRunnerService.d.ts +1 -0
  348. package/lib/typescript/src/games/maze-runner/MazeRunnerService.d.ts.map +1 -1
  349. package/lib/typescript/src/games/maze-runner/components/ScoreBoard.d.ts +1 -0
  350. package/lib/typescript/src/games/maze-runner/components/ScoreBoard.d.ts.map +1 -1
  351. package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts +1 -1
  352. package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts.map +1 -1
  353. package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts +2 -5
  354. package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts.map +1 -1
  355. package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts +2 -2
  356. package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts.map +1 -1
  357. package/lib/typescript/src/games/sliding-numbers/SlidingNumbers.d.ts +4 -0
  358. package/lib/typescript/src/games/sliding-numbers/SlidingNumbers.d.ts.map +1 -0
  359. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersConstants.d.ts +108 -0
  360. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersConstants.d.ts.map +1 -0
  361. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersService.d.ts +34 -0
  362. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersService.d.ts.map +1 -0
  363. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersStore.d.ts +56 -0
  364. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersStore.d.ts.map +1 -0
  365. package/lib/typescript/src/games/sliding-numbers/components/GameBackground.d.ts +7 -0
  366. package/lib/typescript/src/games/sliding-numbers/components/GameBackground.d.ts.map +1 -0
  367. package/lib/typescript/src/games/sliding-numbers/components/NumbersGrid.d.ts +7 -0
  368. package/lib/typescript/src/games/sliding-numbers/components/NumbersGrid.d.ts.map +1 -0
  369. package/lib/typescript/src/games/sliding-numbers/components/NumbersTile.d.ts +11 -0
  370. package/lib/typescript/src/games/sliding-numbers/components/NumbersTile.d.ts.map +1 -0
  371. package/lib/typescript/src/games/sliding-numbers/components/ScoreBoard.d.ts +7 -0
  372. package/lib/typescript/src/games/sliding-numbers/components/ScoreBoard.d.ts.map +1 -0
  373. package/lib/typescript/src/games/sliding-numbers/components/index.d.ts +5 -0
  374. package/lib/typescript/src/games/sliding-numbers/components/index.d.ts.map +1 -0
  375. package/lib/typescript/src/games/snake/Snake.d.ts +4 -0
  376. package/lib/typescript/src/games/snake/Snake.d.ts.map +1 -0
  377. package/lib/typescript/src/games/snake/SnakeConstants.d.ts +93 -0
  378. package/lib/typescript/src/games/snake/SnakeConstants.d.ts.map +1 -0
  379. package/lib/typescript/src/games/snake/SnakeService.d.ts +30 -0
  380. package/lib/typescript/src/games/snake/SnakeService.d.ts.map +1 -0
  381. package/lib/typescript/src/games/snake/SnakeStore.d.ts +43 -0
  382. package/lib/typescript/src/games/snake/SnakeStore.d.ts.map +1 -0
  383. package/lib/typescript/src/games/snake/components/GameBackground.d.ts +5 -0
  384. package/lib/typescript/src/games/snake/components/GameBackground.d.ts.map +1 -0
  385. package/lib/typescript/src/games/snake/components/GameGrid.d.ts +3 -0
  386. package/lib/typescript/src/games/snake/components/GameGrid.d.ts.map +1 -0
  387. package/lib/typescript/src/games/snake/components/ScoreBoard.d.ts +7 -0
  388. package/lib/typescript/src/games/snake/components/ScoreBoard.d.ts.map +1 -0
  389. package/lib/typescript/src/games/snake/components/index.d.ts +4 -0
  390. package/lib/typescript/src/games/snake/components/index.d.ts.map +1 -0
  391. package/lib/typescript/src/games/snake/index.d.ts +4 -0
  392. package/lib/typescript/src/games/snake/index.d.ts.map +1 -0
  393. package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts +1 -1
  394. package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts.map +1 -1
  395. package/lib/typescript/src/games/space-fighter/SpaceFighterService.d.ts.map +1 -1
  396. package/lib/typescript/src/games/space-fighter/SpaceFighterStore.d.ts +2 -0
  397. package/lib/typescript/src/games/space-fighter/SpaceFighterStore.d.ts.map +1 -1
  398. package/lib/typescript/src/games/space-fighter/components/GameArea.d.ts.map +1 -1
  399. package/lib/typescript/src/games/space-fighter/components/ScoreBoard.d.ts +5 -1
  400. package/lib/typescript/src/games/space-fighter/components/ScoreBoard.d.ts.map +1 -1
  401. package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts +1 -1
  402. package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts.map +1 -1
  403. package/lib/typescript/src/games/whack-a-mole/components/GameBackground.d.ts +1 -0
  404. package/lib/typescript/src/games/whack-a-mole/components/GameBackground.d.ts.map +1 -1
  405. package/lib/typescript/src/games/whack-a-mole/components/ScoreBoard.d.ts +1 -0
  406. package/lib/typescript/src/games/whack-a-mole/components/ScoreBoard.d.ts.map +1 -1
  407. package/lib/typescript/src/helpers/AnimationFrame.d.ts.map +1 -0
  408. package/lib/typescript/src/helpers/AnimationTracker.d.ts.map +1 -0
  409. package/lib/typescript/src/helpers/ErrorHandler.d.ts.map +1 -0
  410. package/lib/typescript/src/helpers/GameControlButton.d.ts.map +1 -0
  411. package/lib/typescript/src/{shared/helpers → helpers}/GameOverModal.d.ts +2 -0
  412. package/lib/typescript/src/helpers/GameOverModal.d.ts.map +1 -0
  413. package/lib/typescript/src/{shared/helpers → helpers}/GameSettingsModal.d.ts +1 -1
  414. package/lib/typescript/src/helpers/GameSettingsModal.d.ts.map +1 -0
  415. package/lib/typescript/src/helpers/ParticleBlast.d.ts.map +1 -0
  416. package/lib/typescript/src/helpers/ScoreBoardContainer.d.ts +9 -0
  417. package/lib/typescript/src/helpers/ScoreBoardContainer.d.ts.map +1 -0
  418. package/lib/typescript/src/{shared/helpers → helpers}/index.d.ts +2 -1
  419. package/lib/typescript/src/helpers/index.d.ts.map +1 -0
  420. package/lib/typescript/src/index.d.ts +9 -0
  421. package/lib/typescript/src/index.d.ts.map +1 -1
  422. package/lib/typescript/src/services/GamesConstants.d.ts +162 -0
  423. package/lib/typescript/src/services/GamesConstants.d.ts.map +1 -1
  424. package/lib/typescript/src/services/GamesService.d.ts +3 -25
  425. package/lib/typescript/src/services/GamesService.d.ts.map +1 -1
  426. package/lib/typescript/src/services/SoundsService.d.ts +103 -0
  427. package/lib/typescript/src/services/SoundsService.d.ts.map +1 -1
  428. package/lib/typescript/src/services/UtilsService.d.ts +38 -0
  429. package/lib/typescript/src/services/UtilsService.d.ts.map +1 -0
  430. package/package.json +1 -1
  431. package/lib/module/shared/helpers/AnimationFrame.js.map +0 -1
  432. package/lib/module/shared/helpers/AnimationTracker.js.map +0 -1
  433. package/lib/module/shared/helpers/ErrorHandler.js.map +0 -1
  434. package/lib/module/shared/helpers/GameControlButton.js.map +0 -1
  435. package/lib/module/shared/helpers/GameOverModal.js.map +0 -1
  436. package/lib/module/shared/helpers/GameSettingsModal.js.map +0 -1
  437. package/lib/module/shared/helpers/ParticleBlast.js.map +0 -1
  438. package/lib/module/shared/helpers/ResponsiveScoreBoard.js +0 -81
  439. package/lib/module/shared/helpers/ResponsiveScoreBoard.js.map +0 -1
  440. package/lib/module/shared/helpers/index.js.map +0 -1
  441. package/lib/typescript/src/shared/helpers/AnimationFrame.d.ts.map +0 -1
  442. package/lib/typescript/src/shared/helpers/AnimationTracker.d.ts.map +0 -1
  443. package/lib/typescript/src/shared/helpers/ErrorHandler.d.ts.map +0 -1
  444. package/lib/typescript/src/shared/helpers/GameControlButton.d.ts.map +0 -1
  445. package/lib/typescript/src/shared/helpers/GameOverModal.d.ts.map +0 -1
  446. package/lib/typescript/src/shared/helpers/GameSettingsModal.d.ts.map +0 -1
  447. package/lib/typescript/src/shared/helpers/ParticleBlast.d.ts.map +0 -1
  448. package/lib/typescript/src/shared/helpers/ResponsiveScoreBoard.d.ts +0 -42
  449. package/lib/typescript/src/shared/helpers/ResponsiveScoreBoard.d.ts.map +0 -1
  450. package/lib/typescript/src/shared/helpers/index.d.ts.map +0 -1
  451. /package/lib/module/{shared/helpers → helpers}/AnimationFrame.js +0 -0
  452. /package/lib/module/{shared/helpers → helpers}/AnimationTracker.js +0 -0
  453. /package/lib/module/{shared/helpers → helpers}/ErrorHandler.js +0 -0
  454. /package/lib/module/{shared/helpers → helpers}/GameControlButton.js +0 -0
  455. /package/lib/typescript/src/{shared/helpers → helpers}/AnimationFrame.d.ts +0 -0
  456. /package/lib/typescript/src/{shared/helpers → helpers}/AnimationTracker.d.ts +0 -0
  457. /package/lib/typescript/src/{shared/helpers → helpers}/ErrorHandler.d.ts +0 -0
  458. /package/lib/typescript/src/{shared/helpers → helpers}/GameControlButton.d.ts +0 -0
  459. /package/lib/typescript/src/{shared/helpers → helpers}/ParticleBlast.d.ts +0 -0
package/README.md CHANGED
@@ -1,17 +1,369 @@
1
1
  # 🎮 react-native-games
2
2
 
3
- **react-native-games** is a collection of free, high-performance games for your React Native projects. Built with modern React Native technologies including Skia, Reanimated, and TypeScript for smooth 60fps gameplay.
3
+ **react-native-games** is a collection of 14 high-performance games for your React Native projects. Built with modern React Native technologies including Skia, Reanimated, Gesture Handler and TypeScript for smooth 60fps gameplay across iOS, Android, and Web platforms.
4
+
5
+ <table style="border: none;">
6
+ <tr style="border: none;">
7
+ <td width="33%" style="border: none; vertical-align: top;">
8
+
9
+ ### 🚀 High Performance
10
+ - 60fps gameplay with React Native Skia
11
+ - Optimized animations using Reanimated 3
12
+ - Delta time physics loops
13
+ - React.memo optimizations
14
+ - Minimal re-renders with direct store subscriptions
15
+
16
+ </td>
17
+ <td width="33%" style="border: none; vertical-align: top;">
18
+
19
+ ### 📱 Cross-Platform
20
+ - iOS, Android, and Web support
21
+ - Consistent performance across platforms
22
+ - Responsive design for all screen sizes
23
+ - Dynamic offset handling for notches
24
+ - Adaptive UI components
25
+
26
+ </td>
27
+ <td width="33%" style="border: none; vertical-align: top;">
28
+
29
+ ### 🎵 Rich Audio & Haptics
30
+ - Sound effects and speech synthesis
31
+ - Haptic feedback for immersive experience
32
+ - Configurable audio settings
33
+ - Per-game sound customization
34
+
35
+ </td>
36
+ </tr>
37
+ <tr style="border: none;">
38
+ <td width="33%" style="border: none; vertical-align: top;">
39
+
40
+ ### 🎯 Customizable
41
+ - Multiple difficulty levels
42
+ - Adjustable game parameters
43
+ - Persistent settings storage
44
+ - Unified settings interface
45
+
46
+ </td>
47
+ <td width="33%" style="border: none; vertical-align: top;">
48
+
49
+ ### 🎮 Game Features
50
+ - Physics simulation and collisions
51
+ - Particle systems and visual effects
52
+ - Procedural generation (mazes, obstacles)
53
+ - Score systems and achievements
54
+ - Progressive difficulty scaling
55
+
56
+ </td>
57
+ <td width="33%" style="border: none; vertical-align: top;">
58
+
59
+ ### 🛠️ Developer Friendly
60
+ - TypeScript support throughout
61
+ - Shared components (GameControlButton, ScoreBoard)
62
+ - Consistent API across all games
63
+ - Easy integration and customization
64
+ - Comprehensive documentation
65
+
66
+ </td>
67
+ </tr>
68
+ </table>
4
69
 
5
70
  ## 🎯 Available Games
6
71
 
7
- | Game | Description | Features |
8
- |------|-------------|----------|
9
- | **🐱 Whack A Mole** | Whack cute cats popping from holes - fast reflexes needed! | Multiple difficulty levels, customizable grid sizes, haptic feedback |
10
- | **🫧 Popit Fidget** | Pop satisfying bubbles in this relaxing fidget toy game | Relaxing gameplay, colorful bubbles, different shapes |
11
- | **🍎 Fruit Ninja** | Slice flying fruits with finger swipes - avoid the bombs! | Physics-based slicing, particle effects, combo system |
12
- | **🧩 Maze Runner** | Navigate ball through mazes using tilt and physics controls | Dynamic maze generation, physics controls, multiple difficulties |
13
- | **🚀 Space Fighter** | Pilot spaceship through asteroid fields in endless space | 3D-style graphics, progressive difficulty, space physics |
14
- | **🎈 Balloon Blaster** | Pop rising balloons before they escape - quick taps win! | Physics-based gameplay, particle effects, combo system |
72
+ <table>
73
+ <tr>
74
+ <td width="50%" style="vertical-align: top;">
75
+ <table style="border: none;">
76
+ <tr style="border: none;">
77
+ <td width="120" style="vertical-align: top; border: none;">
78
+ <img src="https://cdn.worklage.com/playtura/screenshots/fruit-ninja.png" alt="Fruit Ninja" width="100"/>
79
+ </td>
80
+ <td style="vertical-align: top; border: none;">
81
+
82
+ **🍎 Fruit Ninja**
83
+ Slice flying fruits with finger swipes - avoid the bombs!
84
+
85
+ • Fixed 60-second gameplay sessions
86
+ • Physics-based slicing with particle effects and combo system
87
+ • Difficulty affects fruit spawn rate and bomb frequency
88
+
89
+ </td>
90
+ </tr>
91
+ </table>
92
+ </td>
93
+ <td width="50%" style="vertical-align: top;">
94
+ <table style="border: none;">
95
+ <tr style="border: none;">
96
+ <td width="120" style="vertical-align: top; border: none;">
97
+ <img src="https://cdn.worklage.com/playtura/screenshots/candy-crush.png" alt="Candy Crush" width="100"/>
98
+ </td>
99
+ <td style="vertical-align: top; border: none;">
100
+
101
+ **🍬 Candy Crush**
102
+ Match colorful candies in this puzzle game
103
+
104
+ • Match-3 puzzle with colorful candies
105
+ • Create special candies with 4+ matches
106
+ • Cascading combos and satisfying animations
107
+ • Difficulty affects level objectives and move limits
108
+
109
+ </td>
110
+ </tr>
111
+ </table>
112
+ </td>
113
+ </tr>
114
+ <tr>
115
+ <td width="50%" style="vertical-align: top;">
116
+ <table style="border: none;">
117
+ <tr style="border: none;">
118
+ <td width="120" style="vertical-align: top; border: none;">
119
+ <img src="https://cdn.worklage.com/playtura/screenshots/flappy-bird.png" alt="Flappy Bird" width="100"/>
120
+ </td>
121
+ <td style="vertical-align: top; border: none;">
122
+
123
+ **🐦 Flappy Bird**
124
+ Navigate bird through pipes with precise timing
125
+
126
+ • Classic tap-to-flap mechanics with gravity physics
127
+ • Navigate through pipes with pixel-perfect collision
128
+ • Progressive difficulty with increasing pipe speed
129
+ • Difficulty affects pipe gap size and spawn frequency
130
+
131
+ </td>
132
+ </tr>
133
+ </table>
134
+ </td>
135
+ <td width="50%" style="vertical-align: top;">
136
+ <table style="border: none;">
137
+ <tr style="border: none;">
138
+ <td width="120" style="vertical-align: top; border: none;">
139
+ <img src="https://cdn.worklage.com/playtura/screenshots/colors-sort.png" alt="Colors Sort" width="100"/>
140
+ </td>
141
+ <td style="vertical-align: top; border: none;">
142
+
143
+ **🎨 Colors Sort**
144
+ Sort colored liquids into matching tubes
145
+
146
+ • Sort colored liquids into matching tubes
147
+ • Logic puzzle with increasing complexity
148
+ • Satisfying pour animations and sound effects
149
+ • Difficulty affects number of tubes and colors
150
+
151
+ </td>
152
+ </tr>
153
+ </table>
154
+ </td>
155
+ </tr>
156
+ <tr>
157
+ <td width="50%" style="vertical-align: top;">
158
+ <table style="border: none;">
159
+ <tr style="border: none;">
160
+ <td width="120" style="vertical-align: top; border: none;">
161
+ <img src="https://cdn.worklage.com/playtura/screenshots/dino-jump.png" alt="Dino Jump" width="100"/>
162
+ </td>
163
+ <td style="vertical-align: top; border: none;">
164
+
165
+ **🦖 Dino Jump**
166
+ Chrome offline dino game - jump to avoid obstacles!
167
+
168
+ • Endless runner with tap-to-jump mechanics
169
+ • Collect stars for extra lives (max 3 lives)
170
+ • Game durations: easy 2 mins, medium 3 mins, hard 5 mins
171
+ • Dynamic ground height based on device offset (150px or 250px)
172
+ • Difficulty affects obstacle spawn rate and game speed
173
+
174
+ </td>
175
+ </tr>
176
+ </table>
177
+ </td>
178
+ <td width="50%" style="vertical-align: top;">
179
+ <table style="border: none;">
180
+ <tr style="border: none;">
181
+ <td width="120" style="vertical-align: top; border: none;">
182
+ <img src="https://cdn.worklage.com/playtura/screenshots/popit-fidget.png" alt="Popit Fidget" width="100"/>
183
+ </td>
184
+ <td style="vertical-align: top; border: none;">
185
+
186
+ **🫧 Popit Fidget**
187
+ Pop satisfying bubbles in this relaxing fidget toy game
188
+
189
+ • Relaxing bubble popping with satisfying sound effects
190
+ • Different bubble shapes and colors for variety
191
+ • Difficulty affects bubble responsiveness and patterns
192
+
193
+ </td>
194
+ </tr>
195
+ </table>
196
+ </td>
197
+ </tr>
198
+ <tr>
199
+ <td width="50%" style="vertical-align: top;">
200
+ <table style="border: none;">
201
+ <tr style="border: none;">
202
+ <td width="120" style="vertical-align: top; border: none;">
203
+ <img src="https://cdn.worklage.com/playtura/screenshots/whack-a-mole.png" alt="Whack A Mole" width="100"/>
204
+ </td>
205
+ <td style="vertical-align: top; border: none;">
206
+
207
+ **🐱 Whack A Mole**
208
+ Whack cute cats popping from holes - fast reflexes needed!
209
+
210
+ • Cat spawn intervals: easy 2000ms, medium 1500ms, hard 1000ms
211
+ • Cat visible duration: easy 2500ms, medium 2000ms, hard 1500ms
212
+ • Grid sizes: easy/medium 3x3, hard 4x4
213
+
214
+ </td>
215
+ </tr>
216
+ </table>
217
+ </td>
218
+ <td width="50%" style="vertical-align: top;">
219
+ <table style="border: none;">
220
+ <tr style="border: none;">
221
+ <td width="120" style="vertical-align: top; border: none;">
222
+ <img src="https://cdn.worklage.com/playtura/screenshots/balloon-blaster.png" alt="Balloon Blaster" width="100"/>
223
+ </td>
224
+ <td style="vertical-align: top; border: none;">
225
+
226
+ **🎈 Balloon Blaster**
227
+ Pop rising balloons before they escape - quick taps win!
228
+
229
+ • Fixed 60-second gameplay sessions
230
+ • Balloon spawn interval: 1200ms, rise speed: 0.08
231
+ • Physics-based balloon movement with particle effects
232
+
233
+ </td>
234
+ </tr>
235
+ </table>
236
+ </td>
237
+ </tr>
238
+ <tr>
239
+ <td width="50%" style="vertical-align: top;">
240
+ <table style="border: none;">
241
+ <tr style="border: none;">
242
+ <td width="120" style="vertical-align: top; border: none;">
243
+ <img src="https://cdn.worklage.com/playtura/screenshots/space-fighter.png" alt="Space Fighter" width="100"/>
244
+ </td>
245
+ <td style="vertical-align: top; border: none;">
246
+
247
+ **🚀 Space Fighter**
248
+ Pilot spaceship through asteroid fields in endless space
249
+
250
+ • Horizontal drag controls with smooth spacecraft movement
251
+ • Dynamic spacecraft positioning based on device offset
252
+ • Progressive difficulty with asteroid spawn intervals
253
+ • 1-second collision immunity after each hit
254
+ • Difficulty affects asteroid speed and spawn frequency
255
+
256
+ </td>
257
+ </tr>
258
+ </table>
259
+ </td>
260
+ <td width="50%" style="vertical-align: top;">
261
+ <table style="border: none;">
262
+ <tr style="border: none;">
263
+ <td width="120" style="vertical-align: top; border: none;">
264
+ <img src="https://cdn.worklage.com/playtura/screenshots/maze-runner.png" alt="Maze Runner" width="100"/>
265
+ </td>
266
+ <td style="vertical-align: top; border: none;">
267
+
268
+ **🧩 Maze Runner**
269
+ Navigate ball through mazes using tilt and physics controls
270
+
271
+ • Grid sizes: easy 8x8, medium 10x10, hard 12x12
272
+ • Procedurally generated mazes with intelligent pathfinding
273
+ • Game over modal only appears on maze completion (not on stop)
274
+ • White time display for better visibility
275
+ • Difficulty affects maze complexity and time limits
276
+
277
+ </td>
278
+ </tr>
279
+ </table>
280
+ </td>
281
+ </tr>
282
+ <tr>
283
+ <td width="50%" style="vertical-align: top;">
284
+ <table style="border: none;">
285
+ <tr style="border: none;">
286
+ <td width="120" style="vertical-align: top; border: none;">
287
+ <img src="https://cdn.worklage.com/playtura/screenshots/sliding-numbers.png" alt="Sliding Numbers" width="100"/>
288
+ </td>
289
+ <td style="vertical-align: top; border: none;">
290
+
291
+ **🔢 Sliding Numbers**
292
+ Solve the classic 15-puzzle with numbers
293
+
294
+ • Classic 15-puzzle with numbered tiles
295
+ • Grid sizes: easy 3x3, medium 4x4, hard 5x5
296
+ • Timer challenge to solve as fast as possible
297
+ • Smooth tile sliding animations
298
+
299
+ </td>
300
+ </tr>
301
+ </table>
302
+ </td>
303
+ <td width="50%" style="vertical-align: top;">
304
+ <table style="border: none;">
305
+ <tr style="border: none;">
306
+ <td width="120" style="vertical-align: top; border: none;">
307
+ <img src="https://cdn.worklage.com/playtura/screenshots/game-2048.png" alt="2048 Game" width="100"/>
308
+ </td>
309
+ <td style="vertical-align: top; border: none;">
310
+
311
+ **🎮 2048 Game**
312
+ Merge tiles to reach 2048 and beyond
313
+
314
+ • Swipe to merge tiles with same numbers
315
+ • Reach 2048 tile to win, continue for higher scores
316
+ • Undo moves feature for strategic gameplay
317
+ • Difficulty affects starting tile values and spawn rate
318
+
319
+ </td>
320
+ </tr>
321
+ </table>
322
+ </td>
323
+ </tr>
324
+ <tr>
325
+ <td width="50%" style="vertical-align: top;">
326
+ <table style="border: none;">
327
+ <tr style="border: none;">
328
+ <td width="120" style="vertical-align: top; border: none;">
329
+ <img src="https://cdn.worklage.com/playtura/screenshots/fruit-merger.png" alt="Fruit Merger" width="100"/>
330
+ </td>
331
+ <td style="vertical-align: top; border: none;">
332
+
333
+ **🍉 Fruit Merger**
334
+ Merge fruits to create bigger ones
335
+
336
+ • Merge fruits to create bigger ones (watermelon evolution)
337
+ • Physics-based dropping and merging mechanics
338
+ • Combo system for multiple merges
339
+ • Difficulty affects merge requirements and spawn rate
340
+
341
+ </td>
342
+ </tr>
343
+ </table>
344
+ </td>
345
+ <td width="50%" style="vertical-align: top;">
346
+ <table style="border: none;">
347
+ <tr style="border: none;">
348
+ <td width="120" style="vertical-align: top; border: none;">
349
+ <img src="https://cdn.worklage.com/playtura/screenshots/snake.png" alt="Snake & Eggs" width="100"/>
350
+ </td>
351
+ <td style="vertical-align: top; border: none;">
352
+
353
+ **🐍 Snake & Eggs**
354
+ Classic snake game with modern touch controls
355
+
356
+ • Classic snake gameplay with modern touch controls
357
+ • Swipe or tap to change direction
358
+ • Grow by eating food, avoid walls and yourself
359
+ • Difficulty affects snake speed and grid size
360
+
361
+ </td>
362
+ </tr>
363
+ </table>
364
+ </td>
365
+ </tr>
366
+ </table>
15
367
 
16
368
  ## 📦 Installation
17
369
 
@@ -33,12 +385,11 @@ npm install @shopify/react-native-skia react-native-reanimated react-native-gest
33
385
 
34
386
  Follow the installation guides for each peer dependency:
35
387
 
36
- - **[@shopify/react-native-skia](https://shopify.github.io/react-native-skia/docs/getting-started/installation)** - Graphics rendering
388
+ - **[@shopify/react-native-skia](https://shopify.github.io/react-native-skia/docs/getting-started/installation)** - Graphics
37
389
  - **[react-native-reanimated](https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/getting-started)** - Animations
38
390
  - **[react-native-gesture-handler](https://docs.swmansion.com/react-native-gesture-handler/docs/fundamentals/installation)** - Gestures
39
- - **[expo-speech](https://docs.expo.dev/versions/latest/sdk/speech/)** - Text-to-speech functionality
40
- - **[expo-haptics](https://docs.expo.dev/versions/latest/sdk/haptics/)** - Haptic feedback
41
- - **[react-native-worklets](https://github.com/margelo/react-native-worklets)** - JavaScript worklets for high-performance animations
391
+ - **[expo-speech](https://docs.expo.dev/versions/latest/sdk/speech/)** - Sounds
392
+ - **[expo-haptics](https://docs.expo.dev/versions/latest/sdk/haptics/)** - Haptic
42
393
 
43
394
  ## 🚀 Usage
44
395
 
@@ -92,10 +443,7 @@ export default function FruitNinjaScreen() {
92
443
  useLayoutEffect(() => {
93
444
  navigation.setOptions({
94
445
  headerRight: () => (
95
- <TouchableOpacity
96
- onPress={handleToggleSettingsModal}
97
- className="p-2"
98
- >
446
+ <TouchableOpacity className="p-2" onPress={handleToggleSettingsModal}>
99
447
  <Ionicons name="settings-outline" size={24} color={colors.text} />
100
448
  </TouchableOpacity>
101
449
  ),
@@ -116,19 +464,27 @@ All games use the same props interface:
116
464
 
117
465
  ```tsx
118
466
  // Import any game you want
119
- import {
120
- WhackAMole,
121
- PopitFidget,
122
- FruitNinja,
123
- MazeRunner,
124
- SpaceFighter,
125
- BalloonBlaster
467
+ import {
468
+ FruitNinja,
469
+ CandyCrush,
470
+ FlappyBird,
471
+ ColorsSort,
472
+ DinoJump,
473
+ PopitFidget,
474
+ WhackAMole,
475
+ BalloonBlaster,
476
+ SpaceFighter,
477
+ MazeRunner,
478
+ SlidingNumbers,
479
+ Game2048,
480
+ FruitMerger,
481
+ Snake
126
482
  } from 'react-native-games';
127
483
 
128
484
  // All games accept the same props:
129
- <GameComponent
130
- settings={settings}
131
- onSettingsChange={handleSettingsChange}
485
+ <GameComponent
486
+ settings={settings}
487
+ onSettingsChange={handleSettingsChange}
132
488
  />
133
489
  ```
134
490
 
@@ -150,81 +506,148 @@ const DEFAULT_GAME_SETTINGS = {
150
506
  difficulty: 'medium',
151
507
  enableSounds: true,
152
508
  enableHaptics: true,
509
+ offset: 0,
153
510
  };
154
511
  ```
155
512
 
156
- #### Game-Specific Behaviors
513
+ ### Game Settings
157
514
 
158
- **Whack A Mole**
159
- - Cat spawn intervals: easy 2000ms, medium 1500ms, hard 1000ms
160
- - Cat visible duration: easy 2500ms, medium 2000ms, hard 1500ms
161
- - Grid sizes: easy/medium 3x3, hard 4x4
515
+ Each game includes built-in settings screens with a unified, simplified interface:
162
516
 
163
- **Popit Fidget**
164
- - Relaxing bubble popping with satisfying sound effects
165
- - Different bubble shapes and colors for variety
166
- - Difficulty affects bubble responsiveness and patterns
517
+ - **Difficulty Levels**: Easy, Medium, Hard - each game has custom difficulty descriptions and behaviors
518
+ - **Sound Effects**: Toggle audio feedback on/off
519
+ - **Haptic Feedback**: Toggle vibration feedback on/off
167
520
 
168
- **Fruit Ninja**
169
- - Fixed 60-second gameplay sessions
170
- - Physics-based slicing with particle effects and combo system
171
- - Difficulty affects fruit spawn rate and bomb frequency
521
+ All games use a centralized settings system for consistency and ease of maintenance. Game durations and difficulty behaviors are customized per game for optimal gameplay experience.
172
522
 
173
- **Space Fighter**
174
- - Progressive difficulty with asteroid spawn intervals
175
- - Horizontal drag controls with collision immunity system
176
- - Difficulty affects asteroid speed and spawn frequency
523
+ ## 📚 API Reference
177
524
 
178
- **Maze Runner**
179
- - Grid sizes: easy 8x8, medium 10x10, hard 12x12
180
- - Procedurally generated mazes with intelligent pathfinding
181
- - Difficulty affects maze complexity and time limits
525
+ ### Exported Constants & Types
182
526
 
183
- **Balloon Blaster**
184
- - Fixed 60-second gameplay sessions
185
- - Balloon spawn interval: 1200ms, rise speed: 0.08
186
- - Physics-based balloon movement with particle effects
527
+ ```tsx
528
+ import {
529
+ // Game IDs Enum
530
+ GAME_IDS,
531
+
532
+ // Default Settings
533
+ DEFAULT_GAME_SETTINGS,
534
+
535
+ // Games List & Mapping
536
+ GAMES_LIST,
537
+ GAMES_MAPPING,
538
+
539
+ // TypeScript Types
540
+ type GameSettings,
541
+ type GameProps,
542
+ type GameDefinition,
543
+ type GameComponent,
544
+
545
+ // All Game Components
546
+ FruitNinja,
547
+ CandyCrush,
548
+ FlappyBird,
549
+ ColorsSort,
550
+ DinoJump,
551
+ PopitFidget,
552
+ WhackAMole,
553
+ BalloonBlaster,
554
+ SpaceFighter,
555
+ MazeRunner,
556
+ SlidingNumbers,
557
+ Game2048,
558
+ FruitMerger,
559
+ Snake
560
+ } from 'react-native-games';
561
+ ```
187
562
 
188
- ### Game Settings
563
+ ### GAME_IDS Enum
189
564
 
190
- Each game includes built-in settings screens with a unified, simplified interface:
565
+ All available game identifiers:
191
566
 
192
- - **Difficulty Levels**: Easy, Medium, Hard - each game has custom difficulty descriptions and behaviors
193
- - **Sound Effects**: Toggle audio feedback on/off
194
- - **Haptic Feedback**: Toggle vibration feedback on/off
567
+ ```tsx
568
+ GAME_IDS.FRUIT_NINJA // 'fruit-ninja'
569
+ GAME_IDS.CANDY_CRUSH // 'candy-crush'
570
+ GAME_IDS.FLAPPY_BIRD // 'flappy-bird'
571
+ GAME_IDS.COLORS_SORT // 'colors-sort'
572
+ GAME_IDS.DINO_JUMP // 'dino-jump'
573
+ GAME_IDS.POPIT_FIDGET // 'popit-fidget'
574
+ GAME_IDS.WHACK_A_MOLE // 'whack-a-mole'
575
+ GAME_IDS.BALLOON_BLASTER // 'balloon-blaster'
576
+ GAME_IDS.SPACE_FIGHTER // 'space-fighter'
577
+ GAME_IDS.MAZE_RUNNER // 'maze-runner'
578
+ GAME_IDS.SLIDING_NUMBERS // 'sliding-numbers'
579
+ GAME_IDS.GAME_2048 // 'game-2048'
580
+ GAME_IDS.FRUIT_MERGER // 'fruit-merger'
581
+ GAME_IDS.SNAKE // 'snake'
582
+ ```
195
583
 
196
- All games use a centralized settings system for consistency and ease of maintenance. Game durations and difficulty behaviors are customized per game for optimal gameplay experience.
584
+ ### DEFAULT_GAME_SETTINGS
197
585
 
198
- ## 🎨 Features
586
+ Default configuration for all games:
199
587
 
200
- ### 🚀 **High Performance**
201
- - Built with React Native Skia for 60fps gameplay
202
- - Optimized animations using Reanimated 3 with worklets
203
- - Delta time physics loops for consistent performance
204
- - React.memo optimizations and efficient state management
205
- - Minimal re-renders with direct store subscriptions
588
+ ```tsx
589
+ const DEFAULT_GAME_SETTINGS = {
590
+ isVisible: false, // Settings modal visibility
591
+ difficulty: 'medium', // Game difficulty level
592
+ enableSounds: true, // Audio feedback enabled
593
+ enableHaptics: true, // Haptic feedback enabled
594
+ offset: 0, // Top offset for notch/status bar
595
+ };
206
596
 
207
- ### 🎵 **Rich Audio & Haptics**
208
- - Sound effects and speech synthesis
209
- - Haptic feedback for immersive experience
210
- - Configurable audio settings
597
+ // Example: Custom settings with offset
598
+ const customSettings = {
599
+ ...DEFAULT_GAME_SETTINGS,
600
+ offset: 50, // Moves game elements 50px down from top
601
+ };
602
+ ```
211
603
 
212
- ### 🎯 **Customizable**
213
- - Multiple difficulty levels
214
- - Adjustable game parameters
215
- - Persistent settings storage
604
+ ### GAMES_LIST
605
+
606
+ Array of all game definitions with metadata:
607
+
608
+ ```tsx
609
+ // GAMES_LIST is an array of GameDefinition objects
610
+ GAMES_LIST.forEach(game => {
611
+ console.log(game.id); // GAME_IDS enum value
612
+ console.log(game.title); // Display title
613
+ console.log(game.description); // Game description
614
+ console.log(game.component); // React component
615
+ });
616
+
617
+ // Example: Find a specific game
618
+ const fruitNinja = GAMES_LIST.find(g => g.id === GAME_IDS.FRUIT_NINJA);
619
+ ```
216
620
 
217
- ### 📱 **Cross-Platform**
218
- - iOS and Android support
219
- - Consistent performance across devices
220
- - Responsive design for different screen sizes
221
-
222
- ### 🎮 **Game Features**
223
- - **Physics Simulation**: Realistic movement and collisions
224
- - **Particle Systems**: Visual effects and animations
225
- - **Procedural Generation**: Dynamic content (mazes, obstacles)
226
- - **Score Systems**: Leaderboards and achievements
227
- - **Progressive Difficulty**: Adaptive challenge levels
621
+ ### GAMES_MAPPING
622
+
623
+ Object mapping game IDs to their components:
624
+
625
+ ```tsx
626
+ // Access game component by ID
627
+ const GameComponent = GAMES_MAPPING[GAME_IDS.FRUIT_NINJA];
628
+
629
+ // Render dynamically
630
+ <GameComponent settings={settings} onSettingsChange={handleChange} />
631
+ ```
632
+
633
+ ### TypeScript Types
634
+
635
+ ```tsx
636
+ // Game settings interface
637
+ interface GameSettings {
638
+ isVisible: boolean; // Settings modal visibility
639
+ difficulty: 'easy' | 'medium' | 'hard';
640
+ enableSounds: boolean; // Audio feedback
641
+ enableHaptics: boolean; // Haptic feedback
642
+ offset?: number; // Optional padding from top (default: 0)
643
+ }
644
+
645
+ // Game component props
646
+ interface GameProps {
647
+ settings?: GameSettings;
648
+ onSettingsChange?: (settings: GameSettings) => void;
649
+ }
650
+ ```
228
651
 
229
652
  ## 📄 License
230
653