为什么在我的Java游戏中,我的SmartEnemy没有跟着玩家走,而是走到了屏幕上方?

问题描述 投票:0回答:1

我正在按照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));
    }
java graphics 2d
1个回答
0
投票

这应该是 yx?

        float diffY = y - player.getY() - 16;
© www.soinside.com 2019 - 2024. All rights reserved.