From 808dc157f913fb8f8d1e7a04833c26bf00bba1ab Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Fri, 2 May 2014 15:21:11 +1000 Subject: Split up extantz. --- src/extantz/ephysics_demo.c | 69 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 src/extantz/ephysics_demo.c (limited to 'src/extantz/ephysics_demo.c') diff --git a/src/extantz/ephysics_demo.c b/src/extantz/ephysics_demo.c new file mode 100644 index 0000000..e3aa62f --- /dev/null +++ b/src/extantz/ephysics_demo.c @@ -0,0 +1,69 @@ +#include "extantz.h" + + +#if USE_PHYSICS + +#define EPHYSICS_TEST_THEME "extantz" + +EPhysics_World *ephysicsAdd(GLData *gld) +{ + EPhysics_Body *boundary; + EPhysics_World *world; + EPhysics_Body *box_body1, *box_body2; + Evas_Object *box1, *box2; + char buf[PATH_MAX]; + + // ePhysics stuff. + world = ephysics_world_new(); + ephysics_world_render_geometry_set(world, 0, 0, -50, gld->win_w, gld->win_h, 100); + + boundary = ephysics_body_bottom_boundary_add(world); + ephysics_body_restitution_set(boundary, 1); + ephysics_body_friction_set(boundary, 0); + + boundary = ephysics_body_top_boundary_add(world); + ephysics_body_restitution_set(boundary, 1); + ephysics_body_friction_set(boundary, 0); + + boundary = ephysics_body_left_boundary_add(world); + ephysics_body_restitution_set(boundary, 1); + ephysics_body_friction_set(boundary, 0); + + boundary = ephysics_body_right_boundary_add(world); + ephysics_body_restitution_set(boundary, 1); + ephysics_body_friction_set(boundary, 0); + + box1 = elm_image_add(gld->win); + sprintf(buf, "%s/%s.edj", elm_app_data_dir_get(), EPHYSICS_TEST_THEME); + elm_image_file_set(box1, strdup(buf), "blue-cube"); + evas_object_move(box1, gld->win_w / 2 - 80, gld->win_h - 200); + evas_object_resize(box1, 70, 70); + evas_object_show(box1); + + box_body1 = ephysics_body_box_add(world); + ephysics_body_evas_object_set(box_body1, box1, EINA_TRUE); + ephysics_body_restitution_set(box_body1, 0.7); + ephysics_body_friction_set(box_body1, 0); + ephysics_body_linear_velocity_set(box_body1, -150, 200, 0); + ephysics_body_angular_velocity_set(box_body1, 0, 0, 36); + ephysics_body_sleeping_threshold_set(box_body1, 0.1, 0.1); + + box2 = elm_image_add(gld->win); + elm_image_file_set(box2, strdup(buf), "purple-cube"); + evas_object_move(box2, gld->win_w / 2 + 10, gld->win_h - 200); + evas_object_resize(box2, 70, 70); + evas_object_show(box2); + + box_body2 = ephysics_body_box_add(world); + ephysics_body_evas_object_set(box_body2, box2, EINA_TRUE); + ephysics_body_restitution_set(box_body2, 0.7); + ephysics_body_friction_set(box_body2, 0); + ephysics_body_linear_velocity_set(box_body2, 80, -60, 0); + ephysics_body_angular_velocity_set(box_body2, 0, 0, 360); + ephysics_body_sleeping_threshold_set(box_body2, 0.1, 0.1); + + ephysics_world_gravity_set(world, 0, 0, 0); + + return world; +} +#endif -- cgit v1.1