From 2759001336f1b0c6a30ea2e6aa35ce7bf28f3890 Mon Sep 17 00:00:00 2001 From: suyambulingamrm Date: Tue, 17 Jun 2014 17:56:22 +0530 Subject: Issue #91. Update kinetics to use canvas width and height values. --- src/kinetics.cpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'src/kinetics.cpp') diff --git a/src/kinetics.cpp b/src/kinetics.cpp index dcbe9b7..ab8fa95 100644 --- a/src/kinetics.cpp +++ b/src/kinetics.cpp @@ -10,10 +10,7 @@ #include #include #include -#define WIDTH 800 -#define HEIGHT 400 -#define MAX_VELOCITY WIDTH / 2 #include "kinetics.h" @@ -24,15 +21,18 @@ kinetics_destroy (kinetics_t *kinetics) } void -kinetics_init (kinetics_t *kinetics) +kinetics_init (kinetics_t *kinetics, const caskbench_context_t *ctx) { + int max_velocity = ctx->canvas_width / 2; kinetics->angle = drand48 () * 2 * M_PI; - kinetics->velocity = MAX_VELOCITY / 8.0 * 7 * drand48 () + MAX_VELOCITY / 8.0; - kinetics->x = WIDTH / 2; - kinetics->y = HEIGHT / 2; + kinetics->velocity = max_velocity / 8.0 * 7 * drand48 () + max_velocity / 8.0; + kinetics->x = ctx->canvas_width / 2; + kinetics->y = ctx->canvas_height / 2; kinetics->x_radius = drand48 () * 10 + 5; kinetics->y_radius = drand48 () * 10 + 5; + kinetics->canvas_width = ctx->canvas_width; + kinetics->canvas_height = ctx->canvas_height; kinetics->width = drand48 () * 120 + 30; kinetics->height = drand48 () * 120 + 30; @@ -47,12 +47,12 @@ kinetics_update (kinetics_t *kinetics, double delta) double y = kinetics->y + sin (kinetics->angle) * kinetics->velocity * delta; double w = kinetics->width/2; - if (x + w > WIDTH) { + if (x + w > kinetics->canvas_width) { if (kinetics->angle >= 0 && kinetics->angle < M_PI / 2) kinetics->angle = M_PI - kinetics->angle; else if (kinetics->angle > M_PI / 2 * 3) kinetics->angle -= (kinetics->angle - M_PI /2 * 3) * 2; - x = WIDTH - w; + x = kinetics->canvas_width - w; } if (x - w < 0) { @@ -63,10 +63,10 @@ kinetics_update (kinetics_t *kinetics, double delta) x = w; } - if (y + w > HEIGHT) { + if (y + w > kinetics->canvas_height) { if (kinetics->angle > 0 && kinetics->angle < 2 * M_PI) kinetics->angle = M_PI * 2 - kinetics->angle; - y = HEIGHT - w; + y = kinetics->canvas_height - w; } if (y - w < 0) { -- cgit v1.3.1-4-g156e