• 字体软件
  • 免费字体
  • 快捷图标
  • Pixiv
当前位置:主页 > 手游资讯 > 在多猫里怎么把金币准换成铜币?

在多猫里怎么把金币准换成铜币?

来源:未知 作者:礁石游戏网 2025-06-13 13:07

MOPET(猫扑宠物游戏)货币系统的探讨

mopet游戏中原有货币为[银币],是游戏中的一种canAmount道具

其归类为道具的一种,属于道具,此种类道具拥有一个标志性字

段为货币,代表拥有此种类道具可以做为货币来进行交易流通.

目前有个问题,[银币]面额比较大,对于一些小额支付并不方便

无法拆分为0.1银币,所以拟增加新货币为[铜币],100铜币兑换1

银币,可以想象为面值为 100的人民币(银币)和面值为1的人民

币(铜币)

重新审视我们的货币系统,我们可以将货币抽象出一个最低交易

单位,如分,分本身只是一个抽象的概念,可以并没有分这种

的货币,他只是代表一个价值单位,以此来体现货币价值.所有的

真实的货币(银币,铜币)都是以兑换多少等价分的比率来衡量

其价值,我们可以假想为游戏最低交易单位就是1铜币,所以1铜

币等于1分,so,[铜币]这样道具拥有一个兑换比率字段标志为1,

意思为1铜币兑换为1分,同样银币也有这个字段标志为100,意思

为1银币兑换100分,如我们以后要出新的更大面额的货币,只需

要增加新货币单位道具如[金币],标志其属性为[货币]并写上兑

换比率字段为10000,即可确定关系(1金=100银=10000铜)

这样就可以很清晰的区分出各种货币兑换关系.

对于程序的货币操作接口,应该有一个基于分的操作方法(可以考

虑将User.changeCoin操作修改成参数为分),同时增加一个方法

changeCoin(货币种类,数量);

使用起来

changeCoin(100) //操作最低价值单位(分)

changeCoin(Globals.YIN,100) //操作对象为银币

changeCoin(Globals.TONG,100) //操作对象为铜币

而非目前的

changeTinCoin(int num)//操作铜币

changeCoin(int num)//操作银币

因为照目前的写法,以后增加新货币要再增加方法来进行操作.扩展

性不佳

游戏里的兑换关系

我们考虑基于游戏里的兑换关系,其实仅需考虑在官方对用户出售所标

之价格,比如武器店和道具店,我们标志的价格应该是基于基础单位分

的,操作方法使用 changeCoin(100)这样,会出现一个问题就是比如用

户携带了1000个银币和50个铜币,去道具店购买30铜币的东西,我们的

写的算法如何进行扣除,这点上我看郑英已经解决,从最低单位[铜币]开

始寻,不足就用上一级的货币补进来就可以.

我们仅对changeCoin(100)这个方法里加入这个自动兑换的逻辑,

不要在

changeCoin(Globals.YIN,100) //操作对象为银币

changeCoin(Globals.TONG,100) //操作对象为铜币

这两个方法里加,这两个方法仅检测用户是否有足够的此种类货币

比如游戏中:

王小二斜了你一眼说:哥们儿,给10个铜板儿吧!

此时使用操作方法changeCoin(Globlas.TONG,10)

如果用户只携带了1银币,转给他1银,肯定返回flash,他不会自动帮你

兑换还找你钱,你需要到钱庄之类的地方将银币兑换成铜币后转给他10

铜币.

大体的思想是这样,这里面自动兑换逻辑还是需要仔细考虑下

比如我身上携带了 10银币和10000铜,这时给我changeCoin(100)加了

100铜也就是1银,结果应该是11银10000铜,不要自动将用户的铜转成银,

先将数字转成最大的货币单位来增加.

changeCoin(正数),把数变为最大单位开始加

changeCoin(负数),从用户拥有最小单位开始扣

这是我的一些想法,希望多提意见积极改进目前的货币系统^^

相关资讯
热门推荐
最新攻略