找回密码
 点一下
查看: 1615|回复: 6

关于单位信息面板的一些....结果

[复制链接]
发表于 2016-12-6 14:59:06 | 显示全部楼层 |阅读模式
自制单位面板会遇到几个问题...

1.如何判断当前面板显示的单位。
有多选存在,但是无法获取table切换后具体选择的单位。
可是发现并不是需要获取,因为在多选后,属性面板可以直接用隐藏处理....这也是默认info panel 的做法,不唐突,实际效果不错。
因此算解决


2.如何无延迟的切换显示面板。
自制的多选、单选面板,使用选择、取消选择事件来做是有很大毛病的,那就是延迟问题。
几乎有0.25 秒现实时间的延迟,事件才会触发,因此实际效果非常恶心,已经恶心到了不能将就着用的地步。
然而希望出现了。


衔接后的infopanel中,有 3个pane会自动切换显示状态。


grouppanel,多选子组面板
unitpanel,没有老兵行为、属性行为的pane
heropanel,与unitpane相反的pane
这3个面板是不会同时显示的,并且衔接后的面板,在衔接后在其中创建对话框项,创建的对话框项也将继承他的显示、隐藏。
这真是他娘的屌爆了。
关于UI方面的,无延迟的做出来的东西,实在真的是屈指可数,战网延迟问题使得对话框的功能受到了极大的阉割。
界面画的再好,延迟0.25秒,有屁用?点击事件甚至能到0.5秒,以至于点击隐藏类的对话框必须用禁用、或者单独布尔作为判定、否则快速点击会执行两次之类的坑爹问题。
所以,私以为现在星际2地图,最大的,最严重的问题,根本不在于霸王条款,而是战网延迟的问题,其他的问题在这一问题之下,都显得无足轻重。
然而身为作者,几乎是没有办法去解决这一问题的,除非给暴雪中国N多钞票支持??呵呵呵呵呵呵
顺便问一下美服的游戏大厅有没有类似的延迟./..知道的大神希望能回答一下,以做对比。

3.关于显示单位的属性的效率问题。
如果所有属性显示的文本都是自己写的,那么这一效率将成为比较大的问题。
首先他的刷新频率肯定很高,无论做法如何,因为单位会变得属性太多太多,何况有的属性还无法捕获到变化事件,只能用周期刷新来完成。
那么这样的成本是很高的,每个属性都要执行3个主要函数:
1.获取属性实数、整数
2.转换为文本
3.设置对话框项文本。

如果是 10 个属性显示,那么几乎同一时间会跑 3*10 个函数,这个周期在0.0625秒至1 秒之间,10个玩家就是多少呢?300,很恐怖的。

但是用文本函数就好多了了,用用户数据来标记一个数据。
然后显示的地方用整数文本函数代替,这样改变的时候只用修改显示玩家的用户数据,效率可以提高很多很多(当然比xml还是差远了,可是对于地图效率几乎是无影响了)。

综合以上,一个完美的操作界面就可以做出来,无延迟、高效率、支持多选。
这是很重要的,尤其是无延迟。。。。胆子还是要大一点才好,唉,其实主要是吐槽一下战网的延迟,要没这破事,哪用整这么多破玩意儿。。。
是真的费劲啊,是真的费劲.....

发表于 2016-12-6 20:56:32 | 显示全部楼层
无法获取tab切换子组,这一点在命令面板上尤其尴尬。所以当玩家选中多种不同单位的时候,即使你知道玩家点击了哪个按钮,也无法通过点击直接获取发布的指令。
所以rpg地图只要衔接了命令面板按钮,就能随意定制点击后的动作,心有多大,功能就有多强。而非rpg衔接命令面板则基本没什么鸟用。
回复

使用道具 举报

发表于 2016-12-8 10:22:54 来自手机 | 显示全部楼层
可否请你稍微教我下如何用文本函数来显示数据,比如说在左下角显示某个单位的自定义属性”力量”的属性点数

点评

你需要先会对话框,如果会的话看以下的话: 正常思路的自制对话框用的是周期设置文本,或者单位属性改变事件时设置文本。 但是这个做法的效率并不高,因为需要实时的设置对话框项的文本,而且组合类文本字符串  详情 回复 发表于 2016-12-10 06:31
我用的是一种绕的办法,貌似并不能通过文本函数显示单位身上的大部分数据。 除了行为叠加层数,这好像还是最近才加的.. 但是可以为不同的玩家改变不同的数据模板,比如一个效果的伤害量。 比如创建一些假的  详情 回复 发表于 2016-12-10 06:28
回复

使用道具 举报

发表于 2016-12-8 21:42:30 | 显示全部楼层
没有完全看懂,有没有演示啊
回复

使用道具 举报

 楼主| 发表于 2016-12-10 06:28:15 | 显示全部楼层
2104075556 发表于 2016-12-8 10:22
可否请你稍微教我下如何用文本函数来显示数据,比如说在左下角显示某个单位的自定义属性”力量”的属性点数

我用的是一种绕的办法,貌似并不能通过文本函数显示单位身上的大部分数据。

除了行为叠加层数,这好像还是最近才加的..

但是可以为不同的玩家改变不同的数据模板,比如一个效果的伤害量。

比如创建一些假的数据模板伤害效果,比如显示力量属性这个效果命名为UIPlayerDisplayPower

然后你通过触发器对不同玩家改变这个效果的伤害量,结合文本中的引用数据,就可以对不同玩家显示的。

不过具体在什么时候,捕获哪个单位的力量,就是你自己的事情了,总之不是很直接的有这么一个代码或者功能可以完成的。

点评

我发现你这种办法简直太给力,不仅仅是文本显示问题,甚至还可以绕过自定义属性,直接把伤害加成绑定到这个虚拟伤害值上面。ps.初始就50多层的属性点……一个buff技能加10层,电脑直接卡死。用这个方法就好多了  详情 回复 发表于 2016-12-16 15:20
回复

使用道具 举报

 楼主| 发表于 2016-12-10 06:31:10 | 显示全部楼层
2104075556 发表于 2016-12-8 10:22
可否请你稍微教我下如何用文本函数来显示数据,比如说在左下角显示某个单位的自定义属性”力量”的属性点数

你需要先会对话框,如果会的话看以下的话:

正常思路的自制对话框用的是周期设置文本,或者单位属性改变事件时设置文本。

但是这个做法的效率并不高,因为需要实时的设置对话框项的文本,而且组合类文本字符串动作就更多了。

所以本质上只是一个增加代码可读性跟效率的做法而已。
回复

使用道具 举报

发表于 2016-12-16 15:20:25 来自手机 | 显示全部楼层
东方油瓶 发表于 2016-12-10 06:28
我用的是一种绕的办法,貌似并不能通过文本函数显示单位身上的大部分数据。

除了行为叠加层数,这好像 ...

我发现你这种办法简直太给力,不仅仅是文本显示问题,甚至还可以绕过自定义属性,直接把伤害加成绑定到这个虚拟伤害值上面。ps.初始就50多层的属性点……一个buff技能加10层,电脑直接卡死。用这个方法就好多了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-12-23 17:21 , Processed in 0.404771 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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