游戏开发日记一

5月3日

用Lua作为脚本语言。做了一些脚本接口,可以用脚本创建,移动,旋转物体。可以在脚本中判断鼠标和键盘的状态。

在C++端实现了默认的第三人称视角操作。模仿WOW的视角。

创建了一个场景,效果图如下,

游戏开发日记一_第1张图片
实现脚本代码

require("definition") Actor = { name = "Hero", speed = 1, materialName = "Sinbad.mesh" } function initGameUnit() SetSkyDome(true, "Examples/CloudySky", 1, 15) CreatePlane("Plane", "Examples/BeachStones", 1500, 1500, 0, 1, 0, 0, 20, 20) CreateNode("HeroNode", "Sinbad.mesh") CreateNode("Hero2", "Sinbad.mesh") SetSceneNode("Hero2") TranslateNode(10, 10, 10, 0) SetSceneNode("HeroNode") YawNode(180, 0) CreateCamera("Camera") SetCamera("Camera") SetCameraPosition(0, 10, -30) SetCameraLookAt(0, 0, 0) SetNearClipDistance(5) BindCamera("CameraNode") SetHero() end function update(deltaTime) end function mouseHandle(width, height, mouseX, mouseY, mouseZ) if not IsMouseButtonDown(MouseButtonID.MB_Left) and IsMouseButtonDown(MouseButtonID.MB_Right) then DefaultMBLeft(0.3, 0.1) elseif IsMouseButtonDown(MouseButtonID.MB_Left) and not IsMouseButtonDown(MouseButtonID.MB_Right) then DefaultMBRight(0.3, 0.1) elseif not IsMouseButtonDown(MouseButtonID.MB_Left) and not IsMouseButtonDown(MouseButtonID.MB_Right) then DefaultMBNone() elseif IsMouseButtonDown(MouseButtonID.MB_Left) and IsMouseButtonDown(MouseButtonID.MB_Right) then DefaultMBBoth(Actor.speed, 0.3, 0.1) end end function keyboardHandle() if IsKeyDown(KeyCode.KC_W) then TranslateNode(0, 0, Actor.speed, 0) end if IsKeyDown(KeyCode.KC_S) then TranslateNode(0, 0, -Actor.speed, 0) end if IsKeyDown(KeyCode.KC_A) then TranslateNode(Actor.speed, 0, 0, 0) end if IsKeyDown(KeyCode.KC_D) then TranslateNode(-Actor.speed, 0, 0, 0) end end

你可能感兴趣的:(游戏,脚本,actor,function,语言,lua,游戏)