Skip to content

Commit bea253f

Browse files
committed
mouse drag bugfix
1 parent 3d3e042 commit bea253f

2 files changed

Lines changed: 11 additions & 11 deletions

File tree

src/com/thomasdiewald/liquidfun/java/DwUtils.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,7 @@ static public PImage createSprite(PApplet papplet, int size, int PARTICLE_SHAPE_
205205
dd = dd*dd; dd = dd*dd; dd = dd*dd;
206206

207207
dd = 1.0f - dd;
208+
dd = DwUtils.clamp(dd, 0, 1);
208209
int a = (int)(dd*255);
209210
pimg.pixels[pid] = a << 24 | 0x00FFFFFF;
210211
}
@@ -213,6 +214,7 @@ else if(PARTICLE_SHAPE_IDX == 1){
213214
if(dd<0) dd=0; else if(dd>1) dd=1;
214215
dd = 1-dd;
215216
// dd = dd*dd;
217+
dd = DwUtils.clamp(dd, 0, 1);
216218
int a = (int)(dd*255);
217219
pimg.pixels[pid] = a << 24 | 0x00FFFFFF;
218220
}
@@ -222,7 +224,7 @@ else if(PARTICLE_SHAPE_IDX == 2){
222224
dd *= 1.8f;
223225
dd = 1-dd;
224226
dd = dd*dd*dd;
225-
if(dd<0) dd=0; else if(dd>1) dd=1;
227+
dd = DwUtils.clamp(dd, 0, 1);
226228
int a = (int)(dd*255);
227229
pimg.pixels[pid] = a << 24 | 0x00FFFFFF;
228230
}
@@ -258,11 +260,12 @@ static public PImage createSprite(PApplet papplet, int size, float exp1, float e
258260
float yn = (y / (float)size) * 2f - 1f;
259261
float dd = (float) Math.sqrt(xn*xn + yn*yn);
260262

261-
if(dd < 0) dd = 0; else if(dd > 1) dd = 1;
263+
dd = DwUtils.clamp(dd, 0, 1);
262264
dd = (float) Math.pow(dd, exp1);
263265
dd = 1.0f - dd;
264266
dd = (float) Math.pow(dd, exp2);
265267
dd *= mult;
268+
dd = DwUtils.clamp(dd, 0, 1);
266269
pimg.pixels[pid] = ((int)(dd * 255)) << 24 | 0x00FFFFFF;
267270
}
268271
}

src/com/thomasdiewald/liquidfun/java/interaction/DwMouseDragBodies.java

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -154,20 +154,17 @@ public boolean reportFixture(Fixture argFixture) {
154154
Body body = argFixture.getBody();
155155

156156
// static bodies can be moved too, but need to set to dynamic for the
157-
// mousejoint to work.
158-
body_type_cpy = body.getType();
159-
if(enable_static_drag){
160-
body.setType(BodyType.DYNAMIC);
161-
}
162-
163-
if (body.getType() == BodyType.DYNAMIC)
164-
{
157+
// mouse-joint to work.
158+
BodyType type = body.getType();
159+
if (BodyType.DYNAMIC == type || enable_static_drag) {
165160
if (argFixture.testPoint(point)) {
161+
body_type_cpy = type;
166162
fixture = argFixture;
163+
body.setType(BodyType.DYNAMIC);
167164
return false;
168165
}
169166
}
170-
return true;
167+
return true;
171168
}
172169

173170

0 commit comments

Comments
 (0)