我目前正在研究“物品掉落”系统,该系统会在杀死敌人时随机生成物品(及其属性).我当前使用的系统是类的层次结构,其中Item是根超级类.每个类都有所有子类共有的特定属性.
理想情况下,在删除项目时,程序将随机选择该项目的一个属性,并相应地向下移动层次结构树.例如,过程如下:
类|树中的随机选择属性确定路径:
项目| ItemType->配备| EquipType->武器| WeaponType->等等
示例代码:
abstract class Item
{
private Type itemType;
private String itemName;
private int itemLevel;
private Rarity itemRarity;
private boolean questItem;
private int itemPrice;
public Item(String name)
{
itemType = Type.randomize();
itemName = name;
itemLevel = randomizeLevel(pLvl, eLvl);
itemRarity = Rarity.randomize(bonus, pLvl, eLvl, iLvl);
questItem = false;
itemPrice = determinePrice();
}
}
Type是一个决定层次结构中下一个级别的枚举.使用此系统,我不知道如何让程序确定下一个级别,然后继续进行下去.
我遇到的问题是,我已经意识到要使它起作用,我必须从层次结构的最底层开始进行工作.有没有一种方法可以使我自上而下地工作,这意味着我可以从基本的Item类开始,然后逐步地进行工作(使用我创建的随机选择属性的方法).
如果不是,是否有实现该系统的特定方法?
解决方法:
您可以从enum类中获取所有枚举的列表-顺序是声明它们的顺序,因此,如果以层次结构顺序声明它们,则可以遍历列表.相关的oracle文档在这里:
https://docs.oracle.com/javase/tutorial/reflect/special/enumMembers.html
标签:hierarchy,java 来源: https://codeday.me/bug/20191027/1945379.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。