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

  • 前言
在前一篇文章 卡卡游戏引擎快速入门中提到了卡卡游戏引擎采用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
",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");
};
  • 编译项目后运行,点击精灵查看控制台输出
原文地址:https://www.cnblogs.com/pangblog/p/3424098.html