事件是游戏过程中发生或希望关注的事情,例如发生爆炸、拾取补血包,玩家使用鼠标键盘等
游戏的交互控制
事件驱动的游戏交互控制
事件与游戏引擎
三种游戏循环架构风格
回调驱动框架
事件更新
视窗消息泵
事件驱动的观察者模式
OGRE事件处理
Ogre的事件源
渲染事件:帧事件和内部事件,在主模块中
帧事件:指重复执行帧渲染操作的事件处理,由帧事件FrameEvent和帧监听类FrameListener等定义
内部事件:某个对象执行一些操作而引发的内部事件处理,由内部事件类定义,如Node类、MovableObject、Camera、SceneManager、AnimationTrack、Resource、RenderSystem类,如Node对象放到场景图引发的事件
frameRenderingQueued方法
/OgreMain/include/
外部事件:窗口事件、键盘、鼠标、触摸等输入事件,GUI的控件事件等,在OgreBites::KEYDOWN
Components/Bites/include/OgreInput
Panda3D事件处理
脚本语言
为了缩短(edit-compile-link-run)而创建的编程语言的拓展语言
通用脚本语言PYthon
游戏引擎的脚本语言Lua
网页脚本语言JavaScript
脚本程序与游戏引擎的组合方式
回调脚本
事件处理器脚本
脚本驱动的引擎系统
脚本驱动的游戏
多线程的脚本
游戏引擎的脚本接口定义
脚本语言主要负责游戏中哪些经常变化的部分,比如游戏的运行逻辑、游戏的界面 方便控制游戏软件的行为和逻辑,提供调用游戏引擎的API
Python建立Panda3D
from direct.showbase.ShowBase import ShowBase
class MyApp (ShowBase):
def __init__(self):
ShowBase.__init__(self)
self.environ = self.loader.loadModel("models/environment")
self.environ.reparentTo(self.render)
self.environ.setScale(0.25,0.25,0.25)
self.environ.setPos(-8,42,0)
app = MyApp()
app.run()