Create a 2D platformer game-maker app with two distinct modes: Build Mode and Play Mode.
**1. Main Screens & Navigation:**
- **My Levels Screen:** The main screen that shows a gallery of levels the user has created. Each level should be represented by a thumbnail. Tapping a level gives options to "Play" or "Edit". There should also be a "Create New Level" button.
- **Build Mode Screen:** A level editor. This screen should have a main grid-based canvas for level design and a palette/toolbar at the bottom with all available game items.
- **Play Mode Screen:** The screen where the user plays the level. It should render the level created in Build Mode and include on-screen controls for the player character.
**2. Build Mode Functionality:**
- **Item Palette:** A scrollable bar containing icons for all placeable items:
- Standard Block
- Lava Block
- Player Spawn Point
- Goal Block (e.g., a flag)
- **Placing Items:** The user can tap an item in the palette to select it, then tap on the grid to place it.
- **Block Customization:**
- **Resizing:** When a user double-taps a placed block, show arrow controls to increase or decrease its size horizontally and vertically.
- **Custom Texture:** When a user taps a placed block three times, open the device's image picker to let them select a photo to apply as the block's texture.
- **Controls:** Include buttons to "Save" the level, "Play Test," and go "Back" to the My Levels screen.
**3. Play Mode Functionality:**
- **Level Rendering:** Dynamically build and display the level based on the saved data from Build Mode.
- **Player Character:**
- Include a default player character that appears at the "Player Spawn Point" location.
- Implement on-screen controls: left/right arrows for movement and a button for jumping.
- **Game Rules:**
- **Collision:** The character should be able to stand on and collide with Standard Blocks.
- **Hazards:** If the character touches a "Lava Block," they should "die" and respawn at the Player Spawn Point.
- **Winning:** If the character touches the "Goal Block," display a "You Win!" message and provide an option to return to the My Levels screen.
All level data, including block positions, sizes, and custom images, should be stored persistently in a database and linked to the user who created them.
Create a 2D platformer game-maker app with two distinct modes: Build Mode and Play Mode.
**1. Main Screens & Navigation:**
- **My Levels Screen:** The main screen that shows a gallery of levels th...