CameraExampleCode

From Crumbled World Wiki
Revision as of 07:49, 6 July 2025 by Anders (talk | contribs) (Created page with "==Example Code== <syntaxhighlight lang="lua"> --this = Camera() function create() keyBinds = Core.getBillboard("keyBind"); keyBindForward = keyBinds:getKeyBind("forward"); keyBindBackward = keyBinds:getKeyBind("backward"); keyBindLeft = keyBinds:getKeyBind("left"); keyBindRight = keyBinds:getKeyBind("right"); end function update() local deltaTime = Core.getDeltaTime() local localMat = this:getLocalMatrix() if keyBindForward:getHeld() then localMat:setPos...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Example Code

--this = Camera()
function create()
	keyBinds = Core.getBillboard("keyBind");
	keyBindForward = keyBinds:getKeyBind("forward");
	keyBindBackward = keyBinds:getKeyBind("backward");
	keyBindLeft = keyBinds:getKeyBind("left");
	keyBindRight = keyBinds:getKeyBind("right");    
end

function update()
	local deltaTime = Core.getDeltaTime()
	local localMat = this:getLocalMatrix()
	if keyBindForward:getHeld() then
		localMat:setPosition( localMat:getPosition() - localMat:getAtVec() * deltaTime * 20 )
	end
	if keyBindBackward:getHeld() then
		localMat:setPosition( localMat:getPosition() + localMat:getAtVec() * deltaTime * 20 )
	end
	if keyBindLeft:getHeld() then
		localMat:setPosition( localMat:getPosition() - localMat:getRightVec() * deltaTime * 20 )
	end
	if keyBindRight:getHeld() then
		localMat:setPosition( localMat:getPosition() + localMat:getRightVec() * deltaTime * 20 )
	end
	
	--update rotate
	if Core.getInput():getKeyHeld(Key.space) then
		local moseDiff = Core.getInput():getMouseDelta() * 0.002
		quatRot = Quat()
		quatRot:fromEuler(moseDiff.y, moseDiff.x, 0.0)
		localMat = localMat * quatRot:getMatrix()
	end

	this:setLocalMatrix(localMat)
	return true
end