Jump to content

moveObject según donde estés mirando


Anzo

Recommended Posts

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
Link to comment

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)

Link to comment
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
Link to comment

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

 

Link to comment
  • Recently Browsing   0 members

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