summaryrefslogtreecommitdiffstats
path: root/libs
diff options
context:
space:
mode:
authorJason Sams <rjsams@android.com>2010-11-24 12:13:40 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-11-24 12:13:40 -0800
commitd1479e7d45bbbe0cc9e087c2840898d45df58183 (patch)
tree7d8c4b88b90f5b0888b6a3eca6fb79a312d6d0d7 /libs
parentb4f666f1c067b611cfa24c1896b53e20fc297eb5 (diff)
parentc8abdeda287a62cc5a8233fcb9d167fe2d0da3dc (diff)
downloadframeworks_base-d1479e7d45bbbe0cc9e087c2840898d45df58183.zip
frameworks_base-d1479e7d45bbbe0cc9e087c2840898d45df58183.tar.gz
frameworks_base-d1479e7d45bbbe0cc9e087c2840898d45df58183.tar.bz2
Merge "Fix physics bug causing balls to stack."
Diffstat (limited to 'libs')
-rw-r--r--libs/rs/java/Balls/src/com/android/balls/BallsRS.java2
-rw-r--r--libs/rs/java/Balls/src/com/android/balls/ball_physics.rs15
2 files changed, 15 insertions, 2 deletions
diff --git a/libs/rs/java/Balls/src/com/android/balls/BallsRS.java b/libs/rs/java/Balls/src/com/android/balls/BallsRS.java
index 76c23b7..42eaede 100644
--- a/libs/rs/java/Balls/src/com/android/balls/BallsRS.java
+++ b/libs/rs/java/Balls/src/com/android/balls/BallsRS.java
@@ -21,7 +21,7 @@ import android.renderscript.*;
import android.util.Log;
public class BallsRS {
- public static final int PART_COUNT = 800;
+ public static final int PART_COUNT = 1000;
public BallsRS() {
}
diff --git a/libs/rs/java/Balls/src/com/android/balls/ball_physics.rs b/libs/rs/java/Balls/src/com/android/balls/ball_physics.rs
index 96c39b1..47eaf1b 100644
--- a/libs/rs/java/Balls/src/com/android/balls/ball_physics.rs
+++ b/libs/rs/java/Balls/src/com/android/balls/ball_physics.rs
@@ -41,7 +41,20 @@ void root(const Ball_t *ballIn, Ball_t *ballOut, const BallControl_t *ctl, uint3
fv -= (vec / (len * len * len)) * 20000.f;
} else {
if (len2 < 0.1) {
- continue;
+ if (xin == x) {
+ continue;
+ }
+ ballOut->delta = 0.f;
+ ballOut->position = ballIn->position;
+ if (xin > x) {
+ ballOut->position.x += 1.f;
+ } else {
+ ballOut->position.x -= 1.f;
+ }
+ ballOut->color.rgb = 1.f;
+ ballOut->arcID = -1;
+ ballOut->arcStr = 0;
+ return;
}
// Collision
float2 axis = normalize(vec);