如何实现 盛大传奇中的背包和装备方式



  • 如何实现 盛大传奇中的背包和装备方式



  • 对传奇印象不大,是指道具装备有多格占位的那种背包?



  • @欧拉欧拉如何实现 盛大传奇中的背包和装备方式 中说:

    对传奇印象不大,是指道具装备有多格占位的那种背包?

    这种做起来还挺麻烦的吧,感觉需要分两个部分去记录装备或道具,一个部分记录持有的装备或道具的数据,另一个记录背包的占格信息,拾取道具时还要判断道具的占格,然后在占格信息中查询出可以被正常放下的位置,否则就无法拾取。



  • @欧拉欧拉 和大型网络游戏一样的背包装备方式一样 随时捡 拖拽装备 拖拽背包内互换位置 拖拽装备到 人物装备格子上 判定是否可装备 背包满了以后 不可捡取。 。。效果我是实现了 但是逻辑上很多漏洞 ,就想知道有没有更好的 表达方式,最后一个效果 我一直没处理好,背包拖到人物格子上时能判定是否可装备 但在人身上拖到背包装备互换时 一直做不到判定,我拖武器到背包中的任意物品都会被换到人物的武器格子上。。。。



  • @男神1987 做了个范例,思路基本是围绕数据来处理的,也就是只处理数据,交换道具后的结果都是在完成操作后,按数据结果重新生成。 范例在这:拖拽背包.evk 武器是【闪电】、【短剑】;道具是【鸡腿】、【药水】;装备是【红心】、【书籍】,装备我没有区分头部装备和身体装备,直接是按装备算的,所以可以互换,就像这类游戏的配饰一样,如果要严格区分,按武器的做法来就行。如果物品有体积设定(一个物品可以占多个格子)会难上不少,我就没做了,你看着这个范例的思路研究研究吧。 GIF.gif



  • @欧拉欧拉 有点搞不懂数组,怎么确认生成精灵的位置,75+(loopindex%5)*80和62+int(loopindex/5)*80怎么更改生成精灵的位置



  • @amx007
    75+(loopindex%5)*80和62+int(loopindex/5)*80
    这两串公式你这么看(对照下图):

    • 初始x坐标+(循环下标%列数)*横向间隔
    • 初始y坐标+int(循环下标/列数)*纵向间隔

    这样看起来应该就会清晰一些了。
    undefined



  • @欧拉欧拉 我参考了你的游戏工程,创建格子的时候正常,但是创建道具的时候为什么会叠加在一起



  • @amx007 是不是事件表哪里写错了,可以发一下事件表看一下🤔


Log in to reply