Draft 01/27/2024

This is a draft of the codebase on the date reflected above.
This commit is contained in:
2024-01-27 15:58:41 -05:00
parent b582bdd1d8
commit 70f2c25717
6 changed files with 134 additions and 0 deletions

3
Cargo.toml Normal file
View File

@@ -0,0 +1,3 @@
[workspace]
members = ["vash_caster", "editor"]
resolver = "2"

8
editor/Cargo.toml Normal file
View File

@@ -0,0 +1,8 @@
[package]
name = "editor"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]

3
editor/src/main.rs Normal file
View File

@@ -0,0 +1,3 @@
fn main() {
println!("Hello, world!");
}

11
vash_caster/Cargo.toml Normal file
View File

@@ -0,0 +1,11 @@
[package]
name = "vash_caster"
version = "0.1.0"
edition = "2021"
default-run = "vash_caster"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
sdl2 = { version = "0.36", features = ["gfx"] }
rand = "0.8"

100
vash_caster/src/lib.rs Normal file
View File

@@ -0,0 +1,100 @@
extern crate rand;
extern crate sdl2;
use sdl2::event::Event;
use sdl2::gfx::primitives::DrawRenderer;
use sdl2::keyboard::Keycode;
use sdl2::pixels::Color;
use std::error::Error;
use std::time::Duration;
use rand::prelude::*;
pub fn run() -> Result<(), Box<dyn Error>> {
let sdl_context = sdl2::init()?;
let video_subsystem = sdl_context.video()?;
let window = video_subsystem
.window("Vash Caster", 800, 600)
.position_centered()
.opengl()
.build()
.map_err(|e| e.to_string())?;
let mut canvas = window.into_canvas().build().map_err(|e| e.to_string())?;
let mut event_pump = sdl_context.event_pump()?;
let mut rng = rand::thread_rng();
let mut d_x = rng.gen_range(1..=5);
let mut d_y = rng.gen_range(1..=5);
let mut cur_x = rng.gen_range(0..=800);
let mut cur_y = rng.gen_range(0..=600);
let mut ball_color = Color::RGB(
rng.gen_range(0..=255),
rng.gen_range(0..=255),
rng.gen_range(0..=255),
);
'running: loop {
canvas.set_draw_color(Color::RGB(0, 0, 0));
canvas.clear();
canvas.filled_circle(cur_x, cur_y, 10, ball_color)?;
canvas.present();
for event in event_pump.poll_iter() {
match event {
Event::Quit { .. }
| Event::KeyDown {
keycode: Some(Keycode::Escape),
..
} => break 'running,
_ => {}
}
}
cur_x += d_x;
if cur_x < 0 {
cur_x = 0;
ball_color = Color::RGB(
rng.gen_range(0..=255),
rng.gen_range(0..=255),
rng.gen_range(0..=255),
);
d_x = rng.gen_range(1..=5);
} else if cur_x > 800 {
cur_x = 800;
ball_color = Color::RGB(
rng.gen_range(0..=255),
rng.gen_range(0..=255),
rng.gen_range(0..=255),
);
d_x = rng.gen_range(-5..=-1);
}
cur_y += d_y;
if cur_y < 0 {
cur_y = 0;
ball_color = Color::RGB(
rng.gen_range(0..=255),
rng.gen_range(0..=255),
rng.gen_range(0..=255),
);
d_y = rng.gen_range(1..=5);
} else if cur_y > 600 {
cur_y = 600;
ball_color = Color::RGB(
rng.gen_range(0..=255),
rng.gen_range(0..=255),
rng.gen_range(0..=255),
);
d_y = rng.gen_range(-5..=-1);
}
::std::thread::sleep(Duration::new(0, 1_000_000_000u32 / 144));
}
Ok(())
}

9
vash_caster/src/main.rs Normal file
View File

@@ -0,0 +1,9 @@
use vash_caster::run;
use std::process;
fn main() {
if let Err(e) = run() {
println!("An error has occured: {e}");
process::exit(1);
}
}