react-native-games 1.1.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 +58 -7
  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
@@ -1,6 +1 @@
1
- "use strict";
2
-
3
- export * from "./ColorContainer.js";
4
- export * from "./ScoreBoard.js";
5
- export * from "./GameBackground.js";
6
- //# sourceMappingURL=index.js.map
1
+ "use strict";export * from "./ColorContainer.js";export * from "./ScoreBoard.js";export * from "./GameBackground.js";
@@ -1,209 +1 @@
1
- "use strict";
2
-
3
- import React, { useEffect, useMemo, useCallback, useRef } from 'react';
4
- import { View, StyleSheet } from 'react-native';
5
- import { GestureHandlerRootView } from 'react-native-gesture-handler';
6
- import { useDinoJumpStore, useIsPlaying, useIsGameOver, useScore } from "./DinoJumpStore.js";
7
- import { DinoJumpService } from "./DinoJumpService.js";
8
- import { GameBackground, GameArea, ScoreBoard } from "./components/index.js";
9
- import { GameControlButton, GameOverModal, ParticleBlast } from "../../helpers/index.js";
10
- import { GameSettingsModal } from "../../helpers/index.js";
11
- import { GAME_IDS, DEFAULT_GAME_SETTINGS } from "../../services/UtilsService.js";
12
- import { playSound, GAME_SOUNDS } from "../../services/SoundsService.js";
13
- import { playHaptic, HapticType } from "../../services/HapticsService.js";
14
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
15
- export const DinoJump = /*#__PURE__*/React.memo(({
16
- settings = DEFAULT_GAME_SETTINGS,
17
- onSettingsChange
18
- }) => {
19
- // ==================== STATE ====================
20
- const isPlaying = useIsPlaying();
21
- const isGameOver = useIsGameOver();
22
- const score = useScore();
23
-
24
- // ==================== STORE ACTIONS ====================
25
- const setOffset = useDinoJumpStore(state => state.setOffset);
26
- const initializeGame = useDinoJumpStore(state => state.initializeGame);
27
- const startGame = useDinoJumpStore(state => state.startGame);
28
- const stopGame = useDinoJumpStore(state => state.stopGame);
29
- const resetGame = useDinoJumpStore(state => state.resetGame);
30
-
31
- // Get offset from settings
32
- const offset = settings?.offset ?? 0;
33
-
34
- // Update offset in store when it changes
35
- useEffect(() => {
36
- setOffset(offset);
37
- }, [offset, setOffset]);
38
- const decrementTime = useDinoJumpStore(state => state.decrementTime);
39
- const updateDinosaur = useDinoJumpStore(state => state.updateDinosaur);
40
- const updateObstacles = useDinoJumpStore(state => state.updateObstacles);
41
- const updateClouds = useDinoJumpStore(state => state.updateClouds);
42
- const updateStars = useDinoJumpStore(state => state.updateStars);
43
- const updateGround = useDinoJumpStore(state => state.updateGround);
44
- const updateScore = useDinoJumpStore(state => state.updateScore);
45
- const updateSpeed = useDinoJumpStore(state => state.updateSpeed);
46
- const addObstacle = useDinoJumpStore(state => state.addObstacle);
47
- const addCloud = useDinoJumpStore(state => state.addCloud);
48
- const addStar = useDinoJumpStore(state => state.addStar);
49
- const checkCollisionsAction = useDinoJumpStore(state => state.checkCollisions);
50
- const collisionBlasts = useDinoJumpStore(state => state.collisionBlasts);
51
- const removeCollisionBlast = useDinoJumpStore(state => state.removeCollisionBlast);
52
-
53
- // Use ref to keep settings stable
54
- const settingsRef = useRef(settings);
55
- settingsRef.current = settings;
56
-
57
- // Wrap checkCollisions to pass settings
58
- const checkCollisions = useCallback(() => checkCollisionsAction(settingsRef.current), [checkCollisionsAction]);
59
-
60
- // ==================== CONFIGURATION ====================
61
- const difficulty = settings.difficulty;
62
- const gameService = useMemo(() => new DinoJumpService(), []);
63
-
64
- // ==================== EFFECTS ====================
65
- // Initialize game when difficulty changes
66
- useEffect(() => {
67
- initializeGame(difficulty);
68
- }, [difficulty, initializeGame]);
69
-
70
- // Game timer effect
71
- useEffect(() => {
72
- if (isPlaying) {
73
- gameService.startTimer(() => {
74
- decrementTime();
75
- });
76
- } else {
77
- gameService.stopTimer();
78
- }
79
- return () => {
80
- gameService.stopTimer();
81
- };
82
- }, [isPlaying, gameService, decrementTime]);
83
-
84
- // Physics loop effect
85
- useEffect(() => {
86
- // Always cleanup first to prevent multiple loops
87
- gameService.stopPhysicsLoop();
88
- gameService.stopObstacleSpawning();
89
- gameService.stopCloudSpawning();
90
- if (isPlaying && !isGameOver) {
91
- // Small delay to ensure cleanup is complete
92
- const startTimeout = setTimeout(() => {
93
- try {
94
- gameService.startPhysicsLoop(updateDinosaur, updateObstacles, updateClouds, updateStars, updateGround, updateScore, updateSpeed, checkCollisions, stopGame);
95
- gameService.startObstacleSpawning(addObstacle, difficulty, () => offset);
96
- gameService.startCloudSpawning(addCloud);
97
- gameService.startStarSpawning(addStar, () => offset);
98
- } catch (error) {
99
- console.error('Failed to start game loops:', error);
100
- stopGame();
101
- }
102
- }, 50);
103
- return () => {
104
- clearTimeout(startTimeout);
105
- gameService.stopPhysicsLoop();
106
- gameService.stopObstacleSpawning();
107
- gameService.stopCloudSpawning();
108
- };
109
- }
110
- return () => {
111
- gameService.stopPhysicsLoop();
112
- gameService.stopObstacleSpawning();
113
- gameService.stopCloudSpawning();
114
- };
115
- }, [isPlaying, isGameOver, gameService, updateDinosaur, updateObstacles, updateClouds, updateStars, updateGround, updateScore, updateSpeed, checkCollisions, stopGame, addObstacle, addCloud, addStar, difficulty]);
116
-
117
- // Cleanup on unmount
118
- useEffect(() => {
119
- return () => {
120
- gameService.cleanup();
121
- };
122
- }, [gameService]);
123
-
124
- // ==================== HANDLERS ====================
125
- const handleStartGame = useCallback(() => {
126
- startGame();
127
- playSound(GAME_SOUNDS.DINO_JUMP.START, settingsRef.current.enableSounds);
128
- playHaptic(HapticType.MEDIUM, settingsRef.current.enableHaptics);
129
- }, [startGame]);
130
- const handleStopGame = useCallback(() => {
131
- stopGame();
132
- }, [stopGame]);
133
- const handleResetGame = useCallback(() => {
134
- resetGame();
135
- initializeGame(difficulty);
136
- playHaptic(HapticType.LIGHT, settingsRef.current.enableHaptics);
137
- }, [resetGame, initializeGame, difficulty]);
138
-
139
- // Memoize GameControlButton props to prevent re-renders (CRITICAL)
140
- const gameControlButtonProps = useMemo(() => ({
141
- isPlaying,
142
- gameOver: isGameOver,
143
- onStartGame: handleStartGame,
144
- onStopGame: handleStopGame,
145
- startButtonText: "START RUNNING",
146
- stopButtonText: "STOP GAME",
147
- startButtonSubtext: "Tap to jump over cacti!",
148
- stopButtonSubtext: "End current game",
149
- startButtonColor: "#FF6347",
150
- stopButtonColor: "#dc2626",
151
- startButtonBorderColor: "#FF4500",
152
- stopButtonBorderColor: "#f87171"
153
- }), [isPlaying, isGameOver, handleStartGame, handleStopGame]);
154
-
155
- // Memoize GameOverModal props
156
- const gameOverModalProps = useMemo(() => ({
157
- isVisible: isGameOver,
158
- score,
159
- onPlayAgain: handleResetGame,
160
- buttonText: "Run Again!",
161
- primaryColor: "rgba(255, 99, 71, 0.95)",
162
- borderColor: "rgba(255, 99, 71, 0.9)",
163
- buttonColor: "#FF6347",
164
- buttonBorderColor: "#FF4500"
165
- }), [isGameOver, score, handleResetGame]);
166
-
167
- // Memoize GameSettingsModal props
168
- const gameSettingsModalProps = useMemo(() => ({
169
- gameId: GAME_IDS.DINO_JUMP,
170
- settings,
171
- onSettingsChange
172
- }), [settings, onSettingsChange]);
173
-
174
- // ==================== RENDER ====================
175
- return /*#__PURE__*/_jsx(View, {
176
- style: styles.container,
177
- children: /*#__PURE__*/_jsx(GestureHandlerRootView, {
178
- children: /*#__PURE__*/_jsxs(GameBackground, {
179
- offset: offset,
180
- children: [/*#__PURE__*/_jsx(GameArea, {
181
- settings: settings
182
- }), collisionBlasts.map(blast => /*#__PURE__*/_jsx(ParticleBlast, {
183
- x: blast.x,
184
- y: blast.y,
185
- particleCount: 15,
186
- colors: ['#FF6B35', '#FFA500', '#FFD700', '#FF8C42', '#32CD32'],
187
- duration: 800,
188
- onComplete: () => removeCollisionBlast(blast.id)
189
- }, blast.id)), /*#__PURE__*/_jsx(ScoreBoard, {
190
- offset: offset
191
- }), /*#__PURE__*/_jsx(GameControlButton, {
192
- ...gameControlButtonProps
193
- }), /*#__PURE__*/_jsx(GameOverModal, {
194
- ...gameOverModalProps
195
- }), /*#__PURE__*/_jsx(GameSettingsModal, {
196
- ...gameSettingsModalProps
197
- })]
198
- })
199
- })
200
- });
201
- });
202
- const styles = StyleSheet.create({
203
- container: {
204
- flex: 1
205
- // backgroundColor: DINO_JUMP_COLORS.SKY_BOTTOM,
206
- }
207
- });
208
- DinoJump.displayName = 'DinoJump';
209
- //# sourceMappingURL=DinoJump.js.map
1
+ "use strict";import React,{useEffect,useMemo,useCallback,useRef}from 'react';import{View,StyleSheet}from 'react-native';import{GestureHandlerRootView}from 'react-native-gesture-handler';import{useDinoJumpStore,useIsPlaying,useIsGameOver,useScore}from "./DinoJumpStore.js";import{DinoJumpService}from "./DinoJumpService.js";import{GameBackground,GameArea,ScoreBoard}from "./components/index.js";import{GameControlButton,GameOverModal,ParticleBlast}from "../../helpers/index.js";import{GameSettingsModal}from "../../helpers/index.js";import{GAME_IDS,DEFAULT_GAME_SETTINGS}from "../../services/UtilsService.js";import{playSound,GAME_SOUNDS}from "../../services/SoundsService.js";import{playHaptic,HapticType}from "../../services/HapticsService.js";import{jsx as _jsx,jsxs as _jsxs}from "react/jsx-runtime";export const DinoJump = React.memo(({settings = DEFAULT_GAME_SETTINGS,onSettingsChange})=>{const isPlaying = useIsPlaying();const isGameOver = useIsGameOver();const score = useScore();const setOffset = useDinoJumpStore(state => state.setOffset);const initializeGame = useDinoJumpStore(state => state.initializeGame);const startGame = useDinoJumpStore(state => state.startGame);const stopGame = useDinoJumpStore(state => state.stopGame);const resetGame = useDinoJumpStore(state => state.resetGame);const offset = settings?.offset ?? 0;useEffect(()=>{setOffset(offset);},[offset,setOffset]);const decrementTime = useDinoJumpStore(state => state.decrementTime);const updateDinosaur = useDinoJumpStore(state => state.updateDinosaur);const updateObstacles = useDinoJumpStore(state => state.updateObstacles);const updateClouds = useDinoJumpStore(state => state.updateClouds);const updateStars = useDinoJumpStore(state => state.updateStars);const updateGround = useDinoJumpStore(state => state.updateGround);const updateScore = useDinoJumpStore(state => state.updateScore);const updateSpeed = useDinoJumpStore(state => state.updateSpeed);const addObstacle = useDinoJumpStore(state => state.addObstacle);const addCloud = useDinoJumpStore(state => state.addCloud);const addStar = useDinoJumpStore(state => state.addStar);const checkCollisionsAction = useDinoJumpStore(state => state.checkCollisions);const collisionBlasts = useDinoJumpStore(state => state.collisionBlasts);const removeCollisionBlast = useDinoJumpStore(state => state.removeCollisionBlast);const settingsRef = useRef(settings);settingsRef.current = settings;const checkCollisions = useCallback(()=> checkCollisionsAction(settingsRef.current),[checkCollisionsAction]);const difficulty = settings.difficulty;const gameService = useMemo(()=> new DinoJumpService(),[]);useEffect(()=>{initializeGame(difficulty);},[difficulty,initializeGame]);useEffect(()=>{if(isPlaying){gameService.startTimer(()=>{decrementTime();});}else{gameService.stopTimer();}return()=>{gameService.stopTimer();};},[isPlaying,gameService,decrementTime]);useEffect(()=>{gameService.stopPhysicsLoop();gameService.stopObstacleSpawning();gameService.stopCloudSpawning();if(isPlaying && !isGameOver){const startTimeout = setTimeout(()=>{try{gameService.startPhysicsLoop(updateDinosaur,updateObstacles,updateClouds,updateStars,updateGround,updateScore,updateSpeed,checkCollisions,stopGame);gameService.startObstacleSpawning(addObstacle,difficulty,()=> offset);gameService.startCloudSpawning(addCloud);gameService.startStarSpawning(addStar,()=> offset);}catch(error){console.error('Failed to start game loops:',error);stopGame();}},50);return()=>{clearTimeout(startTimeout);gameService.stopPhysicsLoop();gameService.stopObstacleSpawning();gameService.stopCloudSpawning();};}return()=>{gameService.stopPhysicsLoop();gameService.stopObstacleSpawning();gameService.stopCloudSpawning();};},[isPlaying,isGameOver,gameService,updateDinosaur,updateObstacles,updateClouds,updateStars,updateGround,updateScore,updateSpeed,checkCollisions,stopGame,addObstacle,addCloud,addStar,difficulty]);useEffect(()=>{return()=>{gameService.cleanup();};},[gameService]);const handleStartGame = useCallback(()=>{startGame();playSound(GAME_SOUNDS.DINO_JUMP.START,settingsRef.current.enableSounds);playHaptic(HapticType.MEDIUM,settingsRef.current.enableHaptics);},[startGame]);const handleStopGame = useCallback(()=>{stopGame();},[stopGame]);const handleResetGame = useCallback(()=>{resetGame();initializeGame(difficulty);playHaptic(HapticType.LIGHT,settingsRef.current.enableHaptics);},[resetGame,initializeGame,difficulty]);const gameControlButtonProps = useMemo(()=>({isPlaying,gameOver:isGameOver,onStartGame:handleStartGame,onStopGame:handleStopGame,startButtonText:"START RUNNING",stopButtonText:"STOP GAME",startButtonSubtext:"Tap to jump over cacti!",stopButtonSubtext:"End current game",startButtonColor:"#FF6347",stopButtonColor:"#dc2626",startButtonBorderColor:"#FF4500",stopButtonBorderColor:"#f87171"}),[isPlaying,isGameOver,handleStartGame,handleStopGame]);const gameOverModalProps = useMemo(()=>({isVisible:isGameOver,score,onPlayAgain:handleResetGame,buttonText:"Run Again!",primaryColor:"rgba(255,99,71,0.5)",borderColor:"rgba(255,99,71,0.5)",buttonColor:"#ffffff",buttonBorderColor:"#ffffff",buttonTextColor:"#FF6347"}),[isGameOver,score,handleResetGame]);const gameSettingsModalProps = useMemo(()=>({gameId:GAME_IDS.DINO_JUMP,settings,onSettingsChange}),[settings,onSettingsChange]);return _jsx(View,{style:styles.container,children:_jsx(GestureHandlerRootView,{children:_jsxs(GameBackground,{offset:offset,children:[_jsx(GameArea,{settings:settings}),collisionBlasts.map(blast => _jsx(ParticleBlast,{x:blast.x,y:blast.y,particleCount:15,colors:['#FF6B35','#FFA500','#FFD700','#FF8C42','#32CD32'],duration:800,onComplete:()=> removeCollisionBlast(blast.id)},blast.id)),_jsx(ScoreBoard,{offset:offset}),_jsx(GameControlButton,{...gameControlButtonProps}),_jsx(GameOverModal,{...gameOverModalProps}),_jsx(GameSettingsModal,{...gameSettingsModalProps})]})})});});const styles = StyleSheet.create({container:{flex:1}});DinoJump.displayName = 'DinoJump';
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useMemo","useCallback","useRef","View","StyleSheet","GestureHandlerRootView","useDinoJumpStore","useIsPlaying","useIsGameOver","useScore","DinoJumpService","GameBackground","GameArea","ScoreBoard","GameControlButton","GameOverModal","ParticleBlast","GameSettingsModal","GAME_IDS","DEFAULT_GAME_SETTINGS","playSound","GAME_SOUNDS","playHaptic","HapticType","jsx","_jsx","jsxs","_jsxs","DinoJump","memo","settings","onSettingsChange","isPlaying","isGameOver","score","setOffset","state","initializeGame","startGame","stopGame","resetGame","offset","decrementTime","updateDinosaur","updateObstacles","updateClouds","updateStars","updateGround","updateScore","updateSpeed","addObstacle","addCloud","addStar","checkCollisionsAction","checkCollisions","collisionBlasts","removeCollisionBlast","settingsRef","current","difficulty","gameService","startTimer","stopTimer","stopPhysicsLoop","stopObstacleSpawning","stopCloudSpawning","startTimeout","setTimeout","startPhysicsLoop","startObstacleSpawning","startCloudSpawning","startStarSpawning","error","console","clearTimeout","cleanup","handleStartGame","DINO_JUMP","START","enableSounds","MEDIUM","enableHaptics","handleStopGame","handleResetGame","LIGHT","gameControlButtonProps","gameOver","onStartGame","onStopGame","startButtonText","stopButtonText","startButtonSubtext","stopButtonSubtext","startButtonColor","stopButtonColor","startButtonBorderColor","stopButtonBorderColor","gameOverModalProps","isVisible","onPlayAgain","buttonText","primaryColor","borderColor","buttonColor","buttonBorderColor","gameSettingsModalProps","gameId","style","styles","container","children","map","blast","x","y","particleCount","colors","duration","onComplete","id","create","flex","displayName"],"sourceRoot":"../../../../src","sources":["games/dino-jump/DinoJump.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useMemo","useCallback","useRef","View","StyleSheet","GestureHandlerRootView","useDinoJumpStore","useIsPlaying","useIsGameOver","useScore","DinoJumpService","GameBackground","GameArea","ScoreBoard","GameControlButton","GameOverModal","ParticleBlast","GameSettingsModal","GAME_IDS","DEFAULT_GAME_SETTINGS","playSound","GAME_SOUNDS","playHaptic","HapticType","jsx","_jsx","jsxs","_jsxs","DinoJump","memo","settings","onSettingsChange","isPlaying","isGameOver","score","setOffset","state","initializeGame","startGame","stopGame","resetGame","offset","decrementTime","updateDinosaur","updateObstacles","updateClouds","updateStars","updateGround","updateScore","updateSpeed","addObstacle","addCloud","addStar","checkCollisionsAction","checkCollisions","collisionBlasts","removeCollisionBlast","settingsRef","current","difficulty","gameService","startTimer","stopTimer","stopPhysicsLoop","stopObstacleSpawning","stopCloudSpawning","startTimeout","setTimeout","startPhysicsLoop","startObstacleSpawning","startCloudSpawning","startStarSpawning","error","console","clearTimeout","cleanup","handleStartGame","DINO_JUMP","START","enableSounds","MEDIUM","enableHaptics","handleStopGame","handleResetGame","LIGHT","gameControlButtonProps","gameOver","onStartGame","onStopGame","startButtonText","stopButtonText","startButtonSubtext","stopButtonSubtext","startButtonColor","stopButtonColor","startButtonBorderColor","stopButtonBorderColor","gameOverModalProps","isVisible","onPlayAgain","buttonText","primaryColor","borderColor","buttonColor","buttonBorderColor","buttonTextColor","gameSettingsModalProps","gameId","style","styles","container","children","map","blast","x","y","particleCount","colors","duration","onComplete","id","create","flex","displayName"],"sourceRoot":"../../../../src","sources":["games/dino-jump/DinoJump.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,189 +1 @@
1
- "use strict";
2
-
3
- import { Dimensions } from 'react-native';
4
- // Memoize screen dimensions for better performance
5
- const {
6
- width,
7
- height
8
- } = Dimensions.get('window');
9
-
10
- // Dinosaur Jump Game Constants
11
- export const DINO_JUMP_CONSTANTS = {
12
- // Chrome dino physics - more realistic
13
- gravity: 1.0,
14
- jumpForce: -20,
15
- // Higher jump for better obstacle clearance
16
- gameSpeed: {
17
- easy: 4,
18
- // Chrome dino starts slower
19
- medium: 6,
20
- hard: 8
21
- },
22
- // Chrome dino scoring - distance based
23
- baseScore: {
24
- easy: 1,
25
- // 1 point per frame
26
- medium: 1,
27
- hard: 1
28
- },
29
- scoreMultiplier: {
30
- easy: 1,
31
- medium: 1.5,
32
- hard: 2
33
- },
34
- // Speed increase over time (Chrome dino gets faster)
35
- speedIncreaseRate: 0.001,
36
- maxSpeed: 12,
37
- // Time limits per difficulty (in seconds)
38
- timeLimit: {
39
- easy: 120,
40
- // 2 minutes
41
- medium: 180,
42
- // 3 minutes
43
- hard: 300 // 5 minutes
44
- }
45
- };
46
- export const DINO_JUMP_GAME_CONFIG = {
47
- // Screen dimensions
48
- SCREEN_WIDTH: width,
49
- SCREEN_HEIGHT: height,
50
- GROUND_HEIGHT: 150,
51
- // Default ground height (used when offset > 0)
52
-
53
- // Dinosaur properties
54
- DINOSAUR_WIDTH: 55,
55
- DINOSAUR_HEIGHT: 58,
56
- DINOSAUR_X: 80,
57
- // Fixed X position
58
-
59
- // Obstacle properties
60
- OBSTACLE_WIDTH: 20,
61
- OBSTACLE_HEIGHT: 40,
62
- OBSTACLE_SPAWN_DISTANCE: 600,
63
- // Distance between obstacles
64
-
65
- // Game timing
66
- GAME_DURATION: 120,
67
- // 5 minutes in seconds
68
- PHYSICS_FRAME_RATE: 60,
69
- // 60 FPS
70
- OBSTACLE_SPAWN_INTERVAL: 2000,
71
- // 2 seconds
72
-
73
- // Animation
74
- JUMP_DURATION: 600,
75
- // milliseconds
76
- GROUND_SCROLL_SPEED: 4 // pixels per frame
77
- };
78
-
79
- // Helper function to get dynamic ground height based on offset
80
- export const getGroundHeight = (offset = 0) => {
81
- return offset > 0 ? 150 : 250;
82
- };
83
-
84
- // Helper function to get ground Y position
85
- export const getGroundY = (offset = 0) => {
86
- return height - getGroundHeight(offset);
87
- };
88
- export const DINO_JUMP_ANIMATION_CONFIG = {
89
- DINO_JUMP: {
90
- damping: 15,
91
- stiffness: 300,
92
- mass: 1
93
- },
94
- OBSTACLE_MOVE: {
95
- duration: 3000 // 3 seconds to cross screen
96
- },
97
- COLLISION_FEEDBACK: {
98
- duration: 200,
99
- intensity: 0.1
100
- }
101
- };
102
- export const DINO_JUMP_COLORS = {
103
- // Background colors - vibrant and colorful
104
- SKY_TOP: '#FF9A9E',
105
- // Soft pink gradient
106
- SKY_BOTTOM: '#FECFEF',
107
- // Light pink
108
- GROUND: '#FFD93D',
109
- // Bright sunny yellow
110
- GROUND_LINE: '#FF6B6B',
111
- // Coral red
112
-
113
- // Dinosaur colors - bright and fun
114
- DINOSAUR_PRIMARY: '#4ECDC4',
115
- // Bright teal
116
- DINOSAUR_SECONDARY: '#45B7D1',
117
- // Sky blue
118
- DINOSAUR_OUTLINE: '#2C3E50',
119
- // Dark blue-gray
120
-
121
- // Obstacle colors (cactus) - vibrant greens
122
- OBSTACLE_PRIMARY: '#2ECC71',
123
- // Emerald green
124
- OBSTACLE_SECONDARY: '#27AE60',
125
- // Darker emerald
126
- OBSTACLE_OUTLINE: '#1E8449',
127
- // Forest green
128
-
129
- // UI colors - bright and engaging
130
- SCORE_TEXT: '#2C3E50',
131
- // Dark blue-gray
132
- GAME_OVER_OVERLAY: 'rgba(231, 76, 60, 0.8)',
133
- // Red overlay
134
- BUTTON_PRIMARY: '#E74C3C',
135
- // Bright red
136
- BUTTON_SECONDARY: '#C0392B',
137
- // Dark red
138
- TEXT_PRIMARY: '#FFFFFF',
139
- TEXT_SECONDARY: '#ECF0F1',
140
- // Light gray
141
-
142
- // Cloud colors - soft and dreamy
143
- CLOUD_COLOR: '#FFFFFF',
144
- CLOUD_SHADOW: 'rgba(52, 152, 219, 0.2)' // Blue shadow
145
- };
146
-
147
- // Dinosaur states for animation
148
- export const DINOSAUR_STATES = {
149
- RUNNING: 'running',
150
- JUMPING: 'jumping',
151
- DUCKING: 'ducking',
152
- DEAD: 'dead'
153
- };
154
-
155
- // Obstacle types
156
- export const OBSTACLE_TYPES = {
157
- CACTUS_SMALL: 'cactus_small',
158
- CACTUS_LARGE: 'cactus_large',
159
- BIRD: 'bird'
160
- };
161
-
162
- // Dinosaur Jump Game Theme - Desert/Orange theme
163
- export const DINO_JUMP_THEME = {
164
- backgroundColor: '#F0E68C',
165
- // Khaki background like desert
166
- headerBackgroundColor: 'rgba(255, 99, 71, 0.9)',
167
- // Tomato header
168
- headerTextColor: '#ffffff',
169
- sectionBackgroundColor: 'rgba(255, 99, 71, 0.4)',
170
- // Light tomato sections
171
- sectionTitleColor: '#ffffff',
172
- buttonSelectedColor: '#FF6347',
173
- // Tomato for selected
174
- buttonUnselectedColor: 'rgba(255, 255, 255, 0.3)',
175
- buttonSelectedTextColor: '#ffffff',
176
- buttonUnselectedTextColor: '#1f2937',
177
- switchTrackColorFalse: 'rgba(255, 99, 71, 0.5)',
178
- switchTrackColorTrue: '#FF6347',
179
- switchThumbColor: '#ffffff',
180
- infoTextColor: '#1f2937' // Dark text for readability
181
- };
182
-
183
- // Dinosaur Jump Difficulty Descriptions
184
- export const DINO_JUMP_DIFFICULTY_DESCRIPTIONS = {
185
- easy: 'Slow speed, easy obstacles, perfect for beginners',
186
- medium: 'Medium speed, moderate challenge with mixed obstacles',
187
- hard: 'Fast speed, frequent obstacles, expert level challenge'
188
- };
189
- //# sourceMappingURL=DinoJumpConstants.js.map
1
+ "use strict";import{Dimensions}from 'react-native';const{width,height}= Dimensions.get('window');export const DINO_JUMP_CONSTANTS ={gravity:1.0,jumpForce:-20,gameSpeed:{easy:4,medium:6,hard:8},baseScore:{easy:1,medium:1,hard:1},scoreMultiplier:{easy:1,medium:1.5,hard:2},speedIncreaseRate:0.001,maxSpeed:12,timeLimit:{easy:120,medium:180,hard:300}};export const DINO_JUMP_GAME_CONFIG ={SCREEN_WIDTH:width,SCREEN_HEIGHT:height,GROUND_HEIGHT:150,DINOSAUR_WIDTH:55,DINOSAUR_HEIGHT:58,DINOSAUR_X:80,OBSTACLE_WIDTH:20,OBSTACLE_HEIGHT:40,OBSTACLE_SPAWN_DISTANCE:600,GAME_DURATION:120,PHYSICS_FRAME_RATE:60,OBSTACLE_SPAWN_INTERVAL:2000,JUMP_DURATION:600,GROUND_SCROLL_SPEED:4};export const getGroundHeight =(offset = 0)=>{return offset > 0 ? 150:250;};export const getGroundY =(offset = 0)=>{return height - getGroundHeight(offset);};export const DINO_JUMP_ANIMATION_CONFIG ={DINO_JUMP:{damping:15,stiffness:300,mass:1},OBSTACLE_MOVE:{duration:3000},COLLISION_FEEDBACK:{duration:200,intensity:0.1}};export const DINO_JUMP_COLORS ={SKY_TOP:'#FF9A9E',SKY_BOTTOM:'#FECFEF',GROUND:'#FFD93D',GROUND_LINE:'#FF6B6B',DINOSAUR_PRIMARY:'#4ECDC4',DINOSAUR_SECONDARY:'#45B7D1',DINOSAUR_OUTLINE:'#2C3E50',OBSTACLE_PRIMARY:'#2ECC71',OBSTACLE_SECONDARY:'#27AE60',OBSTACLE_OUTLINE:'#1E8449',SCORE_TEXT:'#2C3E50',GAME_OVER_OVERLAY:'rgba(231,76,60,0.8)',BUTTON_PRIMARY:'#E74C3C',BUTTON_SECONDARY:'#C0392B',TEXT_PRIMARY:'#FFFFFF',TEXT_SECONDARY:'#ECF0F1',CLOUD_COLOR:'#FFFFFF',CLOUD_SHADOW:'rgba(52,152,219,0.2)'};export const DINOSAUR_STATES ={RUNNING:'running',JUMPING:'jumping',DUCKING:'ducking',DEAD:'dead'};export const OBSTACLE_TYPES ={CACTUS_SMALL:'cactus_small',CACTUS_LARGE:'cactus_large',BIRD:'bird'};export const DINO_JUMP_THEME ={backgroundColor:'rgba(0,0,0,0.7)',headerBackgroundColor:'#FF6347',headerTextColor:'#ffffff',sectionBackgroundColor:'rgba(255,99,71,0.15)',sectionTitleColor:'#FF6347',buttonSelectedColor:'#FF6347',buttonUnselectedColor:'rgba(255,255,255,0.2)',buttonSelectedTextColor:'#ffffff',buttonUnselectedTextColor:'rgba(255,255,255,0.7)',switchTrackColorFalse:'rgba(255,99,71,0.3)',switchTrackColorTrue:'#FF6347',switchThumbColor:'#ffffff',infoTextColor:'rgba(255,255,255,0.9)'};export const DINO_JUMP_DIFFICULTY_DESCRIPTIONS ={easy:'Slow speed,easy obstacles,perfect for beginners',medium:'Medium speed,moderate challenge with mixed obstacles',hard:'Fast speed,frequent obstacles,expert level challenge'};
@@ -1 +1 @@
1
- {"version":3,"names":["Dimensions","width","height","get","DINO_JUMP_CONSTANTS","gravity","jumpForce","gameSpeed","easy","medium","hard","baseScore","scoreMultiplier","speedIncreaseRate","maxSpeed","timeLimit","DINO_JUMP_GAME_CONFIG","SCREEN_WIDTH","SCREEN_HEIGHT","GROUND_HEIGHT","DINOSAUR_WIDTH","DINOSAUR_HEIGHT","DINOSAUR_X","OBSTACLE_WIDTH","OBSTACLE_HEIGHT","OBSTACLE_SPAWN_DISTANCE","GAME_DURATION","PHYSICS_FRAME_RATE","OBSTACLE_SPAWN_INTERVAL","JUMP_DURATION","GROUND_SCROLL_SPEED","getGroundHeight","offset","getGroundY","DINO_JUMP_ANIMATION_CONFIG","DINO_JUMP","damping","stiffness","mass","OBSTACLE_MOVE","duration","COLLISION_FEEDBACK","intensity","DINO_JUMP_COLORS","SKY_TOP","SKY_BOTTOM","GROUND","GROUND_LINE","DINOSAUR_PRIMARY","DINOSAUR_SECONDARY","DINOSAUR_OUTLINE","OBSTACLE_PRIMARY","OBSTACLE_SECONDARY","OBSTACLE_OUTLINE","SCORE_TEXT","GAME_OVER_OVERLAY","BUTTON_PRIMARY","BUTTON_SECONDARY","TEXT_PRIMARY","TEXT_SECONDARY","CLOUD_COLOR","CLOUD_SHADOW","DINOSAUR_STATES","RUNNING","JUMPING","DUCKING","DEAD","OBSTACLE_TYPES","CACTUS_SMALL","CACTUS_LARGE","BIRD","DINO_JUMP_THEME","backgroundColor","headerBackgroundColor","headerTextColor","sectionBackgroundColor","sectionTitleColor","buttonSelectedColor","buttonUnselectedColor","buttonSelectedTextColor","buttonUnselectedTextColor","switchTrackColorFalse","switchTrackColorTrue","switchThumbColor","infoTextColor","DINO_JUMP_DIFFICULTY_DESCRIPTIONS"],"sourceRoot":"../../../../src","sources":["games/dino-jump/DinoJumpConstants.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Dimensions","width","height","get","DINO_JUMP_CONSTANTS","gravity","jumpForce","gameSpeed","easy","medium","hard","baseScore","scoreMultiplier","speedIncreaseRate","maxSpeed","timeLimit","DINO_JUMP_GAME_CONFIG","SCREEN_WIDTH","SCREEN_HEIGHT","GROUND_HEIGHT","DINOSAUR_WIDTH","DINOSAUR_HEIGHT","DINOSAUR_X","OBSTACLE_WIDTH","OBSTACLE_HEIGHT","OBSTACLE_SPAWN_DISTANCE","GAME_DURATION","PHYSICS_FRAME_RATE","OBSTACLE_SPAWN_INTERVAL","JUMP_DURATION","GROUND_SCROLL_SPEED","getGroundHeight","offset","getGroundY","DINO_JUMP_ANIMATION_CONFIG","DINO_JUMP","damping","stiffness","mass","OBSTACLE_MOVE","duration","COLLISION_FEEDBACK","intensity","DINO_JUMP_COLORS","SKY_TOP","SKY_BOTTOM","GROUND","GROUND_LINE","DINOSAUR_PRIMARY","DINOSAUR_SECONDARY","DINOSAUR_OUTLINE","OBSTACLE_PRIMARY","OBSTACLE_SECONDARY","OBSTACLE_OUTLINE","SCORE_TEXT","GAME_OVER_OVERLAY","BUTTON_PRIMARY","BUTTON_SECONDARY","TEXT_PRIMARY","TEXT_SECONDARY","CLOUD_COLOR","CLOUD_SHADOW","DINOSAUR_STATES","RUNNING","JUMPING","DUCKING","DEAD","OBSTACLE_TYPES","CACTUS_SMALL","CACTUS_LARGE","BIRD","DINO_JUMP_THEME","backgroundColor","headerBackgroundColor","headerTextColor","sectionBackgroundColor","sectionTitleColor","buttonSelectedColor","buttonUnselectedColor","buttonSelectedTextColor","buttonUnselectedTextColor","switchTrackColorFalse","switchTrackColorTrue","switchThumbColor","infoTextColor","DINO_JUMP_DIFFICULTY_DESCRIPTIONS"],"sourceRoot":"../../../../src","sources":["games/dino-jump/DinoJumpConstants.ts"],"mappings":"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","ignoreList":[]}