Jump to content

moveObject según donde estés mirando


Anzo

Recommended Posts

Posted (edited)

Pues tengo algo que crea un objeto en frente de ti, por ahí todo bien, pero yo al darle click el objeto se tiene que mover hacia adelante de mi hasta un cierto lugar, el problema viene es cuando doy click. estoy poniendo algo como : moveObject(object, x, y+50,z) y siempre lo manda al norte, y yo quiero que el objeto se mueva es +50 pero según donde estés mirando. No tengo ningún código hasta el momento pero solo es algo como, precionas click derecho y un objeto se mueve. 

Edited by Anzo
Posted

asi intente (antes ya habia usado esto para crear objetos en frente de ti siempre) :

function onMises()
	if (isElement(misilei) == true) then
		local x,y,z = getElementPosition(misilei)
		local rx,ry,rz = getElementRotation(misilei)
		local matrix = Matrix.create(x,y+20,z)
		local forward = (Matrix.getForward(matrix) * 2)
		local pos = (Matrix.getPosition(matrix) - forward)
		moveObject(misilei, 500,pos)
	
		setTimer(createExplosion, 800, 1, x, y+50,z, 2,source)
		setTimer(destroyElement, 800, 1, misilei)
	end
end

misilei está definida como variable global (es un modelo de un misil :v)

Posted (edited)
local desiredRelativePosition = Vector3(0, 5, 0)
local matrix = player.matrix
local newPosition = matrix.transformPosition(desiredRelativePosition)
moveObject(object, 500, newPosition:getX(), newPosition:getY(), newPosition:getZ())

 

Edited by Tomas
Posted

Perdón por responder tarde, pero apenas hoy miro el foro.

Eso no me funciono, sale siempre para el mismo lugar, para el norte, dejo el código por si acaso:

addEvent("onMisil",true)

local misilei

function misile()
	local x,y,z = getElementPosition(source)
	local rx,ry,rz = getElementRotation(source)
	local matrix = Matrix.create(x,y,z)
	local forward = (Matrix.getForward(matrix) * 2)
	local pos = (Matrix.getPosition(matrix) + forward)
	misilei = createObject(345,pos,rx,ry,rz)
	bindKey(source,"mouse1","down",onMises)
	
end
addEventHandler("onMisil", root, misile)

function onMises()
	if (isElement(misilei) == true) then
		local desiredRelativePosition = Vector3(0, 5, 0)
		local matrix = player.matrix
		local newPosition = matrix.transformPosition(desiredRelativePosition)
		moveObject(object, 500, newPosition:getX(), newPosition:getY(), newPosition:getZ())
	
		setTimer(createExplosion, 800, 1, x, y+50,z, 2,source)
		setTimer(destroyElement, 800, 1, misilei)
	end
end

 

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...