设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3215|回复: 2
打印 上一主题 下一主题

[原创发布] 【脚本:增强逻辑】精灵的监视器机制

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
119 小时
注册时间
2015-1-5
帖子
139
跳转到指定楼层
1
发表于 2016-1-29 12:48:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 MonsterJohnCN 于 2016-1-29 13:46 编辑


原理

通过修改某个精灵的update函数,实现每帧遍历监视器列表,执行监视器列表内的函数


作用

更方便的为精灵添加多个“每帧动作”,通常可用于 粒子系统文字特效淡入淡出行走脚步声 等需要每帧进行数据更新的功能


注册器

JAVASCRIPT 代码复制
  1. function 为精灵注册监视器(精灵) {
  2.     精灵.监视器 = {}
  3.     精灵.update = function () {
  4.         if (精灵.监视器 == null) return
  5.         for (var 名字 in 精灵.监视器) {
  6.             var 当前监视器 = 精灵.监视器[名字]
  7.             if (typeof 当前监视器 == "function") {
  8.                 当前监视器()
  9.             }
  10.         }
  11.         精灵.children.forEach(function (child) {
  12.             if (child.update) {
  13.                 child.update()
  14.             }
  15.         })
  16.     }
  17. }


使用示例(在游戏内按F8后打开调试面板,输入以下代码即可。注意需先创建“为精灵注册监视器”函数)

JAVASCRIPT 代码复制
  1. var 精灵 = new Sprite()
  2. 为精灵注册监视器(精灵)
  3. 精灵.存活时间 = 0
  4. 精灵.监视器.存活时间计数 = function () {
  5.     Graphics.frameCount % 60 == 0 ? console.log("精灵已存活时间:", ++精灵.存活时间) : null
  6. }
  7. SceneManager._scene.addChild(精灵)


其它

使用中文函数的前提:.js文件的字符编码格式为UTF-8
如果担心中文函数造成崩坏,请自行翻译为英文(雾
可通过修改Sprite.prototype.initialize函数,实现自动为每个精灵添加监视器机制(本帖就不说如何实现了,请自行研究)

评分

参与人数 1梦石 +1 收起 理由
余烬之中 + 1 原创发布

查看全部评分

实力跳票,根本停不下来…… | bgpCore.js | 《下一站》2号DEMO | 插件开发无限延期中……正在研制适用性更强的普适模板,不再输出单体插件……

Lv1.梦旅人

梦石
0
星屑
60
在线时间
306 小时
注册时间
2014-8-5
帖子
416
2
发表于 2016-1-29 12:51:41 | 只看该作者
哎哟。不错哟

点评

233,枣  发表于 2016-1-29 13:22
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1232
在线时间
1017 小时
注册时间
2011-4-30
帖子
1516
3
发表于 2016-1-29 21:23:13 | 只看该作者
中文函数的缺陷就是.....有的时候想要加一个字.......
然后,挺好的...虽然不大会用到
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-10 05:38

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表