diff options
| author | Edvard Thörnros <edvard.thornros@gmail.com> | 2021-01-30 23:17:17 +0100 |
|---|---|---|
| committer | Edvard Thörnros <edvard.thornros@gmail.com> | 2021-01-30 23:17:17 +0100 |
| commit | 6b5e59311511b1462c7a10ba1389782f640e77a0 (patch) | |
| tree | eece94c7fe76d3b38c3a28517d0129753825e3c9 | |
| parent | 0ee58ee676945f9a652690f490936080ab5a0623 (diff) | |
| download | sylt-6b5e59311511b1462c7a10ba1389782f640e77a0.tar.gz | |
Yield
| -rw-r--r-- | pong/pong.tdy | 3 | ||||
| -rw-r--r-- | pong/src/main.rs | 20 |
2 files changed, 21 insertions, 2 deletions
diff --git a/pong/pong.tdy b/pong/pong.tdy index 9405a5c..d27a2f5 100644 --- a/pong/pong.tdy +++ b/pong/pong.tdy @@ -51,12 +51,13 @@ init := fn { state.p2.paddle.x = 19. state.p2.paddle.y = 10. - for i := 0, i < 5, i = i + 1 { + for i := 0, i == i, i = i + 1 { log(state.p1.paddle.x, state.p1.paddle.y) log(state.p2.paddle.x, state.p2.paddle.y) update(state) draw(state) + yield } } diff --git a/pong/src/main.rs b/pong/src/main.rs index b29136b..449fee1 100644 --- a/pong/src/main.rs +++ b/pong/src/main.rs @@ -1,6 +1,7 @@ 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; @@ -76,9 +77,26 @@ async fn main() { ]; let _guard = rt.enter(); // so we can async { next_frame().await } - if let Err(errs) = tihdy::run_file(Path::new("pong.tdy"), false, functions) { + let vm = tihdy::compile_file(Path::new("pong.tdy"), false, functions); + if let Err(errs) = vm { for err in errs { println!("{}", err); } + return; + } + let mut vm = vm.unwrap(); + loop { + match vm.run() { + Err(e) => { + println!("{:?}", e); + break; + } + Ok(OpResult::Yield) => { + next_frame().await + } + _ => { + break; + } + } } } |
