Camera
From Crumbled World Wiki
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
Inheritance
Static functions
| return | function | description | 
|---|---|---|
| Camera | new() | Create a new Instance of the the Camera | 
| Camera | new(Text nodeName) | Create a new Instance of the the Camera | 
| Camera | new(Text nodeName, bool canRender3D) | Create a new Instance of the the Camera | 
| Camera | new(Text nodeName, bool canRender3D, int frameBufferWidth, int frameBufferHeight) | Create a new Instance of the the Camera | 
| Camera | new(string nodeName) | Create a new Instance of the the Camera | 
| Camera | new(string nodeName, bool canRender3D) | Create a new Instance of the the Camera | 
| Camera | new(string nodeName, bool canRender3D, int frameBufferWidth, int frameBufferHeight) | Create a new Instance of the the Camera | 
Functions
| return | function | description | 
|---|---|---|
| Vec3 | getAtVec() | |
| Vec3 | getUpVec() | |
| Vec3 | getRightVec() | |
| {SceneNode()} | getAllNodeByTypeInView(NodeId type) | |
| {SceneNode()} | getAllNodeByTypeInViewFromNode(SceneNode node, NodeId type) | |
| Line3D | getWorldLineFromScreen(Vec2 pos) | |
| Texture | getTexture() | |
| AmbientLight | getAmbientLight() | |
| DirectionalLight | getDirectionLight() | |
| Vec2 | getScreenCoordFromglobalPos(Vec3 globalPosition) | Get screen coordinates from a global position. | 
| Vec2 | getResolution() | Get the screen resolution of this camera. | 
| bool | getDynamicLightsEnable() | |
| bool | getVisibleInCamera() | Returns true if the node was visible for a camera. | 
| Shader | getDefferRenderShader() | |
| setDefferRenderShader(Shader defferedShader) | Set the shader that will make the final render from deferred buffers to one buffer. | |
| render() | ||
| setLocalMatrix(Matrix mat) | ||
| setLocalPosition(Vec3 position) | ||
| setUseShadow(bool enable) | ||
| setUseGlow(bool enable) | ||
| setUseAntiAliasing(bool enable) | ||
| setUseSelectedRender(bool enable) | ||
| setDynamicLightsEnable(bool enable) | ||
| setClearColor(Vec4 clearColor) | ||
| setShadowScale(float scale) | Cameras shadow map is of the same size as the camera resolution but this can be changed by a scalar with this function. | |
| setAmbientLight(AmbientLight light) | ||
| setDirectionLight(DirectionalLight light) | ||
| setFrameBufferSize(Vec2i size) | ||
| setRenderScript(string scriptName) | ||
| add2DScene(Scene2DNode scene2DNode) | ||
| bool | saveScreenshot(string fileName) | return true if the image was successfully saved to file. Cameras rendering directly to screen can not save a screenshot. | 
| bool | remove2DScene(Scene2DNode scene2DNode) | return true if the scene2DNode was removed. |