.. | .. |
---|
214 | 214 | } |
---|
215 | 215 | } |
---|
216 | 216 | |
---|
| 217 | + static Vector3f g = new Vector3f(); |
---|
| 218 | + static Vector3f w = new Vector3f(); |
---|
| 219 | + |
---|
| 220 | + static public Vector3f wind = new Vector3f(); |
---|
| 221 | + static public Vector3f pos = new Vector3f(); |
---|
| 222 | + |
---|
| 223 | + static public Vector3f min = new Vector3f(); |
---|
| 224 | + static public Vector3f max = new Vector3f(); |
---|
| 225 | + |
---|
| 226 | + static public boolean justclicked; |
---|
| 227 | + |
---|
217 | 228 | public void applyGravity() { |
---|
218 | 229 | if (isStaticOrKinematicObject()) |
---|
219 | 230 | return; |
---|
220 | 231 | |
---|
221 | | - applyCentralForce(gravity); |
---|
| 232 | + g.y = gravity.y; |
---|
| 233 | + applyCentralForce(g); |
---|
| 234 | + |
---|
| 235 | + if (pos.x == 0 && pos.y == 0 && pos.z == 0) |
---|
| 236 | + return; |
---|
| 237 | + |
---|
| 238 | + justclicked = false; |
---|
| 239 | + |
---|
| 240 | +// wind.set(pos); |
---|
| 241 | +// wind.x -= worldTransform.origin.x; |
---|
| 242 | +// wind.y -= worldTransform.origin.y; |
---|
| 243 | +// wind.z -= worldTransform.origin.z; |
---|
| 244 | + |
---|
| 245 | +// this.collisionShape.getAabb(worldTransform, min, max); |
---|
| 246 | +// |
---|
| 247 | +// if (pos.x < min.x || pos.x > max.x) |
---|
| 248 | +// return; |
---|
| 249 | +// if (pos.y < min.y || pos.y > max.y) |
---|
| 250 | +// return; |
---|
| 251 | +// if (pos.z < min.z || pos.z > max.z) |
---|
| 252 | +// return; |
---|
| 253 | + |
---|
| 254 | + float dot = pos.x * wind.x + pos.y * wind.y + pos.z * wind.z; |
---|
| 255 | + |
---|
| 256 | + dot = 10; |
---|
| 257 | + |
---|
| 258 | + w.x = wind.x * gravity.z * dot; |
---|
| 259 | + w.y = wind.y * gravity.z * dot; |
---|
| 260 | + w.z = wind.z * gravity.z * dot; |
---|
| 261 | + |
---|
| 262 | + applyCentralForce(w); |
---|
222 | 263 | } |
---|
223 | 264 | |
---|
224 | 265 | public void setGravity(Vector3f acceleration) { |
---|