diff options
author | Daniel Sandler <dsandler@google.com> | 2011-03-23 14:51:09 -0400 |
---|---|---|
committer | Daniel Sandler <dsandler@google.com> | 2011-03-23 14:51:09 -0400 |
commit | 2a92200023d2554a9bf3b18e8b8e03e6ca6e6179 (patch) | |
tree | e7e5a639e2c58a7f50adc46d0c1aa7431fdb73a8 | |
parent | 9bb57352244a7e2db1e1041ebf91ebef692152c0 (diff) | |
download | experimental-2a92200023d2554a9bf3b18e8b8e03e6ca6e6179.tar.gz |
Tuning artwork and physics.
Change-Id: I8418296f2389ff471750dda2034e187173348bcc
-rw-r--r-- | DreamTheater/res/drawable-nodpi/bouncy.png | bin | 9232 -> 13302 bytes | |||
-rw-r--r-- | DreamTheater/res/drawable-nodpi/bouncy_center.png | bin | 9112 -> 9610 bytes | |||
-rw-r--r-- | DreamTheater/src/com/android/dreamtheater/BouncyDroid.java | 22 |
3 files changed, 13 insertions, 9 deletions
diff --git a/DreamTheater/res/drawable-nodpi/bouncy.png b/DreamTheater/res/drawable-nodpi/bouncy.png Binary files differindex 895f8b9..ce07d07 100644 --- a/DreamTheater/res/drawable-nodpi/bouncy.png +++ b/DreamTheater/res/drawable-nodpi/bouncy.png diff --git a/DreamTheater/res/drawable-nodpi/bouncy_center.png b/DreamTheater/res/drawable-nodpi/bouncy_center.png Binary files differindex 9c554fb..ab34c3b 100644 --- a/DreamTheater/res/drawable-nodpi/bouncy_center.png +++ b/DreamTheater/res/drawable-nodpi/bouncy_center.png diff --git a/DreamTheater/src/com/android/dreamtheater/BouncyDroid.java b/DreamTheater/src/com/android/dreamtheater/BouncyDroid.java index efb1b35..a815b1b 100644 --- a/DreamTheater/src/com/android/dreamtheater/BouncyDroid.java +++ b/DreamTheater/src/com/android/dreamtheater/BouncyDroid.java @@ -32,7 +32,7 @@ public class BouncyDroid extends Activity { { boolean mShowDebug = false; - static final int RADIUS = 128; + static final int RADIUS = 100; static final boolean HAS_INITIAL_IMPULSE = true; static final boolean HAS_GRAVITY = true; @@ -43,9 +43,11 @@ public class BouncyDroid extends Activity { static final float MAX_SPEED = 5000f; + static final float RANDOM_IMPULSE_PROB = 0.001f; + public static class World { public static final float PX_PER_METER = 100f; - public static final float GRAVITY = 1000f; + public static final float GRAVITY = 500f; public static class Vec { float x; float y; @@ -148,6 +150,8 @@ public class BouncyDroid extends Activity { }); */ + setBackgroundColor(0xFF444444); + mBug = new ImageView(context); mBug.setScaleType(ImageView.ScaleType.MATRIX); addView(mBug, new ViewGroup.LayoutParams( @@ -251,7 +255,7 @@ public class BouncyDroid extends Activity { break; } - final float SPRING_K = 300000; + final float SPRING_K = 30000; final float FORCE_MAX = 10*SPRING_K; mag = (float) Math.min(mag * SPRING_K, FORCE_MAX); // Hooke's law // float mag = (float) (FORCE_MAX / Math.pow(springForce.mag(), 2)); // Gravitation @@ -262,23 +266,23 @@ public class BouncyDroid extends Activity { if (HAS_FRICTION) { // sliding friction opposes movement - mBody.applyForce(mBody.v.mul(-4f * mBody.m)); + mBody.applyForce(mBody.v.mul(-0.01f * mBody.m)); } if (HAS_EDGES) { if (mBody.p.x - mBody.r < 0) { mBody.v.x = (float) Math.abs(mBody.v.x) * - (HAS_FRICTION ? 0.7f : 1f); + (HAS_FRICTION ? 0.95f : 1f); } else if (mBody.p.x + mBody.r > getWidth()) { mBody.v.x = (float) Math.abs(mBody.v.x) * - (HAS_FRICTION ? -0.7f : -1f); + (HAS_FRICTION ? -0.95f : -1f); } if (mBody.p.y - mBody.r < 0) { mBody.v.y = (float) Math.abs(mBody.v.y) * - (HAS_FRICTION ? 0.7f : 1f); + (HAS_FRICTION ? 0.95f : 1f); } else if (mBody.p.y + mBody.r > getHeight()) { mBody.v.y = (float) Math.abs(mBody.v.y) * - (HAS_FRICTION ? -0.7f : -1f); + (HAS_FRICTION ? -0.95f : -1f); } } @@ -415,7 +419,7 @@ public class BouncyDroid extends Activity { canvas.drawOval(bounds, pt); pt.setStrokeWidth(3); - drawVector(canvas, x, y, mBody.v.x/1000, mBody.v.y/1000, pt); + drawVector(canvas, x, y, mBody.v.x/100, mBody.v.y/100, pt); pt.setColor(0xFF0033FF); for (World.Vec f : mBody.forces) { |