From c8abdeda287a62cc5a8233fcb9d167fe2d0da3dc Mon Sep 17 00:00:00 2001 From: Jason Sams Date: Wed, 24 Nov 2010 12:12:26 -0800 Subject: Fix physics bug causing balls to stack. Change-Id: I681905cf7499bb92db47ba2a4cca10d0834cf425 --- libs/rs/java/Balls/src/com/android/balls/BallsRS.java | 2 +- libs/rs/java/Balls/src/com/android/balls/ball_physics.rs | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) (limited to 'libs') 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); -- cgit v1.1