diff options
| author | Gustav Sörnäs <gustav@sornas.net> | 2021-02-01 21:36:43 +0100 |
|---|---|---|
| committer | Gustav Sörnäs <gustav@sornas.net> | 2021-02-01 21:36:43 +0100 |
| commit | 354be47619650cd85c1de2a546139c092a88c80f (patch) | |
| tree | f8b3c9991b70604942b4f74d2b7b11d93aa3d504 /pong/src | |
| parent | 1a3f45d0756c693cb894a8c134993f5bc3bfec74 (diff) | |
| download | sylt-354be47619650cd85c1de2a546139c092a88c80f.tar.gz | |
move pong to new repo
Moved to https://github.com/sornas/tihdy_pong using
git subtree split -P pong -b pong
Diffstat (limited to 'pong/src')
| -rw-r--r-- | pong/src/main.rs | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/pong/src/main.rs b/pong/src/main.rs deleted file mode 100644 index 2ab4b4a..0000000 --- a/pong/src/main.rs +++ /dev/null @@ -1,90 +0,0 @@ -use macroquad::{Camera2D, DARKPURPLE, KeyCode, SKYBLUE, clear_background, draw_rectangle, get_frame_time, is_key_down, next_frame, set_camera, vec2}; -use std::path::Path; -use tihdy::{Type, Value}; -use tihdy::vm::OpResult; -use tihdy_derive::extern_function; - -const SCREEN_WIDTH: f32 = 20.0; -const SCREEN_HEIGHT: f32 = 20.0; - -extern_function!(log - [Value::Float(f1), Value::Float(f2)] -> Type::Void => { - println!("({}, {})", f1, f2); - Ok(Value::Nil) - }, -); - -extern_function!(get_delta - [] -> Type::Float => { - Ok(Value::Float(get_frame_time() as f64)) - }, -); - -extern_function!(key_down - [Value::String(s)] -> Type::Bool => { - let s: &str = s; - Ok(Value::Bool(match s { - "w" => is_key_down(KeyCode::W), - "s" => is_key_down(KeyCode::S), - "i" => is_key_down(KeyCode::I), - "k" => is_key_down(KeyCode::K), - _ => false, - })) - }, -); - -extern_function!(my_draw_rectangle - [Value::Float(x), Value::Float(y), Value::Float(w), Value::Float(h)] -> Type::Void => { - draw_rectangle(*x as f32, *y as f32, *w as f32, *h as f32, DARKPURPLE); - Ok(Value::Nil) - }, -); - -extern_function!(clear - [] -> Type::Void => { - clear_background(SKYBLUE); - Ok(Value::Nil) - }, -); - -#[macroquad::main("Pong")] -async fn main() { - - let functions: Vec<(String, tihdy::RustFunction)> = vec![ - ("log".to_string(), log), - ("get_delta".to_string(), get_delta), - ("key_down".to_string(), key_down), - ("draw_rectangle".to_string(), my_draw_rectangle), - ("clear".to_string(), clear), - ]; - - let vm = tihdy::compile_file(Path::new("pong.tdy"), false, functions); - if let Err(errs) = vm { - for err in errs { - println!("{}", err); - } - return; - } - - set_camera(Camera2D { - zoom: vec2(1. / SCREEN_WIDTH * 2., -1. / SCREEN_HEIGHT * 2.), - target: vec2(SCREEN_WIDTH / 2., SCREEN_HEIGHT / 2.), - ..Default::default() - }); - - let mut vm = vm.unwrap(); - loop { - match vm.run() { - Err(e) => { - println!("{:?}", e); - break; - } - Ok(OpResult::Yield) => { - next_frame().await - } - _ => { - break; - } - } - } -} |
