feat: Initialize Mia's Clean Run project

Sets up the basic project structure, dependencies, and configuration for the game. Includes initial HTML, TypeScript, and Vite configurations. Adds initial types and constants for game mechanics and assets.
This commit is contained in:
Anthony
2025-11-23 19:32:47 +08:00
parent 995cff776a
commit 77f803f26e
12 changed files with 2342 additions and 8 deletions

120
constants.ts Normal file
View File

@@ -0,0 +1,120 @@
// Physics & World
export const GRAVITY = 0.6;
export const JUMP_FORCE = -15;
export const DOUBLE_JUMP_FORCE = -12;
export const GROUND_HEIGHT = 80;
export const ACCELERATION = 0.5;
export const FRICTION = 0.85;
export const MAX_SPEED_BASE = 9; // Renamed from MAX_SPEED
export const ZOOMIES_SPEED_MULTIPLIER = 1.6;
// Progression
export const LEVEL_SCORE_THRESHOLD = 4000; // Increased significantly for longer levels
export const SPEED_INCREASE_PER_LEVEL = 0.5;
// Visual Feedback
export const SHAKE_INTENSITY = 15;
export const SHAKE_DURATION = 20;
// World Generation
export const CHUNK_SIZE = 1200; // How much world creates at once
// Player Dimensions & Stats
export const MIA_WIDTH = 64;
export const MIA_HEIGHT = 44;
export const MAX_LIVES = 3;
export const INVINCIBILITY_FRAMES = 120; // 2 seconds at 60fps
export const ZOOMIES_DURATION = 300; // 5 seconds at 60fps
// Bark Ability
export const BARK_RANGE = 250;
export const BARK_DURATION = 15; // Frames the visual lasts
export const BARK_COOLDOWN = 60; // Frames until can bark again
// Obstacle Dimensions
export const WEE_WIDTH_MIN = 50;
export const WEE_WIDTH_MAX = 90;
export const WEE_HEIGHT = 20;
export const POO_WIDTH_MIN = 30;
export const POO_WIDTH_MAX = 50;
export const CAT_WIDTH = 70; // Slightly wider for legs
export const CAT_HEIGHT = 50;
export const CAT_POUNCE_RANGE = 200;
export const CAT_POUNCE_VY = -13;
export const CAT_POUNCE_VX = 6;
export const BIRD_WIDTH = 45;
export const BIRD_HEIGHT = 30;
export const BIRD_SPEED = 3.5;
export const LEAF_WIDTH = 30;
export const LEAF_HEIGHT = 30;
export const LEAF_FALL_SPEED = 2.5;
export const ROOMBA_WIDTH = 50;
export const ROOMBA_HEIGHT = 20;
export const ROOMBA_SPEED = 2;
export const FLY_WIDTH = 16;
export const FLY_HEIGHT = 12;
export const FLY_SPEED = 3.5; // Chases you slightly slower than running speed
// Platform Dimensions
export const PLATFORM_HEIGHT = 20;
export const OTTOMAN_HEIGHT = 50;
export const COUNTER_HEIGHT = 120; // For kitchen
export const FRIDGE_HEIGHT = 160;
export const SOFA_HEIGHT = 70;
export const BED_HEIGHT = 80;
export const BATHTUB_HEIGHT = 70;
export const TOILET_HEIGHT = 60;
export const PLATFORM_WIDTH_MIN = 80;
export const PLATFORM_WIDTH_MAX = 150;
// Collectibles
export const CHICKEN_WIDTH = 55;
export const CHICKEN_HEIGHT = 35;
export const STEAK_WIDTH = 45;
export const STEAK_HEIGHT = 35;
export const BISCUIT_WIDTH = 30;
export const BISCUIT_HEIGHT = 30;
export const BONE_WIDTH = 30;
export const BONE_HEIGHT = 15;
// Colors
export const COLOR_WHITE = '#FFFFFF';
export const COLOR_WEE = '#FFD700'; // Gold
export const COLOR_POO = '#4B3621'; // Warm Black/Brown
export const COLOR_CAT = '#1a1a1a'; // Almost Black
export const COLOR_CHICKEN = '#FFA500'; // Orange/Gold
export const COLOR_BONE = '#F5F5DC'; // Beige
// Theme Colors
export const THEME_LIVING_ROOM_WALL = '#FFF5E1';
export const THEME_LIVING_ROOM_FLOOR = '#DEB887';
export const THEME_KITCHEN_WALL = '#E0FFFF'; // Light Cyan
export const THEME_KITCHEN_FLOOR = '#D3D3D3'; // Light Grey Tiles
export const THEME_GARDEN_WALL = '#87CEEB'; // Sky Blue
export const THEME_GARDEN_FLOOR = '#90EE90'; // Light Green Grass
export const THEME_BEDROOM_WALL = '#E6E6FA'; // Lavender
export const THEME_BEDROOM_FLOOR = '#F5DEB3'; // Wheat/Carpet
export const THEME_BATHROOM_WALL = '#F0F8FF'; // Alice Blue
export const THEME_BATHROOM_FLOOR = '#708090'; // Slate Grey tiles
// Customization Options
export const FUR_COLORS = {
RUSTY: '#A0522D',
GOLDEN: '#DAA520',
CHOCOLATE: '#5D4037',
OREO: '#333333',
PINK: '#FFB6C1',
WHITE: '#F0F0F0'
};
export const COLLAR_COLORS = {
RED: '#FF6347',
BLUE: '#4169E1',
PINK: '#FF69B4',
GREEN: '#32CD32',
BLACK: '#000000',
PURPLE: '#9370DB'
};