Ohki … i looked around and this is what i got … still stuck though :spin: ,
here is a very popular piece of code i found online for moving the camera with the mouse - for looking, like in an fps …
This is the video tut i used. I try it out and I seem to be doing everything right, but i cant seem to get this thing working …
######################################################
#
# MouseLook.py Blender 2.46
#
# Tutorial for using MouseLook.py can be found at
#
# [www.tutorialsforblender3D.com](http://www.tutorialsforblender3D.com)
#
######################################################
# import Rasterizer
import Rasterizer
# get controller
controller = GameLogic.getCurrentController()
# get the object this script is attached to
player = controller.getOwner()
# Get sensor named Mouse
mouse = controller.getSensor("Mouse")
# Get the actuators
lookLeftRight = controller.getActuator("LookLeftRight")
lookUpDown = controller.getActuator("LookUpDown")
# get width and height of game window
width = Rasterizer.getWindowWidth()
height = Rasterizer.getWindowHeight()
# define mouse movement function
def mouseMove():
# distance moved from screen center
x = width/2 - mouse.getXPosition()
y = height/2 - mouse.getYPosition()
# intialize mouse so it doesn't jerk first time
if hasattr(player, 'mouseInit') == False:
x = 0
y = 0
# bug in Add Property
# can't use True. Have to use 1
player.mouseInit = 1
# return mouse movement
return (x, y)
# get mouse movement from function
move = mouseMove()
# set mouse sensitivity
sensitivity = 0.001
# Amount, direction and sensitivity
leftRight = move[0] * sensitivity
upDown = move[1] * sensitivity
# set the values
lookLeftRight.setDRot( 0.0, 0.0, leftRight, False)
lookUpDown.setDRot( upDown, 0.0, 0.0, True)
# Use them
GameLogic.addActiveActuator(lookLeftRight, True)
GameLogic.addActiveActuator(lookUpDown, True)
# Center mouse in game window
Rasterizer.setMousePosition(width/2, height/2)
If i can get this to work, i think i might have a solution for my problem …
My solution:
First of all i’ll add this code to my crosshair object, not to the camera …
In the lines where we set the values …
# set the values
lookLeftRight.setDRot( 0.0, 0.0, leftRight, False) // <i><b>Here, instead of DRot, i can write DLoc, to make the object move in one of the axis ..</b></i>
lookUpDown.setDRot( upDown, 0.0, 0.0, True) // <b>Similarly, DLoc here for the other axis .. movement in both axes (2d) corresponding to mouse movement acheived ... right???????</b>
The trouble is, i cant get this code working even for the camera :spin: … neeeeeed haaaaaalp!!