我正在按照YouTube上RealTutsGML的系列教程 "Java编程。RealTutsGML在YouTube上发布的 "让我们来构建一个游戏 "系列教程。我做了这个名为SmartEnemy的类,其对象应该是跟着玩家走的。然而,当我运行游戏,SmartEnemy出现时,大部分时间它都会移动到屏幕顶部,然后就停留在那里。我试着在网上搜索答案,并使用视频评论中的建议,但没有任何效果。有谁知道我可能做错了什么?以下是SmartEnemy中使其跟随玩家的代码。
public void tick() {
x += velX;
y += velY;
float diffX = x - player.getX() - 16;
float diffY = x - player.getY() - 16;
float distance = (float) Math.hypot((double)(x - player.getX()), (double)(y - player.getY()));
velX = (float) ((-1.0/distance) * diffX);
velY = (float) ((-1.0/distance) * diffY);
if(y <= 0 || y >= Game.HEIGHT - 32) velY *= -1;
if(x <= 0 || x >= Game.WIDTH - 16) velX *= -1;
handler.addObject(new Trail(x, y, ID.Trail, Color.green, 16, 16, 0.02F, handler));
}
这应该是 y
不 x
?
float diffY = y - player.getY() - 16;