This article describes a way to “pick and move objects” in Blender Game Engine.
Unfortunately a lot of published code is not working with the current version of Blender or depends on specific objects within the scene.
I wrote the code to try some 3D Collision Shapes. In order to do that, i wanted to have the objects movable to see how they interact with other objects.
Let me know if you see any improvements and leave a comment if it’s useful for you.
The code does the following:
- pick an object with left or right mouse click
- move it as long as the mouse is clicked, release it otherwise
- move on x/y plane with LMB, move on y/z plane with RMB
Currently i’m fine with moving them with 3DOF, so i can move them in X,Y and Z direction.
I have written this little script, which is triggered by MouseOverAny, Left Mouse Button Click and Right Mouse Button Click.
I’ve assigned the sensors to the camera, which i thought is probably the only object that will stay within the scene.
import bge cont = bge.logic.getCurrentController() LMB = cont.sensors["LMB"] RMB = cont.sensors["RMB"] if LMB.positive | RMB.positive: mouseOver = cont.sensors["MouseOver"] obj = mouseOver.hitObject mouseX = mouseOver.hitPosition[0] mouseY = mouseOver.hitPosition[1] mouseZ = mouseOver.hitPosition[2] if LMB.positive: obj.position[0] = mouseX obj.position[1] = mouseY if RMB.positive: obj.position[1] = mouseY obj.position[2] = mouseZ
The assignments can be seen here:
As i’ve received some good information through YouTube videos, let me know if anyone is interested in seeing some videos from Anagram as well.
I’ve added a linked object and want to move it. How can I do?
If you want to move linked objects, you have to make them a proxy.
CTRL + ALT + P
will do so.