2021-10-03 19:49:30 +00:00
|
|
|
mod ant;
|
|
|
|
mod constants;
|
|
|
|
|
|
|
|
use macroquad::prelude::*;use crate::ant::init_ants;
|
2021-10-03 10:39:27 +00:00
|
|
|
|
|
|
|
fn window_conf() -> Conf {
|
|
|
|
Conf {
|
2021-10-03 19:23:32 +00:00
|
|
|
window_title: "Ants".to_string(),
|
2021-10-03 10:39:27 +00:00
|
|
|
fullscreen: false,
|
|
|
|
window_width: 1280,
|
|
|
|
window_height: 720,
|
|
|
|
..Default::default()
|
|
|
|
}
|
2021-10-03 10:19:24 +00:00
|
|
|
}
|
2021-10-03 10:39:27 +00:00
|
|
|
|
|
|
|
#[macroquad::main(window_conf)]
|
|
|
|
async fn main() {
|
|
|
|
let map = load_texture("map_scaled.png").await.unwrap();
|
2021-10-03 19:39:24 +00:00
|
|
|
let map_data = map.get_texture_data();
|
2021-10-03 19:23:32 +00:00
|
|
|
let mut ants = init_ants(16);
|
2021-10-03 19:59:18 +00:00
|
|
|
|
2021-10-03 10:39:27 +00:00
|
|
|
loop {
|
2021-10-03 19:23:32 +00:00
|
|
|
// actions
|
2021-10-03 19:39:24 +00:00
|
|
|
ants.iter_mut().for_each(|ant| ant.walk(&map_data));
|
2021-10-03 10:39:27 +00:00
|
|
|
if is_key_down(KeyCode::Escape) || is_quit_requested() {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2021-10-03 19:23:32 +00:00
|
|
|
// render
|
|
|
|
clear_background(BEIGE);
|
|
|
|
draw_texture(map, 0., 0., WHITE);
|
|
|
|
ants.iter().for_each(|ant| ant.draw());
|
|
|
|
|
2021-10-03 10:39:27 +00:00
|
|
|
next_frame().await
|
|
|
|
}
|
2021-10-03 19:23:32 +00:00
|
|
|
}
|