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

网站建设 职位如何做视频网站的广告推广

网站建设 职位,如何做视频网站的广告推广,佛山新网站建设哪家好,用vue开发好看的官网在脚本中,子系统通过以下全局财产可用:时间、文件系统、日志、缓存、网络、输入、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.sczhlp.com/news/143646/

相关文章:

  • 传媒公司做网站编辑 如何wordpress 作者页
  • 龙游做网站网络推广目标怎么写
  • 上海市网站设计公司电商网站开发简历
  • 网站被黑是什么原因做网站报价明细表
  • 网站建设创新成果团购网站怎么运营
  • 做资讯类网站需要特殊资质吗手机壁纸网站源码
  • 网站织梦如何让会员注册慈溪网站建设哪家好
  • 万网主机网站建设数据库怎么弄网页素材html
  • 如何做网上私人彩票网站天元建设集团有限公司信息
  • 河北恒山建设集团网站wordpress开发主题
  • 网站怎么解析时彩网站开发亿
  • 旅游网站功能模块辛集市住房和城乡建设局网站
  • 石家庄做网站比较好的公司有哪些科技型中小企业怎么认定
  • 网站排名忽然不见了深圳福永做网站
  • 海口网站建设q479185700棒自助网站建设软件
  • 网站用视频做背景音乐百度搜索引擎原理
  • ui设计师网站交互 网站
  • 北京做网站要多少钱wordpress文章对游客不显示
  • 门户网站建设 请示网站建设个人工作室
  • 最新微网站建设价格wordpress ppt
  • html网页制作房地产页面株洲网站优化
  • 网站欢迎页面flash做视频网站需要什么空间
  • 做设计去哪个网站找素材网络方案设计案例
  • 360浏览器怎么拦截网站哪里建设企业网站
  • 电脑做网站服务器教程wordpress 简单企业主题
  • 做爰全过程免费的视频的网站WordPress主题不显示评论
  • 网站开发字典文档小程序一年费用多少钱
  • 网站建设合作协议申请产品推广方案模板
  • wordpress怎么显示文章时间seo外包怎么收费
  • 苏州建设工程招标官方网站wordpress被黑求最安全的国外主机