diff options
author | Jason Sams <rjsams@android.com> | 2010-11-24 12:12:26 -0800 |
---|---|---|
committer | Jason Sams <rjsams@android.com> | 2010-11-24 12:12:26 -0800 |
commit | c8abdeda287a62cc5a8233fcb9d167fe2d0da3dc (patch) | |
tree | dcb284dfe650a5890f714f79c64046a3eec0a9ff /libs | |
parent | c60df506c152d8fd64ae386415060bf354e68d8e (diff) | |
download | frameworks_base-c8abdeda287a62cc5a8233fcb9d167fe2d0da3dc.zip frameworks_base-c8abdeda287a62cc5a8233fcb9d167fe2d0da3dc.tar.gz frameworks_base-c8abdeda287a62cc5a8233fcb9d167fe2d0da3dc.tar.bz2 |
Fix physics bug causing balls to stack.
Change-Id: I681905cf7499bb92db47ba2a4cca10d0834cf425
Diffstat (limited to 'libs')
-rw-r--r-- | libs/rs/java/Balls/src/com/android/balls/BallsRS.java | 2 | ||||
-rw-r--r-- | libs/rs/java/Balls/src/com/android/balls/ball_physics.rs | 15 |
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); |