An immersive mobile basketball arcade game built with React Native and Expo. Perform high-flying dunks, smooth layups, and precision shots across a dynamic street basketball court.
- Intuitive Controls: Simple left/right movement with tap/long-press actions
- Realistic Animations: Smooth player movements with dribbling, dunking, layup, and shooting animations
- Dynamic Gameplay: Auto-dribbling system with ball physics and realistic trajectories
- Combo System: Build combos with successful shots to increase your score multiplier
- Multiple Shot Types:
- ๐ฅ Dunks (50+ points) - Epic 360ยฐ spins with power aura
- ๐ Layups (30+ points) - Graceful close-range shots
- ๐ฏ 2-Pointers & 3-Pointers (20-30 points) - Distance-based shooting
- Landscape Mode: Optimized for horizontal gameplay
- Beautiful Court Design: Vibrant orange court with professional basketball markings
Coming soon - Add your gameplay screenshots here
- Node.js (v14 or higher)
- npm or yarn
- Expo Go app on your mobile device
- For iOS: macOS with Xcode
- For Android: Android Studio
- Clone the repository:
git clone https://github.com/yourusername/street-dunk-challenge.git
cd street-dunk-challenge- Navigate to the project directory:
cd StreetDunkExpo- Install dependencies:
npm install- Start the development server:
npx expo start- Scan the QR code with:
- iOS: Camera app
- Android: Expo Go app
- โฌ ๏ธ Left Arrow: Move player left
- โก๏ธ Right Arrow: Move player right
- โฌ๏ธ Up Arrow (Press): Dunk (near hoop) or Shoot (away from hoop)
- โฌ๏ธ Up Arrow (Long Press): Layup (near hoop)
- Move close to the hoop for guaranteed dunks and layups
- Build combos by making consecutive successful shots
- Distance affects shooting accuracy - get closer for better chances
- Combo multiplier increases points for each successful shot
- Frontend: React Native
- Framework: Expo SDK 54
- Graphics: React Native SVG
- Animations: React Native Animated API
- Language: JavaScript (ES6+)
StreetDunkExpo/
โโโ src/
โ โโโ components/
โ โ โโโ Ball.js # Basketball physics and animations
โ โ โโโ Court.js # Court rendering and design
โ โ โโโ GameControls.js # Input controls
โ โ โโโ Player.js # Player character and animations
โ โ โโโ ScoreBoard.js # Score display
โ โโโ screens/
โ โโโ GameScreen.js # Main game logic
โโโ App.js # App entry point
โโโ app.json # Expo configuration
โโโ package.json # Dependencies
- Running: Dynamic leg movement with speed lines
- Dribbling: Realistic ball bouncing with body lean
- Dunking: 360ยฐ spin with explosive jump and power aura
- Layup: Smooth arc with arm extension
- Shooting: Proper shooting form with follow-through
- Dribbling: Realistic bounce timing and height
- Trajectories: Different arcs for dunks, layups, and shots
- Spinning: Proper rotation based on action type
- Shadows: Dynamic shadow effects for depth
- Base Points:
- Dunk: 50 points
- Layup: 30 points
- 3-Pointer: 30 points
- 2-Pointer: 20 points
- Combo Multiplier: Increases with consecutive successful shots
- Accuracy: Distance-based with combo bonuses
The game is configured for landscape orientation. To modify settings, edit app.json:
{
"expo": {
"orientation": "landscape",
"ios": {
"orientation": "landscape"
},
"android": {
"orientation": "landscape"
}
}
}Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Multiplayer mode
- Character customization
- Multiple court themes
- Power-ups and special moves
- Leaderboards and achievements
- Sound effects and background music
- Tournament mode
- Trick shot challenges
This project is licensed under the MIT License - see the LICENSE file for details.
Your Name
- GitHub: @yourusername
- Inspired by classic basketball arcade games
- Built with React Native and Expo
- Special thanks to the React Native community
For support, email your-email@example.com or open an issue in the repository.
Made with โค๏ธ and ๐