Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use ggez;
- use ggez::event;
- use ggez::graphics;
- use ggez::{Context, GameResult};
- use std::env;
- use std::path;
- use mint::Point2;
- use cgmath;
- use std::time::{Duration, SystemTime};
- use ggez::nalgebra as na;
- mod rain;
- use rain::{Blob, Rain};
- struct MainState {
- // frames: usize,
- // gtext: graphics::Text,
- pools: Vec<Blob>,
- text: String,
- tick: i64
- // updateFps: function
- }
- impl MainState {
- fn new() -> MainState {
- MainState {
- text: String::from("asdsad"),
- tick: 0,
- pools: (1..10).map(|_x| Blob::new()).collect::<Vec<Blob>>()
- }
- }
- fn updateFps(&mut self){
- // let font = graphics::Font::new(ctx, "/DejaVuSerif.ttf")?;
- self.increaseTick();
- self.text = format!("FPS: {}", self.tick);
- }
- fn increaseTick(&mut self){
- self.tick += 1;
- }
- }
- impl event::EventHandler for MainState {
- fn update(&mut self, _ctx: &mut Context) -> GameResult {
- for pool in &mut self.pools {
- pool.radius -= 0.1;
- }
- Ok(())
- }
- fn draw(&mut self, ctx: &mut Context) -> GameResult {
- graphics::clear(ctx, [0.1, 0.2, 0.3, 1.0].into());
- self.updateFps();
- let font = graphics::Font::new(ctx, "/DejaVuSerif.ttf")?;
- let dest_point = cgmath::Point2::new(1.0, 10.0);
- let stext: &str = &self.text;
- let text = graphics::Text::new((stext, font, 48.0));
- graphics::draw(ctx, &text, (dest_point,));
- for pool in &self.pools {
- let circle = graphics::Mesh::new_circle(
- ctx,
- graphics::DrawMode::fill(),
- na::Point2::new(pool.position.x, pool.position.y),
- pool.radius,
- 0.1,
- graphics::WHITE,
- )?;
- graphics::draw(ctx, &circle, (na::Point2::new(pool.position.x, pool.position.y),))?;
- }
- graphics::present(ctx)?;
- Ok(())
- }
- }
- fn main() -> GameResult {
- let resource_dir = if let Ok(manifest_dir) = env::var("CARGO_MANIFEST_DIR") {
- let mut path = path::PathBuf::from(manifest_dir);
- path.push("resources");
- path
- } else {
- path::PathBuf::from("./resources")
- };
- let cb = ggez::ContextBuilder::new("super_simple", "ggez").add_resource_path(resource_dir);
- let (ctx, event_loop) = &mut cb.build()?;
- let state = &mut MainState::new();
- event::run(ctx, event_loop, state)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement