|
| 1 | +# Pinball Level Editor |
| 2 | + |
| 3 | +A visual level editor for designing custom pinball boards using all available primitives. |
| 4 | + |
| 5 | +## Features |
| 6 | + |
| 7 | +### Available Primitives |
| 8 | + |
| 9 | +1. **Bumpers** - Circular obstacles that award points and bounce the ball |
| 10 | +2. **Triangular Bumpers** - Triangle-shaped obstacles for variety |
| 11 | +3. **Rails** - Straight walls/guides for directing ball flow |
| 12 | +4. **Curves** - Curved surfaces for smooth ball guidance |
| 13 | +5. **Flippers** - Player-controlled flippers (left and right) |
| 14 | + |
| 15 | +### Controls |
| 16 | + |
| 17 | +#### Toolbar |
| 18 | +- **Select (V)** - Click objects to select and edit properties |
| 19 | +- **Bumper (B)** - Click to place circular bumpers |
| 20 | +- **Triangle (T)** - Click to place triangular bumpers |
| 21 | +- **Rail (R)** - Click start and end points to create rails |
| 22 | +- **Curve (C)** - Click to place curved surfaces |
| 23 | +- **Flipper (F)** - Click to place flippers (Alt+Click for right flipper) |
| 24 | +- **Delete (D)** - Click objects to delete them |
| 25 | + |
| 26 | +#### Keyboard Shortcuts |
| 27 | +- `V` - Select tool |
| 28 | +- `B` - Bumper tool |
| 29 | +- `T` - Triangle tool |
| 30 | +- `R` - Rail tool |
| 31 | +- `C` - Curve tool |
| 32 | +- `F` - Flipper tool |
| 33 | +- `D` - Delete tool |
| 34 | +- `Delete` - Remove selected object |
| 35 | +- `Esc` - Deselect / Cancel current action |
| 36 | + |
| 37 | +#### Mouse Controls |
| 38 | +- **Click** - Place object / Select object |
| 39 | +- **Shift+Click** - Place without grid snapping (precise placement) |
| 40 | +- **Alt+Click** (Flipper tool) - Place right-side flipper |
| 41 | + |
| 42 | +### Properties Panel |
| 43 | + |
| 44 | +When an object is selected, a properties panel appears allowing you to: |
| 45 | +- Adjust size, position, and other parameters |
| 46 | +- Change point values for bumpers |
| 47 | +- Modify angles for curves |
| 48 | +- Switch flipper sides |
| 49 | + |
| 50 | +### Export / Import |
| 51 | + |
| 52 | +- **Export** - Copy board configuration to clipboard as JSON |
| 53 | +- **Import** - Paste JSON to load a board configuration |
| 54 | +- **Save & Play** - Save current board and test it in play mode |
| 55 | +- **Clear** - Remove all objects from the board |
| 56 | +- **Load Default** - Load the original default board layout |
| 57 | + |
| 58 | +### Storage |
| 59 | + |
| 60 | +Board configurations are automatically saved to localStorage, so your designs persist between sessions. |
| 61 | + |
| 62 | +## Tips |
| 63 | + |
| 64 | +1. **Grid Snapping** - By default, objects snap to a 20px grid. Hold Shift to disable snapping for precise placement. |
| 65 | + |
| 66 | +2. **Rails** - Click once for start point, click again for end point. Press Esc to cancel. |
| 67 | + |
| 68 | +3. **Flippers** - Always place a left and right flipper near the bottom for gameplay. The default position is at y=520. |
| 69 | + |
| 70 | +4. **Launch Lane** - The right-side launch lane wall is automatically added and doesn't need to be placed. |
| 71 | + |
| 72 | +5. **Curves** - After placing, use the properties panel to adjust the start/end angles for different curve shapes. |
| 73 | + |
| 74 | +6. **Testing** - Frequently switch to Play mode to test your design and iterate. |
| 75 | + |
| 76 | +## Design Best Practices |
| 77 | + |
| 78 | +1. Place flippers at the bottom (y ~ 520) |
| 79 | +2. Create interesting ball paths with curves and rails |
| 80 | +3. Place bumpers in clusters for exciting gameplay |
| 81 | +4. Use triangular bumpers strategically for deflection |
| 82 | +5. Ensure the ball can always reach the flippers |
| 83 | +6. Test frequently to ensure proper physics interactions |
0 commit comments