aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Sandler <dsandler@google.com>2011-03-23 14:51:09 -0400
committerDaniel Sandler <dsandler@google.com>2011-03-23 14:51:09 -0400
commit2a92200023d2554a9bf3b18e8b8e03e6ca6e6179 (patch)
treee7e5a639e2c58a7f50adc46d0c1aa7431fdb73a8
parent9bb57352244a7e2db1e1041ebf91ebef692152c0 (diff)
downloadexperimental-2a92200023d2554a9bf3b18e8b8e03e6ca6e6179.tar.gz
Tuning artwork and physics.
Change-Id: I8418296f2389ff471750dda2034e187173348bcc
-rw-r--r--DreamTheater/res/drawable-nodpi/bouncy.pngbin9232 -> 13302 bytes
-rw-r--r--DreamTheater/res/drawable-nodpi/bouncy_center.pngbin9112 -> 9610 bytes
-rw-r--r--DreamTheater/src/com/android/dreamtheater/BouncyDroid.java22
3 files changed, 13 insertions, 9 deletions
diff --git a/DreamTheater/res/drawable-nodpi/bouncy.png b/DreamTheater/res/drawable-nodpi/bouncy.png
index 895f8b9..ce07d07 100644
--- a/DreamTheater/res/drawable-nodpi/bouncy.png
+++ b/DreamTheater/res/drawable-nodpi/bouncy.png
Binary files differ
diff --git a/DreamTheater/res/drawable-nodpi/bouncy_center.png b/DreamTheater/res/drawable-nodpi/bouncy_center.png
index 9c554fb..ab34c3b 100644
--- a/DreamTheater/res/drawable-nodpi/bouncy_center.png
+++ b/DreamTheater/res/drawable-nodpi/bouncy_center.png
Binary files differ
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) {