frogjs 1.0.0-alpha.4 → 1.0.0-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/frog.d.ts.map +1 -1
- package/dist/frog.js +9 -1
- package/dist/frog.js.map +1 -1
- package/package.json +3 -4
- package/AI_GUIDELINES.md +0 -417
package/dist/frog.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frog.d.ts","sourceRoot":"","sources":["../frog.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,OAAO;IACtB,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,sBAAsB;IACtB,CAAC,EAAE,MAAM,CAAC;IACV,sBAAsB;IACtB,CAAC,EAAE,MAAM,CAAC;IACV,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,CAAC,EAAE,MAAM,CAAC;IACV,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,KAAK,EAAE,OAAO,CAAC;IACf,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,MAAO,YAAW,OAAO;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,CAAS;IACnB,OAAO,CAAC,EAAE,CAAS;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;gBAEF,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"frog.d.ts","sourceRoot":"","sources":["../frog.ts"],"names":[],"mappings":"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"}
|
package/dist/frog.js
CHANGED
|
@@ -3,7 +3,15 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export class Sprite {
|
|
5
5
|
constructor(config) {
|
|
6
|
-
|
|
6
|
+
// Validate symbol is a single character
|
|
7
|
+
const symbol = config.symbol ?? '';
|
|
8
|
+
if (symbol.length > 1) {
|
|
9
|
+
console.warn(`FrogJS Warning: Sprite symbol should be a single character. Got: "${symbol}" (length: ${symbol.length}). Using first character only.`);
|
|
10
|
+
this.symbol = symbol.charAt(0);
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
this.symbol = symbol;
|
|
14
|
+
}
|
|
7
15
|
this._x = Math.round(config.x ?? 0);
|
|
8
16
|
this._y = Math.round(config.y ?? 0);
|
|
9
17
|
this.alpha = config.alpha ?? 1;
|
package/dist/frog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frog.js","sourceRoot":"","sources":["../frog.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"frog.js","sourceRoot":"","sources":["../frog.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "frogjs",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.5",
|
|
4
4
|
"description": "FrogJS - A simple framework for making games with symbols/emojis on a grid",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/frog.js",
|
|
@@ -13,11 +13,10 @@
|
|
|
13
13
|
}
|
|
14
14
|
},
|
|
15
15
|
"files": [
|
|
16
|
-
"dist"
|
|
17
|
-
"AI_GUIDELINES.md"
|
|
16
|
+
"dist"
|
|
18
17
|
],
|
|
19
18
|
"scripts": {
|
|
20
|
-
"build": "tsc
|
|
19
|
+
"build": "tsc",
|
|
21
20
|
"watch": "tsc --watch",
|
|
22
21
|
"prepublishOnly": "npm run build"
|
|
23
22
|
},
|
package/AI_GUIDELINES.md
DELETED
|
@@ -1,417 +0,0 @@
|
|
|
1
|
-
# FrogJS - AI Agent Guidelines
|
|
2
|
-
|
|
3
|
-
> **For AI Agents:** This document contains comprehensive guidelines for generating code using the FrogJS game framework.
|
|
4
|
-
|
|
5
|
-
**Version:** 1.0.0-alpha.4
|
|
6
|
-
|
|
7
|
-
## Library URLs
|
|
8
|
-
|
|
9
|
-
- **Main Library:** `https://cdn.jsdelivr.net/npm/frogjs@1.0.0-alpha.4/dist/frog.js`
|
|
10
|
-
- **AI Guidelines:** `https://cdn.jsdelivr.net/npm/frogjs@1.0.0-alpha.4/AI_GUIDELINES.md`
|
|
11
|
-
|
|
12
|
-
## Overview
|
|
13
|
-
|
|
14
|
-
FrogJS is a minimal framework for creating web games using emojis and characters on a grid-based canvas.
|
|
15
|
-
|
|
16
|
-
## ⚠️ CRITICAL CONSTRAINT: INTEGER COORDINATES ONLY
|
|
17
|
-
|
|
18
|
-
**THE MOST IMPORTANT RULE:**
|
|
19
|
-
|
|
20
|
-
FrogJS uses **ONLY integer grid coordinates**. There is **NO support** for fractional positions.
|
|
21
|
-
|
|
22
|
-
### What This Means
|
|
23
|
-
|
|
24
|
-
```javascript
|
|
25
|
-
// ✅ CORRECT
|
|
26
|
-
sprite.x = 5;
|
|
27
|
-
sprite.y = 10;
|
|
28
|
-
player.x += 1; // Move one cell right
|
|
29
|
-
|
|
30
|
-
// ❌ WRONG - DO NOT DO THIS
|
|
31
|
-
sprite.x = 5.5; // NO! Fractional coordinates don't work
|
|
32
|
-
sprite.y = 10.7; // NO! Will cause visual glitches
|
|
33
|
-
player.x += 0.1; // NO! Not smooth movement
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
### Why?
|
|
37
|
-
|
|
38
|
-
FrogJS is **grid-based**, not **pixel-based**:
|
|
39
|
-
- Think like a chess board, not a canvas
|
|
40
|
-
- Sprites jump from cell to cell
|
|
41
|
-
- No sub-cell positioning
|
|
42
|
-
- Movement is discrete, not continuous
|
|
43
|
-
|
|
44
|
-
### Grid System
|
|
45
|
-
|
|
46
|
-
- Games run on a grid of cells (default: 20×15)
|
|
47
|
-
- Each cell can contain one emoji/character
|
|
48
|
-
- Coordinates are `(x, y)` where `(0,0)` is top-left
|
|
49
|
-
- **x and y MUST be integers:** 0, 1, 2, 3, etc.
|
|
50
|
-
- **NEVER use decimals:** NOT 1.5, NOT 2.7, NOT 3.14
|
|
51
|
-
|
|
52
|
-
## TypeScript API Definitions
|
|
53
|
-
|
|
54
|
-
Below are the complete TypeScript definitions showing the full API:
|
|
55
|
-
|
|
56
|
-
```typescript
|
|
57
|
-
/**
|
|
58
|
-
* FrogJS - A simple framework for making games with symbols/emojis on a grid
|
|
59
|
-
*/
|
|
60
|
-
export interface ISprite {
|
|
61
|
-
/** The character/emoji to display */
|
|
62
|
-
symbol: string;
|
|
63
|
-
/** Grid x position */
|
|
64
|
-
x: number;
|
|
65
|
-
/** Grid y position */
|
|
66
|
-
y: number;
|
|
67
|
-
/** Transparency (0.0 = invisible, 1.0 = opaque). Default: 1 */
|
|
68
|
-
alpha: number;
|
|
69
|
-
/** Render order (lower rendered first). Default: 0 */
|
|
70
|
-
z: number;
|
|
71
|
-
/** Rotation angle in degrees. Default: 0 */
|
|
72
|
-
angle: number;
|
|
73
|
-
/** If true, sprite ignores scrollX/scrollY (UI element). Default: false */
|
|
74
|
-
fixed: boolean;
|
|
75
|
-
/** Fill color for the symbol (CSS color). Default: '#ffffff' */
|
|
76
|
-
color: string;
|
|
77
|
-
}
|
|
78
|
-
export declare class Sprite implements ISprite {
|
|
79
|
-
symbol: string;
|
|
80
|
-
private _x;
|
|
81
|
-
private _y;
|
|
82
|
-
alpha: number;
|
|
83
|
-
z: number;
|
|
84
|
-
angle: number;
|
|
85
|
-
fixed: boolean;
|
|
86
|
-
color: string;
|
|
87
|
-
constructor(config: Partial<ISprite>);
|
|
88
|
-
/** Grid x position (always an integer) */
|
|
89
|
-
get x(): number;
|
|
90
|
-
set x(value: number);
|
|
91
|
-
/** Grid y position (always an integer) */
|
|
92
|
-
get y(): number;
|
|
93
|
-
set y(value: number);
|
|
94
|
-
}
|
|
95
|
-
export interface IGameConfig {
|
|
96
|
-
/** HTML element to contain the canvas. If not provided, creates a fullscreen container. Default: auto-created */
|
|
97
|
-
container?: HTMLElement;
|
|
98
|
-
/** Number of grid cells horizontally. Default: 20 */
|
|
99
|
-
gridWidth?: number;
|
|
100
|
-
/** Number of grid cells vertically. Default: 15 */
|
|
101
|
-
gridHeight?: number;
|
|
102
|
-
/** Background color (CSS color). Default: '#000000' */
|
|
103
|
-
background?: string;
|
|
104
|
-
/** Whether to render grid lines. Default: true */
|
|
105
|
-
showGrid?: boolean;
|
|
106
|
-
}
|
|
107
|
-
export interface ITimer {
|
|
108
|
-
/** Unique timer identifier */
|
|
109
|
-
id: number;
|
|
110
|
-
/** Number of times to execute (-1 for infinite) */
|
|
111
|
-
times: number;
|
|
112
|
-
}
|
|
113
|
-
export declare class Game {
|
|
114
|
-
/** Whether to render grid lines. Default: true */
|
|
115
|
-
showGrid: boolean;
|
|
116
|
-
/** Camera horizontal offset in grid units (always an integer). Default: 0 */
|
|
117
|
-
get scrollX(): number;
|
|
118
|
-
set scrollX(value: number);
|
|
119
|
-
/** Camera vertical offset in grid units (always an integer). Default: 0 */
|
|
120
|
-
get scrollY(): number;
|
|
121
|
-
set scrollY(value: number);
|
|
122
|
-
/** Callback executed every frame. Default: null */
|
|
123
|
-
onUpdate: (() => void) | null;
|
|
124
|
-
/** Callback executed when pointer/mouse is pressed. Receives world grid coordinates (x, y). Default: null */
|
|
125
|
-
onPointerDown: ((x: number, y: number) => void) | null;
|
|
126
|
-
/** Callback executed when pointer/mouse is released. Receives world grid coordinates (x, y). Default: null */
|
|
127
|
-
onPointerUp: ((x: number, y: number) => void) | null;
|
|
128
|
-
constructor(config?: IGameConfig);
|
|
129
|
-
/**
|
|
130
|
-
* Add a sprite to the game
|
|
131
|
-
* @param sprite - The sprite object to add
|
|
132
|
-
* @returns The added sprite
|
|
133
|
-
*/
|
|
134
|
-
addSprite(sprite: ISprite): ISprite;
|
|
135
|
-
/**
|
|
136
|
-
* Check if left arrow key is currently pressed
|
|
137
|
-
* @returns True if left arrow is pressed
|
|
138
|
-
*/
|
|
139
|
-
isLeftKeyDown(): boolean;
|
|
140
|
-
/**
|
|
141
|
-
* Check if right arrow key is currently pressed
|
|
142
|
-
* @returns True if right arrow is pressed
|
|
143
|
-
*/
|
|
144
|
-
isRightKeyDown(): boolean;
|
|
145
|
-
/**
|
|
146
|
-
* Check if up arrow key is currently pressed
|
|
147
|
-
* @returns True if up arrow is pressed
|
|
148
|
-
*/
|
|
149
|
-
isUpKeyDown(): boolean;
|
|
150
|
-
/**
|
|
151
|
-
* Check if down arrow key is currently pressed
|
|
152
|
-
* @returns True if down arrow is pressed
|
|
153
|
-
*/
|
|
154
|
-
isDownKeyDown(): boolean;
|
|
155
|
-
/**
|
|
156
|
-
* Check if space key is currently pressed
|
|
157
|
-
* @returns True if space is pressed
|
|
158
|
-
*/
|
|
159
|
-
isSpaceKeyDown(): boolean;
|
|
160
|
-
/**
|
|
161
|
-
* Get the first sprite at a specific grid cell
|
|
162
|
-
* @param x - Grid x coordinate
|
|
163
|
-
* @param y - Grid y coordinate
|
|
164
|
-
* @returns The first sprite found at the position, or null if none exists
|
|
165
|
-
*/
|
|
166
|
-
getSprite(x: number, y: number): ISprite | null;
|
|
167
|
-
/**
|
|
168
|
-
* Get all sprites at a specific grid cell
|
|
169
|
-
* @param x - Grid x coordinate
|
|
170
|
-
* @param y - Grid y coordinate
|
|
171
|
-
* @returns Array of all sprites at the position
|
|
172
|
-
*/
|
|
173
|
-
getAllSprites(x: number, y: number): ISprite[];
|
|
174
|
-
/**
|
|
175
|
-
* Remove a sprite from the game
|
|
176
|
-
* @param sprite - The sprite to remove
|
|
177
|
-
*/
|
|
178
|
-
removeSprite(sprite: ISprite): void;
|
|
179
|
-
/**
|
|
180
|
-
* Clear all sprites from the game
|
|
181
|
-
*/
|
|
182
|
-
clearSprites(): void;
|
|
183
|
-
/**
|
|
184
|
-
* Enable or disable grid rendering
|
|
185
|
-
* @param show - True to show grid, false to hide
|
|
186
|
-
*/
|
|
187
|
-
setShowGrid(show: boolean): void;
|
|
188
|
-
/**
|
|
189
|
-
* Fade a sprite from startAlpha to endAlpha
|
|
190
|
-
* @param sprite - The sprite to animate
|
|
191
|
-
* @param startAlpha - Starting alpha value (0.0 - 1.0)
|
|
192
|
-
* @param endAlpha - Ending alpha value (0.0 - 1.0)
|
|
193
|
-
* @param duration - Duration in milliseconds. Default: 1000
|
|
194
|
-
* @param callback - Optional callback when animation completes
|
|
195
|
-
*/
|
|
196
|
-
fadeSprite(sprite: ISprite, startAlpha: number, endAlpha: number, duration?: number, callback?: () => void): void;
|
|
197
|
-
/**
|
|
198
|
-
* Rotate a sprite from startAngle to endAngle
|
|
199
|
-
* @param sprite - The sprite to animate
|
|
200
|
-
* @param startAngle - Starting angle in degrees
|
|
201
|
-
* @param endAngle - Ending angle in degrees
|
|
202
|
-
* @param duration - Duration in milliseconds. Default: 1000
|
|
203
|
-
* @param callback - Optional callback when animation completes
|
|
204
|
-
*/
|
|
205
|
-
rotateSprite(sprite: ISprite, startAngle: number, endAngle: number, duration?: number, callback?: () => void): void;
|
|
206
|
-
/**
|
|
207
|
-
* Execute a callback after a delay
|
|
208
|
-
* @param delay - Delay in milliseconds
|
|
209
|
-
* @param callback - Function to execute after delay
|
|
210
|
-
*/
|
|
211
|
-
timeout(delay: number, callback: () => void): void;
|
|
212
|
-
/**
|
|
213
|
-
* Execute a callback repeatedly at specified intervals
|
|
214
|
-
* @param delay - Time in milliseconds between executions
|
|
215
|
-
* @param callback - Function to execute
|
|
216
|
-
* @param times - Number of times to execute (-1 or undefined for infinite)
|
|
217
|
-
* @returns Timer object that can be passed to stopTimer()
|
|
218
|
-
*/
|
|
219
|
-
timer(delay: number, callback: () => void, times?: number): ITimer;
|
|
220
|
-
/**
|
|
221
|
-
* Stop a running timer
|
|
222
|
-
*/
|
|
223
|
-
stopTimer(timer: ITimer): void;
|
|
224
|
-
/**
|
|
225
|
-
* Stop the game loop, remove canvas, and clean up resources
|
|
226
|
-
*/
|
|
227
|
-
destroy(): void;
|
|
228
|
-
}
|
|
229
|
-
//# sourceMappingURL=frog.d.ts.map
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
## CRITICAL RULES FOR AI AGENTS
|
|
233
|
-
|
|
234
|
-
### Rule 1: INTEGER COORDINATES ONLY
|
|
235
|
-
|
|
236
|
-
```javascript
|
|
237
|
-
// ✅ CORRECT - Move in whole cell increments
|
|
238
|
-
if (game.isLeftKeyDown()) player.x -= 1;
|
|
239
|
-
if (game.isRightKeyDown()) player.x += 1;
|
|
240
|
-
if (game.isUpKeyDown()) player.y -= 1;
|
|
241
|
-
if (game.isDownKeyDown()) player.y += 1;
|
|
242
|
-
|
|
243
|
-
// ❌ WRONG - Don't use fractional movement
|
|
244
|
-
if (game.isLeftKeyDown()) player.x -= 0.1; // NO!
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
### Rule 2: Use FrogJS Methods Only
|
|
248
|
-
|
|
249
|
-
- **NEVER** bypass the library to draw directly on canvas
|
|
250
|
-
- **NEVER** use canvas 2D context methods
|
|
251
|
-
- All rendering MUST go through FrogJS sprite system
|
|
252
|
-
|
|
253
|
-
### Rule 3: Emojis and Characters Only
|
|
254
|
-
|
|
255
|
-
- NO image assets
|
|
256
|
-
- NO `<img>` tags
|
|
257
|
-
- NO canvas drawing APIs
|
|
258
|
-
- Everything is emojis and text characters
|
|
259
|
-
|
|
260
|
-
### Rule 4: Think in Grid Coordinates
|
|
261
|
-
|
|
262
|
-
- Position is which cell (0-19 horizontally, 0-14 vertically by default)
|
|
263
|
-
- Not measured in pixels
|
|
264
|
-
- Each sprite occupies exactly one cell
|
|
265
|
-
|
|
266
|
-
### Rule 5: Embrace the Grid
|
|
267
|
-
|
|
268
|
-
- Design games that work well with discrete cell movement
|
|
269
|
-
- Snake, Pac-Man, roguelikes, puzzle games are perfect
|
|
270
|
-
- Smooth platformers are NOT suitable for FrogJS
|
|
271
|
-
|
|
272
|
-
## Complete Game Template
|
|
273
|
-
|
|
274
|
-
```html
|
|
275
|
-
<!DOCTYPE html>
|
|
276
|
-
<html>
|
|
277
|
-
<head>
|
|
278
|
-
<meta charset="UTF-8">
|
|
279
|
-
<title>FrogJS Game</title>
|
|
280
|
-
<style>
|
|
281
|
-
body { margin: 0; padding: 0; overflow: hidden; }
|
|
282
|
-
</style>
|
|
283
|
-
</head>
|
|
284
|
-
<body>
|
|
285
|
-
<script type="module">
|
|
286
|
-
import { Game, Sprite } from 'https://cdn.jsdelivr.net/npm/frogjs@1.0.0-alpha.4/dist/frog.js';
|
|
287
|
-
|
|
288
|
-
const game = new Game({
|
|
289
|
-
gridWidth: 20,
|
|
290
|
-
gridHeight: 15,
|
|
291
|
-
background: '#1a1a2e',
|
|
292
|
-
showGrid: false
|
|
293
|
-
});
|
|
294
|
-
|
|
295
|
-
// Create player
|
|
296
|
-
const player = new Sprite({ symbol: '🐸', x: 10, y: 7 });
|
|
297
|
-
game.addSprite(player);
|
|
298
|
-
|
|
299
|
-
// Game loop
|
|
300
|
-
game.onUpdate = () => {
|
|
301
|
-
// Movement (INTEGER coordinates!)
|
|
302
|
-
if (game.isLeftKeyDown() && player.x > 0) player.x--;
|
|
303
|
-
if (game.isRightKeyDown() && player.x < 19) player.x++;
|
|
304
|
-
if (game.isUpKeyDown() && player.y > 0) player.y--;
|
|
305
|
-
if (game.isDownKeyDown() && player.y < 14) player.y++;
|
|
306
|
-
};
|
|
307
|
-
</script>
|
|
308
|
-
</body>
|
|
309
|
-
</html>
|
|
310
|
-
```
|
|
311
|
-
|
|
312
|
-
## Best Practices for AI Agents
|
|
313
|
-
|
|
314
|
-
### Movement Patterns
|
|
315
|
-
|
|
316
|
-
```javascript
|
|
317
|
-
// Discrete player movement
|
|
318
|
-
game.onUpdate = () => {
|
|
319
|
-
if (game.isLeftKeyDown() && player.x > 0) player.x--;
|
|
320
|
-
if (game.isRightKeyDown() && player.x < 19) player.x++;
|
|
321
|
-
if (game.isUpKeyDown() && player.y > 0) player.y--;
|
|
322
|
-
if (game.isDownKeyDown() && player.y < 14) player.y++;
|
|
323
|
-
};
|
|
324
|
-
|
|
325
|
-
// Enemy movement with timer
|
|
326
|
-
game.timer(200, () => {
|
|
327
|
-
enemy.x += 1; // Move one cell every 200ms
|
|
328
|
-
if (enemy.x > 20) enemy.x = 0;
|
|
329
|
-
}, -1);
|
|
330
|
-
|
|
331
|
-
// Projectile movement (fast)
|
|
332
|
-
game.timer(50, () => {
|
|
333
|
-
bullet.x += 1; // Move one cell every 50ms
|
|
334
|
-
if (bullet.x > 20) game.removeSprite(bullet);
|
|
335
|
-
}, -1);
|
|
336
|
-
```
|
|
337
|
-
|
|
338
|
-
### Collision Detection
|
|
339
|
-
|
|
340
|
-
```javascript
|
|
341
|
-
// Check if player touched collectible
|
|
342
|
-
const item = game.getSprite(player.x, player.y);
|
|
343
|
-
if (item && item.symbol === '⭐') {
|
|
344
|
-
game.removeSprite(item);
|
|
345
|
-
score++;
|
|
346
|
-
}
|
|
347
|
-
```
|
|
348
|
-
|
|
349
|
-
### UI Elements
|
|
350
|
-
|
|
351
|
-
```javascript
|
|
352
|
-
// Score display (fixed to screen)
|
|
353
|
-
const scoreSprite = new Sprite({
|
|
354
|
-
symbol: '0',
|
|
355
|
-
x: 1,
|
|
356
|
-
y: 0,
|
|
357
|
-
fixed: true, // Ignores camera scroll
|
|
358
|
-
z: 100, // Render on top
|
|
359
|
-
color: '#ffff00'
|
|
360
|
-
});
|
|
361
|
-
```
|
|
362
|
-
|
|
363
|
-
## Suitable Game Types
|
|
364
|
-
|
|
365
|
-
**Perfect for FrogJS:**
|
|
366
|
-
- ✅ Snake, Pac-Man
|
|
367
|
-
- ✅ Puzzle games (Sokoban, match-3)
|
|
368
|
-
- ✅ Roguelikes
|
|
369
|
-
- ✅ Tower defense
|
|
370
|
-
- ✅ Grid-based RPGs
|
|
371
|
-
|
|
372
|
-
**NOT suitable:**
|
|
373
|
-
- ❌ Smooth platformers
|
|
374
|
-
- ❌ Physics simulations
|
|
375
|
-
- ❌ Games requiring sub-pixel precision
|
|
376
|
-
|
|
377
|
-
## AI Agent Checklist
|
|
378
|
-
|
|
379
|
-
When generating FrogJS games, ensure:
|
|
380
|
-
|
|
381
|
-
- [ ] Using integer coordinates ONLY (no 0.5, 1.7, etc.)
|
|
382
|
-
- [ ] Importing from versioned CDN URL
|
|
383
|
-
- [ ] Complete HTML file with no external dependencies except FrogJS
|
|
384
|
-
- [ ] Using emojis/characters only (no images)
|
|
385
|
-
- [ ] Movement increments by whole numbers (1, 2, 3, not 0.1)
|
|
386
|
-
- [ ] Collision detection uses `getSprite(x, y)` with integer coords
|
|
387
|
-
- [ ] Grid boundaries checked
|
|
388
|
-
- [ ] Not bypassing FrogJS to draw on canvas directly
|
|
389
|
-
|
|
390
|
-
## Common Mistakes to Avoid
|
|
391
|
-
|
|
392
|
-
### ❌ Fractional Coordinates
|
|
393
|
-
```javascript
|
|
394
|
-
// WRONG
|
|
395
|
-
player.x += 0.5;
|
|
396
|
-
sprite.x = 5.7;
|
|
397
|
-
```
|
|
398
|
-
|
|
399
|
-
### ❌ Direct Canvas Drawing
|
|
400
|
-
```javascript
|
|
401
|
-
// WRONG
|
|
402
|
-
ctx.fillRect(x, y, width, height);
|
|
403
|
-
```
|
|
404
|
-
|
|
405
|
-
### ✅ Correct Approach
|
|
406
|
-
```javascript
|
|
407
|
-
// CORRECT
|
|
408
|
-
player.x += 1;
|
|
409
|
-
game.addSprite(new Sprite({ symbol: '🎯', x: 5, y: 3 }));
|
|
410
|
-
```
|
|
411
|
-
|
|
412
|
-
---
|
|
413
|
-
|
|
414
|
-
**Generated:** This file is automatically updated when FrogJS is built.
|
|
415
|
-
**Last Updated:** $(date)
|
|
416
|
-
|
|
417
|
-
**For AI Agents:** This is your complete reference. Everything you need to generate FrogJS games is in this file.
|