react-native-games 1.0.0 → 1.2.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 (212) hide show
  1. package/README.md +80 -368
  2. package/lib/module/games/balloon-blaster/BalloonBlaster.js +1 -167
  3. package/lib/module/games/balloon-blaster/BalloonBlaster.js.map +1 -1
  4. package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js +1 -182
  5. package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js.map +1 -1
  6. package/lib/module/games/balloon-blaster/BalloonBlasterService.js +1 -318
  7. package/lib/module/games/balloon-blaster/BalloonBlasterStore.js +1 -183
  8. package/lib/module/games/balloon-blaster/components/BalloonComponent.js +1 -237
  9. package/lib/module/games/balloon-blaster/components/GameArea.js +1 -156
  10. package/lib/module/games/balloon-blaster/components/GameBackground.js +1 -476
  11. package/lib/module/games/balloon-blaster/components/ScoreBoard.js +1 -112
  12. package/lib/module/games/balloon-blaster/components/ScoreBoard.js.map +1 -1
  13. package/lib/module/games/balloon-blaster/components/index.js +1 -7
  14. package/lib/module/games/candy-crush/CandyCrush.js +1 -131
  15. package/lib/module/games/candy-crush/CandyCrush.js.map +1 -1
  16. package/lib/module/games/candy-crush/CandyCrushConstants.js +1 -125
  17. package/lib/module/games/candy-crush/CandyCrushConstants.js.map +1 -1
  18. package/lib/module/games/candy-crush/CandyCrushService.js +1 -370
  19. package/lib/module/games/candy-crush/CandyCrushStore.js +1 -303
  20. package/lib/module/games/candy-crush/components/CandyItem.js +1 -191
  21. package/lib/module/games/candy-crush/components/GameBackground.js +1 -85
  22. package/lib/module/games/candy-crush/components/GameGrid.js +1 -314
  23. package/lib/module/games/candy-crush/components/ScoreBoard.js +1 -79
  24. package/lib/module/games/candy-crush/components/index.js +1 -7
  25. package/lib/module/games/candy-crush/index.js +1 -6
  26. package/lib/module/games/colors-sort/ColorsSort.js +1 -143
  27. package/lib/module/games/colors-sort/ColorsSort.js.map +1 -1
  28. package/lib/module/games/colors-sort/ColorsSortConstants.js +1 -72
  29. package/lib/module/games/colors-sort/ColorsSortConstants.js.map +1 -1
  30. package/lib/module/games/colors-sort/ColorsSortService.js +1 -255
  31. package/lib/module/games/colors-sort/ColorsSortStore.js +1 -257
  32. package/lib/module/games/colors-sort/ColorsSortStore.js.map +1 -1
  33. package/lib/module/games/colors-sort/components/ColorContainer.js +1 -140
  34. package/lib/module/games/colors-sort/components/GameBackground.js +1 -135
  35. package/lib/module/games/colors-sort/components/ScoreBoard.js +1 -70
  36. package/lib/module/games/colors-sort/components/index.js +1 -6
  37. package/lib/module/games/dino-jump/DinoJump.js +1 -209
  38. package/lib/module/games/dino-jump/DinoJump.js.map +1 -1
  39. package/lib/module/games/dino-jump/DinoJumpConstants.js +1 -189
  40. package/lib/module/games/dino-jump/DinoJumpConstants.js.map +1 -1
  41. package/lib/module/games/dino-jump/DinoJumpService.js +1 -270
  42. package/lib/module/games/dino-jump/DinoJumpStore.js +1 -381
  43. package/lib/module/games/dino-jump/components/DinoSprite.js +1 -418
  44. package/lib/module/games/dino-jump/components/DinoSprite.js.map +1 -1
  45. package/lib/module/games/dino-jump/components/GameArea.js +1 -68
  46. package/lib/module/games/dino-jump/components/GameBackground.js +1 -444
  47. package/lib/module/games/dino-jump/components/ObstacleSprite.js +1 -306
  48. package/lib/module/games/dino-jump/components/ScoreBoard.js +1 -105
  49. package/lib/module/games/dino-jump/components/ScoreBoard.js.map +1 -1
  50. package/lib/module/games/dino-jump/components/StarSprite.js +1 -45
  51. package/lib/module/games/dino-jump/components/index.js +1 -9
  52. package/lib/module/games/flappy-bird/FlappyBird.js +1 -126
  53. package/lib/module/games/flappy-bird/FlappyBird.js.map +1 -1
  54. package/lib/module/games/flappy-bird/FlappyBirdConstants.js +1 -90
  55. package/lib/module/games/flappy-bird/FlappyBirdConstants.js.map +1 -1
  56. package/lib/module/games/flappy-bird/FlappyBirdStore.js +1 -300
  57. package/lib/module/games/flappy-bird/components/Bird.js +1 -87
  58. package/lib/module/games/flappy-bird/components/GameArea.js +1 -87
  59. package/lib/module/games/flappy-bird/components/GameBackground.js +1 -79
  60. package/lib/module/games/flappy-bird/components/Pipes.js +1 -172
  61. package/lib/module/games/flappy-bird/components/ScoreBoard.js +1 -73
  62. package/lib/module/games/flappy-bird/components/index.js +1 -8
  63. package/lib/module/games/fruit-merger/FruitMerger.js +1 -120
  64. package/lib/module/games/fruit-merger/FruitMerger.js.map +1 -1
  65. package/lib/module/games/fruit-merger/FruitMergerConstants.js +1 -119
  66. package/lib/module/games/fruit-merger/FruitMergerConstants.js.map +1 -1
  67. package/lib/module/games/fruit-merger/FruitMergerService.js +1 -13
  68. package/lib/module/games/fruit-merger/FruitMergerStore.js +1 -315
  69. package/lib/module/games/fruit-merger/components/FruitItem.js +1 -102
  70. package/lib/module/games/fruit-merger/components/GameArea.js +1 -103
  71. package/lib/module/games/fruit-merger/components/GameBackground.js +1 -498
  72. package/lib/module/games/fruit-merger/components/ScoreBoard.js +1 -58
  73. package/lib/module/games/fruit-merger/components/index.js +1 -7
  74. package/lib/module/games/fruit-ninja/FruitNinja.js +1 -134
  75. package/lib/module/games/fruit-ninja/FruitNinja.js.map +1 -1
  76. package/lib/module/games/fruit-ninja/FruitNinjaConstants.js +1 -148
  77. package/lib/module/games/fruit-ninja/FruitNinjaConstants.js.map +1 -1
  78. package/lib/module/games/fruit-ninja/FruitNinjaService.js +1 -311
  79. package/lib/module/games/fruit-ninja/FruitNinjaStore.js +1 -191
  80. package/lib/module/games/fruit-ninja/FruitNinjaStore.js.map +1 -1
  81. package/lib/module/games/fruit-ninja/components/FruitComponent.js +1 -99
  82. package/lib/module/games/fruit-ninja/components/GameArea.js +1 -215
  83. package/lib/module/games/fruit-ninja/components/GameBackground.js +1 -1267
  84. package/lib/module/games/fruit-ninja/components/ScoreBoard.js +1 -92
  85. package/lib/module/games/fruit-ninja/components/ScoreBoard.js.map +1 -1
  86. package/lib/module/games/fruit-ninja/components/index.js +1 -7
  87. package/lib/module/games/game-2048/Game2048.js +1 -149
  88. package/lib/module/games/game-2048/Game2048.js.map +1 -1
  89. package/lib/module/games/game-2048/Game2048Constants.js +1 -263
  90. package/lib/module/games/game-2048/Game2048Constants.js.map +1 -1
  91. package/lib/module/games/game-2048/Game2048Service.js +1 -457
  92. package/lib/module/games/game-2048/Game2048Store.js +1 -236
  93. package/lib/module/games/game-2048/components/GameBackground.js +1 -247
  94. package/lib/module/games/game-2048/components/GameGrid.js +1 -139
  95. package/lib/module/games/game-2048/components/GameTile.js +1 -72
  96. package/lib/module/games/game-2048/components/ScoreBoard.js +1 -52
  97. package/lib/module/games/game-2048/components/index.js +1 -7
  98. package/lib/module/games/maze-runner/MazeRunner.js +1 -267
  99. package/lib/module/games/maze-runner/MazeRunner.js.map +1 -1
  100. package/lib/module/games/maze-runner/MazeRunnerConstants.js +1 -100
  101. package/lib/module/games/maze-runner/MazeRunnerConstants.js.map +1 -1
  102. package/lib/module/games/maze-runner/MazeRunnerService.js +1 -586
  103. package/lib/module/games/maze-runner/components/EnhancedBallComponent.js +1 -150
  104. package/lib/module/games/maze-runner/components/EnhancedGameArea.js +1 -370
  105. package/lib/module/games/maze-runner/components/GameBackground.js +1 -175
  106. package/lib/module/games/maze-runner/components/ScoreBoard.js +1 -61
  107. package/lib/module/games/maze-runner/components/SkiaPipeComponent.js +1 -209
  108. package/lib/module/games/maze-runner/components/StaticGameBackground.js +1 -169
  109. package/lib/module/games/maze-runner/components/WallComponent.js +1 -91
  110. package/lib/module/games/maze-runner/components/index.js +1 -8
  111. package/lib/module/games/popit-fidget/PopitFidget.js +1 -285
  112. package/lib/module/games/popit-fidget/PopitFidget.js.map +1 -1
  113. package/lib/module/games/popit-fidget/PopitFidgetConstants.js +1 -113
  114. package/lib/module/games/popit-fidget/PopitFidgetConstants.js.map +1 -1
  115. package/lib/module/games/popit-fidget/PopitFidgetService.js +1 -132
  116. package/lib/module/games/popit-fidget/PopitFidgetStore.js +1 -125
  117. package/lib/module/games/popit-fidget/components/BubbleComponent.js +1 -198
  118. package/lib/module/games/popit-fidget/components/FidgetGrid.js +1 -165
  119. package/lib/module/games/popit-fidget/components/GameBackground.js +1 -177
  120. package/lib/module/games/popit-fidget/components/ScoreBoard.js +1 -61
  121. package/lib/module/games/popit-fidget/components/index.js +1 -7
  122. package/lib/module/games/sliding-numbers/SlidingNumbers.js +1 -159
  123. package/lib/module/games/sliding-numbers/SlidingNumbers.js.map +1 -1
  124. package/lib/module/games/sliding-numbers/SlidingNumbersConstants.js +1 -207
  125. package/lib/module/games/sliding-numbers/SlidingNumbersConstants.js.map +1 -1
  126. package/lib/module/games/sliding-numbers/SlidingNumbersService.js +1 -248
  127. package/lib/module/games/sliding-numbers/SlidingNumbersStore.js +1 -274
  128. package/lib/module/games/sliding-numbers/components/GameBackground.js +1 -259
  129. package/lib/module/games/sliding-numbers/components/NumbersGrid.js +1 -174
  130. package/lib/module/games/sliding-numbers/components/NumbersTile.js +1 -116
  131. package/lib/module/games/sliding-numbers/components/ScoreBoard.js +1 -64
  132. package/lib/module/games/sliding-numbers/components/index.js +1 -7
  133. package/lib/module/games/snake/Snake.js +1 -189
  134. package/lib/module/games/snake/Snake.js.map +1 -1
  135. package/lib/module/games/snake/SnakeConstants.js +1 -138
  136. package/lib/module/games/snake/SnakeConstants.js.map +1 -1
  137. package/lib/module/games/snake/SnakeService.js +1 -148
  138. package/lib/module/games/snake/SnakeStore.js +1 -182
  139. package/lib/module/games/snake/components/GameBackground.js +1 -221
  140. package/lib/module/games/snake/components/GameGrid.js +1 -153
  141. package/lib/module/games/snake/components/ScoreBoard.js +1 -51
  142. package/lib/module/games/snake/components/index.js +1 -6
  143. package/lib/module/games/snake/index.js +1 -6
  144. package/lib/module/games/space-fighter/SpaceFighter.js +1 -165
  145. package/lib/module/games/space-fighter/SpaceFighter.js.map +1 -1
  146. package/lib/module/games/space-fighter/SpaceFighterConstants.js +1 -108
  147. package/lib/module/games/space-fighter/SpaceFighterConstants.js.map +1 -1
  148. package/lib/module/games/space-fighter/SpaceFighterService.js +1 -326
  149. package/lib/module/games/space-fighter/SpaceFighterStore.js +1 -209
  150. package/lib/module/games/space-fighter/components/AsteroidComponent.js +1 -113
  151. package/lib/module/games/space-fighter/components/GameArea.js +1 -289
  152. package/lib/module/games/space-fighter/components/GameBackground.js +1 -239
  153. package/lib/module/games/space-fighter/components/ScoreBoard.js +1 -136
  154. package/lib/module/games/space-fighter/components/Spacecraft3D.js +1 -202
  155. package/lib/module/games/space-fighter/components/SpacecraftPath.js +1 -52
  156. package/lib/module/games/space-fighter/components/index.js +1 -9
  157. package/lib/module/games/whack-a-mole/WhackAMole.js +1 -270
  158. package/lib/module/games/whack-a-mole/WhackAMole.js.map +1 -1
  159. package/lib/module/games/whack-a-mole/WhackAMoleConstants.js +1 -115
  160. package/lib/module/games/whack-a-mole/WhackAMoleConstants.js.map +1 -1
  161. package/lib/module/games/whack-a-mole/WhackAMoleService.js +1 -120
  162. package/lib/module/games/whack-a-mole/WhackAMoleStore.js +1 -172
  163. package/lib/module/games/whack-a-mole/components/GameBackground.js +1 -477
  164. package/lib/module/games/whack-a-mole/components/GameGrid.js +1 -97
  165. package/lib/module/games/whack-a-mole/components/GameHole.js +1 -196
  166. package/lib/module/games/whack-a-mole/components/MoleCharacter.js +1 -241
  167. package/lib/module/games/whack-a-mole/components/ScoreBoard.js +1 -67
  168. package/lib/module/games/whack-a-mole/components/ScoreBoard.js.map +1 -1
  169. package/lib/module/games/whack-a-mole/components/index.js +1 -8
  170. package/lib/module/helpers/AnimationFrame.js +1 -120
  171. package/lib/module/helpers/AnimationTracker.js +1 -89
  172. package/lib/module/helpers/ErrorHandler.js +1 -269
  173. package/lib/module/helpers/GameControlButton.js +1 -219
  174. package/lib/module/helpers/GameOverModal.js +1 -144
  175. package/lib/module/helpers/GameOverModal.js.map +1 -1
  176. package/lib/module/helpers/GameSettingsModal.js +1 -287
  177. package/lib/module/helpers/ParticleBlast.js +1 -134
  178. package/lib/module/helpers/ScoreBoardContainer.js +1 -34
  179. package/lib/module/helpers/index.js +1 -12
  180. package/lib/module/index.js +1 -22
  181. package/lib/module/services/GamesConstants.js +1 -178
  182. package/lib/module/services/GamesService.js +1 -112
  183. package/lib/module/services/GamesService.js.map +1 -1
  184. package/lib/module/services/HapticsService.js +1 -77
  185. package/lib/module/services/SoundsService.js +1 -302
  186. package/lib/module/services/UtilsService.js +1 -32
  187. package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts.map +1 -1
  188. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterConstants.d.ts +1 -1
  189. package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts.map +1 -1
  190. package/lib/typescript/src/games/candy-crush/CandyCrushConstants.d.ts +7 -7
  191. package/lib/typescript/src/games/colors-sort/ColorsSort.d.ts.map +1 -1
  192. package/lib/typescript/src/games/colors-sort/ColorsSortStore.d.ts.map +1 -1
  193. package/lib/typescript/src/games/dino-jump/DinoJump.d.ts.map +1 -1
  194. package/lib/typescript/src/games/dino-jump/components/DinoSprite.d.ts.map +1 -1
  195. package/lib/typescript/src/games/flappy-bird/FlappyBird.d.ts.map +1 -1
  196. package/lib/typescript/src/games/flappy-bird/FlappyBirdConstants.d.ts.map +1 -1
  197. package/lib/typescript/src/games/fruit-merger/FruitMerger.d.ts.map +1 -1
  198. package/lib/typescript/src/games/fruit-merger/FruitMergerConstants.d.ts.map +1 -1
  199. package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts.map +1 -1
  200. package/lib/typescript/src/games/fruit-ninja/components/ScoreBoard.d.ts.map +1 -1
  201. package/lib/typescript/src/games/game-2048/Game2048.d.ts.map +1 -1
  202. package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts.map +1 -1
  203. package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts.map +1 -1
  204. package/lib/typescript/src/games/sliding-numbers/SlidingNumbers.d.ts.map +1 -1
  205. package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts.map +1 -1
  206. package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts.map +1 -1
  207. package/lib/typescript/src/games/whack-a-mole/WhackAMoleConstants.d.ts +1 -1
  208. package/lib/typescript/src/games/whack-a-mole/components/ScoreBoard.d.ts.map +1 -1
  209. package/lib/typescript/src/helpers/GameOverModal.d.ts +3 -0
  210. package/lib/typescript/src/helpers/GameOverModal.d.ts.map +1 -1
  211. package/lib/typescript/src/services/GamesConstants.d.ts +7 -7
  212. package/package.json +2 -2
