假设我有这些怪物(已经配置了他们的名字,攻击,等级,exp等),但是有什么方法可以跟踪他们的X和Y?
也许是ArrayList<>
?喜欢添加arraylist 1|12|8|3
,其中1
是Monster的ID(以后用作m 1
。gif,12是X,8是Y,3是地图编号。
您认为在Java中将怪物存储在地图中的好方法是什么?
答案 0 :(得分:6)
嗯,你当然不希望通过在面向对象语言中使用对象来利用Encapsulation。
class Monster
{
private String myName;
private int attack;
private int level;
private int experience;
public Monster(String n, int att, int lvl, int e)
{
myName = n;
attack = att;
level = lvl;
experience = e;
}
// other useful methods go here!
}
答案 1 :(得分:5)
您所描述的内容,只是存储了几个int
,是一种名为“Primitive Obsession”的代码气味。
通常更好的解决方案是提出一个意味着你想要它的意思的对象。例如,您可以使用Map
,其中键是怪物,值为 MapPoint
s (X,Y和地图ID)。
通常,您应该开始考虑对象和命名这些您想要使用的概念。
祝你好运!答案 2 :(得分:1)
最好创建一个可容纳变量的“怪物”类。
如果你只存储四个变量,那么更快的鸭子方式就是使用常规数组而不是ArrayList。
int[] monster1 = { 1, 12, 8, 3 };
要访问它们:
int id = monster1[0];