May 102011
I don’t even know…
Okay, I guess I do know, I made it.
Why?
I don’t even know.
How?
bge and a simple gravity script of course.
wanna hear it? here is go!
import bge
from mathutils import Vector
co = bge.logic.getCurrentController()
scene = bge.logic.getCurrentScene()
obList = []
for o in scene.objects:
if o.__class__ == bge.types.KX_GameObject:
obList.append(o)
def calcGrav(obA, obB, G):
m1 = obA.mass; m2 = obB.mass
m = m1*m2
loc1 = obA.worldPosition
loc2 = obB.worldPosition
v = loc1 - loc2
r = v.length
F = G * ( (m) / (r*r) )
return -v * F
def loopGrav(obs, G):
for obA in obs:
fV = Vector((0,0,0))
for obB in obs:
if obA != obB:
fV += calcGrav(obA, obB, G)
obA.applyForce(fV, False)
loopGrav(obList, 1)
keyb = bge.logic.keyboard
if keyb.events[bge.events.ZKEY]>0:
for ob in obList:
ob.applyTorque(Vector((0,0,50)), False)
if keyb.events[bge.events.XKEY]>0:
loopGrav(obList, -2.5)
if keyb.events[bge.events.CKEY]>0:
loopGrav(obList, 15)
HOW TO:
– copy/paste script into blender text editor.
– setup an EMPTY object with logic nodes as shown.
– change ‘Engine’ from ‘Blender Render’ to ‘Blender Game’
– set World>Physics>Gravity to 0.0 (under Bullet)
– create some objects.
– hit ‘p’
This script will (should/might) make all meshes in the scene obey Newton.

Up until the first rag doll shows sup, it looks like a bunch of rectanguloid piranhas having dinner. After skipping breakfast and lunch.