package/README.md CHANGED
@@ -1,369 +1,81 @@
1
1
  # 🎮 react-native-games
2
2
 
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>
3
+ **react-native-games** is a collection of 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
+ <div style="display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin: 20px 0;">
6
+
7
+ <div>
8
+ <strong>🚀 High Performance</strong><br/>
9
+ 60fps gameplay with React Native Skia<br/>
10
+ Optimized animations using Reanimated 3<br/>
11
+ Delta time physics loops<br/>
12
+ React.memo optimizations<br/>
13
+ • Minimal re-renders with direct store subscriptions
14
+ </div>
15
+
16
+ <div>
17
+ <strong>📱 Cross-Platform</strong><br/>
18
+ • iOS, Android, and Web support<br/>
19
+ Consistent performance across platforms<br/>
20
+ Responsive design for all screen sizes<br/>
21
+ Dynamic offset handling for notches<br/>
22
+ Adaptive UI components
23
+ </div>
24
+
25
+ <div>
26
+ <strong>🎵 Rich Audio & Haptics</strong><br/>
27
+ Sound effects and speech synthesis<br/>
28
+ • Haptic feedback for immersive experience<br/>
29
+ Configurable audio settings<br/>
30
+ • Per-game sound customization
31
+ </div>
32
+
33
+ <div>
34
+ <strong>🎯 Customizable</strong><br/>
35
+ • Multiple difficulty levels<br/>
36
+ • Adjustable game parameters<br/>
37
+ Persistent settings storage<br/>
38
+ Unified settings interface
39
+ </div>
40
+
41
+ <div>
42
+ <strong>🎮 Game Features</strong><br/>
43
+ Physics simulation and collisions<br/>
44
+ Particle systems and visual effects<br/>
45
+ • Procedural generation (mazes, obstacles)<br/>
46
+ • Score systems and achievements<br/>
47
+ Progressive difficulty scaling
48
+ </div>
49
+
50
+ <div>
51
+ <strong>🛠️ Developer Friendly</strong><br/>
52
+ TypeScript support throughout<br/>
53
+ Shared components (GameControlButton, ScoreBoard)<br/>
54
+ Consistent API across all games<br/>
55
+ • Easy integration and customization<br/>
56
+ • Comprehensive documentation
57
+ </div>
58
+
59
+ </div>
69
60
 
