У меня есть идея передавать mouseOver.hitPosition сообщением, но я не знаю как это сделать
Почему-то выводит в консоль 'moved' два раза
Ground.py
Код
import bge
from bge import logic
from bge import render
render.showMouse(1)
def main():
cont = bge.logic.getCurrentController()
mouseOver = cont.sensors['mouseOver']
click = cont.sensors ['click']
if mouseOver.positive and click.positive:
logic.sendMessage( 'move', '', 'player', '' )
print( mouseOver.hitPosition )
main()
Player.py
Код
def main():
print( 'moved' )
main()
Добавлено (22 марта 2015, 14:06)
---------------------------------------------
Я немного продвинулся. Теперь объект резко перемещается туда, где сделан клик. Осталось придумать, как сделать, чтобы он передвигался плавно
Ground.py
Код
import bge
from bge import logic
from bge import render
render.showMouse(1)
def main():
cont = bge.logic.getCurrentController()
mouseOver = cont.sensors['mouseOver']
click = cont.sensors ['click']
if mouseOver.positive and click.positive:
x = str( mouseOver.hitPosition.x );
y = str( mouseOver.hitPosition.y );
z = str( mouseOver.hitPosition.z );
logic.sendMessage( 'move', x + ',' + y + ',' + z, 'player', '' )
main()
Player.py
Код
def main( cont ):
obj = cont.owner
pos = []
for message in cont.sensors['move'].bodies:
pos = message.split( ',' )
obj.worldPosition.x = float( pos[0] )
obj.worldPosition.y = float( pos[1] )
obj.worldPosition.z = float( pos[2] )
Добавлено (22 марта 2015, 14:42)
---------------------------------------------
У меня появилась идея ставить по клику пустой куб и делать к нему trackTo