我被困在一项任务上,并希望有人可以帮我指出正确的方向。我们应该创造一个类似pacman的游戏,我坚持以下问题:
move()方法还应该告诉玩家尽可能收集一个点。只有当玩家与点位于同一位置时,玩家才能收集点数。 当玩家收集一个点时,玩家的“gatherDots”计数应该增加1,并且点应该消失。当点消失时,其“存在”字段应设置为false。
我知道我应该为Dot类创建一个消失方法并使用' if'方法中的陈述,以转变'存在'如果玩家与点位于同一位置,则从true到false的字段。我们以前没有被要求为任何类创建一个Position方法,到目前为止我们都有; Dot类:字段int x,int y和boolean exists = true。构造函数和toString。游戏类:Fields player,dot1,dot2,dot3。构造函数。 Move方法和toString方法。 Player类:字段int x,int y,int collectingDots。构造函数。收集点方法只说明gatherDots = 0.Set和Get方法以及toString方法。所以,我不确定Disappear方法中需要什么代码,以及在没有Position类的情况下在move方法中写什么。请帮忙。
答案 0 :(得分:0)
您需要检查移动方法的每次调用是否在您要移动的位置有一个点。因此,在计算并设置玩家的新位置后,你所做的就是移动方法:
for (Dot dot: dots) {
if (dot.X == player.X && dot.Y == player.Y) {
dot.Disappear;
player.collectedDots = player.collectedDots+1;
}
}
基本上就是这样,但你需要考虑到你的点和球员可能有宽度和高度(如果在点和球员重叠但不在完全相同的位置时发生碰撞)