70
61
  ## 🎯 Available Games
71
62
 
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>
63
+ | Screenshot | Game Details |
64
+ |------------|--------------|
65
+ | <img src="https://cdn.worklage.com/playtura/screenshots/fruit-ninja.png" alt="Fruit Ninja" width="120"/> | **🍎 Fruit Ninja**<br/>Slice flying fruits with finger swipes - avoid the bombs!<br/><br/>• Fixed 60-second gameplay sessions<br/>• Physics-based slicing with particle effects and combo system<br/>• Difficulty affects fruit spawn rate and bomb frequency |
66
+ | <img src="https://cdn.worklage.com/playtura/screenshots/candy-crush.png" alt="Candy Crush" width="120"/> | **🍬 Candy Crush**<br/>Match colorful candies in this puzzle game<br/><br/>• Match-3 puzzle with colorful candies<br/>• Create special candies with 4+ matches<br/>• Cascading combos and satisfying animations<br/>• Difficulty affects level objectives and move limits |
67
+ | <img src="https://cdn.worklage.com/playtura/screenshots/flappy-bird.png" alt="Flappy Bird" width="120"/> | **🐦 Flappy Bird**<br/>Navigate bird through pipes with precise timing<br/><br/>• Classic tap-to-flap mechanics with gravity physics<br/>• Navigate through pipes with pixel-perfect collision<br/>• Progressive difficulty with increasing pipe speed<br/>• Difficulty affects pipe gap size and spawn frequency |
68
+ | <img src="https://cdn.worklage.com/playtura/screenshots/colors-sort.png" alt="Colors Sort" width="120"/> | **🎨 Colors Sort**<br/>Sort colored liquids into matching tubes<br/><br/>• Sort colored liquids into matching tubes<br/>• Logic puzzle with increasing complexity<br/>• Satisfying pour animations and sound effects<br/>• Difficulty affects number of tubes and colors |
69
+ | <img src="https://cdn.worklage.com/playtura/screenshots/dino-jump.png" alt="Dino Jump" width="120"/> | **🦖 Dino Jump**<br/>Chrome offline dino game - jump to avoid obstacles!<br/><br/>• Endless runner with tap-to-jump mechanics<br/>• Collect stars for extra lives (max 3 lives)<br/>• Game durations: easy 2 mins, medium 3 mins, hard 5 mins<br/>• Dynamic ground height based on device offset (150px or 250px)<br/>• Difficulty affects obstacle spawn rate and game speed |
70
+ | <img src="https://cdn.worklage.com/playtura/screenshots/popit-fidget.png" alt="Popit Fidget" width="120"/> | **🫧 Popit Fidget**<br/>Pop satisfying bubbles in this relaxing fidget toy game<br/><br/>• Relaxing bubble popping with satisfying sound effects<br/>• Different bubble shapes and colors for variety<br/>• Difficulty affects bubble responsiveness and patterns |
71
+ | <img src="https://cdn.worklage.com/playtura/screenshots/whack-a-mole.png" alt="Whack A Mole" width="120"/> | **🐱 Whack A Mole**<br/>Whack cute cats popping from holes - fast reflexes needed!<br/><br/>• Cat spawn intervals: easy 2000ms, medium 1500ms, hard 1000ms<br/>• Cat visible duration: easy 2500ms, medium 2000ms, hard 1500ms<br/>• Grid sizes: easy/medium 3x3, hard 4x4 |
72
+ | <img src="https://cdn.worklage.com/playtura/screenshots/balloon-blaster.png" alt="Balloon Blaster" width="120"/> | **🎈 Balloon Blaster**<br/>Pop rising balloons before they escape - quick taps win!<br/><br/>• Fixed 60-second gameplay sessions<br/>• Balloon spawn interval: 1200ms, rise speed: 0.08<br/>• Physics-based balloon movement with particle effects |
73
+ | <img src="https://cdn.worklage.com/playtura/screenshots/space-fighter.png" alt="Space Fighter" width="120"/> | **🚀 Space Fighter**<br/>Pilot spaceship through asteroid fields in endless space<br/><br/>• Horizontal drag controls with smooth spacecraft movement<br/>• Dynamic spacecraft positioning based on device offset<br/>• Progressive difficulty with asteroid spawn intervals<br/>• 1-second collision immunity after each hit<br/>• Difficulty affects asteroid speed and spawn frequency |
74
+ | <img src="https://cdn.worklage.com/playtura/screenshots/maze-runner.png" alt="Maze Runner" width="120"/> | **🧩 Maze Runner**<br/>Navigate ball through mazes using tilt and physics controls<br/><br/>• Grid sizes: easy 8x8, medium 10x10, hard 12x12<br/>• Procedurally generated mazes with intelligent pathfinding<br/>• Game over modal only appears on maze completion (not on stop)<br/>• White time display for better visibility<br/>• Difficulty affects maze complexity and time limits |
75
+ | <img src="https://cdn.worklage.com/playtura/screenshots/sliding-numbers.png" alt="Sliding Numbers" width="120"/> | **🔢 Sliding Numbers**<br/>Solve the classic 15-puzzle with numbers<br/><br/>• Classic 15-puzzle with numbered tiles<br/>• Grid sizes: easy 3x3, medium 4x4, hard 5x5<br/>• Timer challenge to solve as fast as possible<br/>• Smooth tile sliding animations |
76
+ | <img src="https://cdn.worklage.com/playtura/screenshots/game-2048.png" alt="2048 Game" width="120"/> | **🎮 2048 Game**<br/>Merge tiles to reach 2048 and beyond<br/><br/>• Swipe to merge tiles with same numbers<br/>• Reach 2048 tile to win, continue for higher scores<br/>• Undo moves feature for strategic gameplay<br/>• Difficulty affects starting tile values and spawn rate |
77
+ | <img src="https://cdn.worklage.com/playtura/screenshots/fruit-merger.png" alt="Fruit Merger" width="120"/> | **🍉 Fruit Merger**<br/>Merge fruits to create bigger ones<br/><br/>• Merge fruits to create bigger ones (watermelon evolution)<br/>• Physics-based dropping and merging mechanics<br/>• Combo system for multiple merges<br/>• Difficulty affects merge requirements and spawn rate |
78
+ | <img src="https://cdn.worklage.com/playtura/screenshots/snake.png" alt="Snake & Eggs" width="120"/> | **🐍 Snake & Eggs**<br/>Classic snake game with modern touch controls<br/><br/>• Classic snake gameplay with modern touch controls<br/>• Swipe or tap to change direction<br/>• Grow by eating food, avoid walls and yourself<br/>• Difficulty affects snake speed and grid size |
367
79
 
