pub const ZOOM_MIN: f32 = 200.0; pub const ZOOM_MAX: f32 = 2000.0; /// Z-axis range for starfield stars /// This does not affect scale. pub const STARFIELD_Z_MIN: f32 = 100.0; pub const STARFIELD_Z_MAX: f32 = 200.0; /// Size range for starfield stars, in game units. /// This is scaled for zoom, but NOT for distance. pub const STARFIELD_SIZE_MIN: f32 = 0.2; pub const STARFIELD_SIZE_MAX: f32 = 1.8; /// Size of a square starfield tile, in game units. /// A tile of size STARFIELD_Z_MAX * screen-size-in-game-units /// will completely cover a (square) screen. This depends on zoom! /// /// Use a value smaller than zoom_max for debug. pub const STARFIELD_SIZE: u64 = STARFIELD_Z_MAX as u64 * ZOOM_MAX as u64; /// Average number of stars per game unit pub const STARFIELD_DENSITY: f64 = 0.01; /// Number of stars in one starfield tile /// Must fit inside an i32 pub const STARFIELD_COUNT: u64 = (STARFIELD_SIZE as f64 * STARFIELD_DENSITY) as u64; /// Name of starfield texture pub const STARFIELD_TEXTURE_NAME: &'static str = "starfield"; /// Root directory of game content pub const CONTENT_ROOT: &'static str = "./content"; /// Root directory of game textures pub const TEXTURE_ROOT: &'static str = "./assets/render"; // We can draw at most this many sprites on the screen. // TODO: compile-time option or config file pub const SPRITE_INSTANCE_LIMIT: u64 = 500; // Must be small enough to fit in an i32 pub const STARFIELD_INSTANCE_LIMIT: u64 = STARFIELD_COUNT * 24;