无标题无名氏No.62326498 只看PO
2024-05-09(四)23:37:00 ID:TPWHppd 回应
肥哥们,我现在在实现这样一个功能:
如果设施a存在,为巢穴提供一个数值+1
我现在的实现方式是在设施a被修建起来时令巢穴的数值+1,然后在被摧毁时令巢穴的数值-1
但这样的话就要写两个函数,感觉不够优雅,工作量也很大,有没有更好的实现方式呢(つд⊂)
无标题无名氏No.62331021
2024-05-10(五)11:39:42 ID: TPWHppd (PO主)
>>No.62330879
不是那种游戏啦,是一个很简单的网页游戏,回合制的那种( ゚∀。)
另外就是我们希望“设施”的数量不会过大地影响到运行效率,一个网页游戏占用太多内存不好的吧(*´д`)
但是要把函数执行行动限制单个对象的话,似乎又没有很好的方法完成需求( ;`д´; )
无标题无名氏No.62335932
2024-05-10(五)19:54:19 ID: TPWHppd (PO主)
>>No.62335097
巢穴的数值要求持续性地显示呢|-` )
我们目前的解决方案是给巢穴一个不显式显示的“受影响”属性,存放这个巢穴受到不同影响,标注这个影响的来源,影响的属性键值对和影响优先级
我们决定这样比较接近需求的原生含义。
然后到时候刷新状态也不需要把巢穴的所有设施都遍历,只需要遍历这些影响的来源,判断其是否有效就可以啦|∀` )
我个人觉得最后的这个遍历影响还有一点反直觉,不过我也想不出更好的方法了,不知道肥哥们是怎么想的呢|-` )
无标题无名氏No.62336585
2024-05-10(五)20:58:24 ID: TPWHppd (PO主)
>>No.62335932
呜哇,新的需求下来了,说是要能够显示一个对象的某个属性所受到的影响(;´Д`)
也就是要显示:
巢穴空间:5+2(设施a)+10%(天赋b)
这样的数据|-` )
那这样的话“影响”数组不就没用了吗,里面没有对应属性的标识啊,总不能遍历整个“影响”数组,然后把其中包含了要显示的属性的部分摘出来再显示吧(つд⊂)
目前看下来是需要把各个属性做成数组,然后往里面填充影响对象
也就是说要做成:
巢穴空间=[
{影响源:自身,数值:+5},
{影响源:设施a,数值:+3},
{影响源:天赋b,数值:+10%}
]
这种( ´_ゝ`)
那这样的话显示逻辑也要改了,得在显示时判断每个影响对象是否有效
超麻烦……!做游戏好难啊肥哥(;´Д`)
无标题无名氏No.62343178
2024-05-11(六)11:32:34 ID: TPWHppd (PO主)
做了一晚上感觉还是有些地方不清楚,把影响对象放进属性里倒是挺合理的,毕竟影响的就是属性本身嘛,但是无论是显示属性还是设置属性都变得超麻烦|-` )
我们的数据是dbmongo的json文件,也就是说生成对象时还得按照属性一个个地生成基础的影响对象再填装……
好吧其实我就是不想改之前的代码(;´Д`)
呱!我补要看史山啊( ;`д´; )
无标题无名氏No.62357457
2024-05-12(日)15:52:06 ID: TPWHppd (PO主)
>>No.62335932
我真的服了,最后还是要用一开始的“获得”+“失去”方案,因为影响有不同的失效方式,所以如果用这个发案的话,还得给不同的影响对象绑定对应的“失效”函数( ゚π。)
但是这样的话本质上和“获得”+“失去”没有区别了口牙( ゚ᯅ 。)
因为一部分效果是会采用buff的形式上给对象的,只是设施提供的buff持续时间是永久,直到设施对象失效时才会消失,但是这种buff要每回合检测的话又不是很合理( ›´ω`‹ )
无标题无名氏No.62357478
2024-05-12(日)15:53:40 ID: TPWHppd (PO主)
等一下,buff又要怎么起效呢(´゚Д゚`)
难道每种buff都要做一个“生效”和“失效”函数吗(;´Д`)