368
80
  ## 📦 Installation
369
81
 
@@ -389,7 +101,7 @@ Follow the installation guides for each peer dependency:
389
101
  - **[react-native-reanimated](https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/getting-started)** - Animations
390
102
  - **[react-native-gesture-handler](https://docs.swmansion.com/react-native-gesture-handler/docs/fundamentals/installation)** - Gestures
391
103
  - **[expo-speech](https://docs.expo.dev/versions/latest/sdk/speech/)** - Sounds
392
- - **[expo-haptics](https://docs.expo.dev/versions/latest/sdk/haptics/)** - Haptic
104
+ - **[expo-haptics](https://docs.expo.dev/versions/latest/sdk/haptics/)** - Haptics
393
105
 
394
106
  ## 🚀 Usage
395
107
 
@@ -400,14 +112,14 @@ For basic usage without settings persistence:
400
112
  ```tsx
401
113
  import React, { useState } from 'react';
402
114
  import { View } from 'react-native';
403
- import { DEFAULT_GAME_SETTINGS, BalloonBlaster } from 'react-native-games';
115
+ import { DEFAULT_GAME_SETTINGS, FruitNinja } from 'react-native-games';
404
116
 
405
117
  export default function GameScreen() {
406
118
  const [settings, setSettings] = useState(DEFAULT_GAME_SETTINGS);
407
119
 
408
120
  return (
409
121
  <View style={{ flex: 1 }}>
410
- <BalloonBlaster settings={settings} onSettingsChange={setSettings} />
122
+ <FruitNinja settings={settings} onSettingsChange={setSettings} />
411
123
  </View>
412
124
  );
413
125
  }
@@ -528,20 +240,20 @@ All games use a centralized settings system for consistency and ease of maintena
528
240
  import {
529
241
  // Game IDs Enum
530
242
  GAME_IDS,
531
-
243
+
532
244
  // Default Settings
533
245
  DEFAULT_GAME_SETTINGS,
534
-
246
+
535
247
  // Games List & Mapping
536
248
  GAMES_LIST,
537
249
  GAMES_MAPPING,
538
-
250
+
539
251
  // TypeScript Types
540
252
  type GameSettings,
541
253
  type GameProps,
542
254
  type GameDefinition,
543
255
  type GameComponent,
544
-
256
+
545
257
  // All Game Components
546
258
  FruitNinja,
547
259
  CandyCrush,