游戏开发工程师--引擎的事件处理和脚本语言

922 阅读1分钟

事件是游戏过程中发生或希望关注的事情,例如发生爆炸、拾取补血包,玩家使用鼠标键盘等

游戏的交互控制

事件驱动的游戏交互控制

事件与游戏引擎

三种游戏循环架构风格

回调驱动框架

事件更新

视窗消息泵

事件驱动的观察者模式

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()
    

Python建立OGRE程序