卡卡游戏引擎之MVC模式下的事件处理

来源:互联网 发布:python metrics模块 编辑:程序博客网 时间:2024/06/07 00:48
  • 前言
在前一篇文章卡卡游戏引擎快速入门中提到了卡卡游戏引擎采用mvc的开发模式,这里相信介绍一下引擎在mvc模式下是如何做到低耦合的事件处理的。
  • 在卡卡编辑器中选择一个节点,然后在左侧工具栏中切换到“事件”导航界面
  • 在此可以看到引擎自带的事件列表(onclick,ondown,onup,onmove,onshow,onhide,onenter,onexit等)
  • 选择你想要监听的事件(如onclick),在onclick一行后面点击鼠标,然后出现一个事件处理的对话框,切换到对象操作页,输入你要调用的脚本名称,如showMessage
  • 使用集成开发工具(vs2010或者xcode)打开项目,新建一个继承自KKController的类,如MyController
class MyController : public KKControler{protected:    virtual void onInitEventHandlers();    virtual void onLoadScene(KKScene* scene);public:    void showMessage(KKNode* pSender,KKEventArgs* args);};
  • 添加事件处理函数

void MyController::showMessage(KKNode* pSender,KKEventArgs* args){     KKLOG("your touch %s at %f,%f\n",pSender->getName().c_str(),args->getTouch()->getPoint().x,args->getTouch()->getPoint().y);}

  • 注册函数到事件

void MyController::onInitEventHandlers(){    KKREGISTER_EVENTHANDLER(showMessage);}

  • 注册控制器到场景

void AppDelegate::onInitControllers(){    KKREGISTER_CONTROLLER(MyController,"myscenename");};

  • 编译项目后运行,点击精灵查看控制台输出
原创粉丝点击