58 lines
1.5 KiB
Rust
58 lines
1.5 KiB
Rust
use macroquad::prelude::*;
|
|
use macroquad::rand;
|
|
|
|
#[macroquad::main("MyGame")]
|
|
async fn main() {
|
|
let mut rand_name = String::from("Random bangalore area names");
|
|
let mut last_update = 0.0;
|
|
loop {
|
|
clear_background(WHITE);
|
|
write_name(&rand_name);
|
|
let t = get_time();
|
|
if t - last_update > 1.75 {
|
|
rand_name = random_name();
|
|
last_update = get_time();
|
|
}
|
|
next_frame().await
|
|
}
|
|
}
|
|
|
|
fn write_name(random_name: &str) {
|
|
let font_size = 40.0;
|
|
let width = screen_width();
|
|
let height = screen_height();
|
|
let text_dimensions = measure_text(random_name, None, font_size as u16, 1.0);
|
|
draw_text(
|
|
&random_name,
|
|
(width - text_dimensions.width) / 2.,
|
|
(height - text_dimensions.height) / 2.,
|
|
font_size,
|
|
DARKGRAY,
|
|
);
|
|
}
|
|
|
|
fn random_name() -> String {
|
|
let prefix = read_segments(include_str!("./data/prefix.txt"));
|
|
let mid = read_segments(include_str!("./data/mid.txt"));
|
|
let suffix = read_segments(include_str!("./data/suffix.txt"));
|
|
|
|
format!(
|
|
"{}{}{}",
|
|
choose_random(&prefix),
|
|
choose_random(&mid),
|
|
choose_random(&suffix)
|
|
)
|
|
}
|
|
|
|
fn choose_random(prefix: &[&str]) -> String {
|
|
let idx = rand::gen_range(0, prefix.len());
|
|
match prefix.get(idx) {
|
|
Some(&name) => name.to_string(),
|
|
None => String::new(),
|
|
}
|
|
}
|
|
|
|
fn read_segments(file_contents: &str) -> Vec<&str> {
|
|
file_contents.lines().collect::<Vec<_>>()
|
|
}
|