当前位置: 首页 > news >正文

网站建设可行性研究报告合肥关键词排名优化

网站建设可行性研究报告,合肥关键词排名优化,上海有几个区和县,上海 高端网站建设在脚本中,子系统通过以下全局财产可用:时间、文件系统、日志、缓存、网络、输入、ui、音频、引擎、图形、渲染器、脚本、控制台、debugHud、数据库。请注意,由于WorkQueue和Profiler的低级性质,它们不可用于脚本。 事件本身不需要…

在脚本中,子系统通过以下全局财产可用:时间、文件系统、日志、缓存、网络、输入、ui、音频、引擎、图形、渲染器、脚本、控制台、debugHud、数据库。请注意,由于WorkQueue和Profiler的低级性质,它们不可用于脚本。

事件本身不需要注册。它们通过名称的32位 hashes来识别。事件参数(数据负载)是可选的,包含在VariantMap中,由32位参数名称散列标识。对于内置的Urho3D事件,事件类型(E_UPDATE、E_KEYDOWN、E_MOUSEMOVE等)和参数散列(P_TIMESTEP、P_DX、P_DY等)使用帮助宏Urho3D_event和Urho3D_PARAM定义为包含文件(如CoreEvents.h或InputEvents.h)中的命名空间常量。

订阅事件时,必须指定处理程序函数。在C++中,这些必须具有签名void HandleEvent(StringHash eventType、VariantMap和eventData)。URHO3D_HANDLER(className,function)宏有助于定义所需的特定于类的函数指针。例如:

SubscribeToEvent(E_UPDATE, URHO3D_HANDLER(MyClass, MyEventHandler));

脚本中的事件由其字符串名称而不是名称哈希来标识(尽管这些名称在内部转换为哈希)。脚本事件处理程序可以具有与C++中相同的签名,或者在不需要事件类型和参数时使用简化的签名void HandleEvent()。相同的事件订阅如下所示:

SubscribeToEvent("Update", "MyEventHandler");

在C++中,事件必须始终由成员函数处理。脚本内程序事件处理也是可能的;在这种情况下,事件处理程序函数所在的ScriptFile成为事件接收器。有关详细信息,请参阅脚本。

也可以取消订阅活动。有关详细信息,请参阅UnsubscribeFromEvent()。

要发送事件,请填写事件参数(如果需要)并调用SendEvent()。例如,这(在C++中)是引擎子系统在每个帧上发送Update事件的方式。出于性能原因,在C++中,通过调用GetEventDataMap()而不是每次创建一个新的VariantMap对象,在每个帧中重用相同的映射对象。请注意,参数名称哈希位于与事件名称匹配的命名空间中:

using namespace Update;VariantMap& eventData = GetEventDataMap();
eventData[P_TIMESTEP] = timeStep_;
SendEvent(E_UPDATE, eventData);

在脚本中,事件参数(如事件类型)用字符串引用,因此相同的代码如下所示:

VariantMap eventData;
eventData["TimeStep"] = timeStep;
SendEvent("Update", eventData);

通过其他对象发送事件

由于SendEvent()函数是公共的,因此事件可以被“伪装”为源自任何对象,即使实际上不是由该对象的成员函数代码发送的。这可用于简化通信,尤其是场景中组件之间的通信。例如,物理模拟通过使用参与场景节点作为发送者来发出碰撞事件的信号。这意味着任何组件都可以很容易地订阅其自身节点的冲突,而不必知道所涉及的实际物理组件。同样的原则也可以用于任何特定于游戏的消息传递,例如,使“收到的损害”事件源自场景节点,尽管它本身没有损害或健康的概念。

C++11事件绑定和发送

事件可以绑定到lambda函数,包括捕获上下文:

SubscribeToEvent(E_UPDATE, [&](StringHash type, VariantMap& args) {});

std::bind() 类方法:

void MyObject::OnUpdate(StringHash type, VariantMap& args)
{}
SubscribeToEvent(E_UPDATE, std::bind(&MyObject::OnUpdate, this, std::placeholders::_1, std::placeholders::_2)));

std::bind() 丢弃不需要的参数:

void Class::OnUpdate(VariantMap& args)
{}using namespace std::placeholders;SubscribeToEvent(E_UPDATE, std::bind(&Class::OnUpdate, this, _2)));

有一种使用C++可变模板发送事件的方便方法,它减少了所需的样板代码量。使用上面的相同示例,在C++11标准中,代码可以重写为:

using namespace Update;
SendEvent(E_UPDATE, P_TIMESTEP, timeStep_);

在上面的示例中只有一个参数对,但是,此重载方法接受任意数量的参数对。

http://www.dinnco.com/news/77624.html

相关文章:

  • 网站建设:成都今网科技营销推广运营
  • 定制网站建设哪家便宜最佳bt磁力搜索引擎
  • 网站商城运营模式重庆seo优化推广
  • u nas 建设网站网络营销广告策划
  • 农村做网站开发推广论坛有哪些
  • 重庆网站搭建公司百度搜索关键词排名查询
  • 凡科网的网站建设好用吗会计培训机构排名
  • 哪个网站做的系统好用吗域名注册 万网
  • 烟台免费做网站sem和seo的关系
  • 温州市网站制作mac日本官网入口
  • 手机上的软件网站建设企业营销策略有哪些
  • 大型门户网站源码搜多多搜索引擎入口
  • 郑州做网站找谁重庆搜索排名提升
  • 政府网站职能建设建议自己的网站怎么在百度上面推广
  • 重庆网领网站建设公司武汉百度搜索优化
  • 网站建设视频vs批量关键词排名查询工具
  • 哪家做网站的公司好网络销售靠谱吗
  • 给个网站靠谱点2021营销策划公司 品牌策划公司
  • 医院网站建设企业企业网站模板建站
  • 网站建设原理试卷软文的本质是什么
  • 建设制作外贸网站的公司简介下载百度免费
  • 最棒的网站建设seo网站推广免费
  • 渭南免费做网站公司seo属于什么职位类型
  • 学校网站建设制作方案关键词优化公司哪家好
  • 腾讯企业服务账号是多少seo怎么搞
  • 个人做网站需要资质吗百度营销登录平台
  • 宁波seo网站建设费用下载百度软件
  • 到国外做赌博网站是怎么回事北京中文seo
  • 网站建设要做原型图吗推广计划怎么做推广是什么
  • 做辅食网站网页设计费用报价