java - 我如何检索 Actor 子类的坐标以便将新 Actor 放置在该位置?

标签 java coordinates greenfoot

public void move()
{    
    //if (this.getWorld().getObjects(Marker.class).isEmpty())
    Dog bill = getOneIntersectingObject(Dog.class);
    Marker bone = getOneIntersectingObject(Dog.class);
    if (bone == null); 
    {
        Marker bone= new Marker();
        getWorld().addObject(marker.getX(), marker.getY());
    }
    super.move(1);
}

我正在尝试引用当前 Actor 子类(狗)的位置,以便将另一个子类的标记(骨骼)放置在它所在的坐标处。

最佳答案

您可以通过调用getX()来检索 Actor 的坐标和getY() ,就像你为其他 Actor 做的那样。

如果您想调用“当前”参与者的方法,您可能需要使用 this ,例如 this.getX() 。但这只是必要,如果您需要解决一些歧义。一般情况下直接调用该方法即可。

public void move()
{    
    Dog bill = getOneIntersectingObject(Dog.class);
    Marker bone = getOneIntersectingObject(Marker.class);
    if (bone == null)
    {
        Marker marker = new Marker();
        getWorld().addObject(marker, getX(), getY());
    }
    super.move(1);
}

从显示的摘录中显而易见,需要进行更改:

  • 第二个参数getOneIntersectingObject()Marker.class ,因为你似乎想要这个。
  • if 括号后没有分号。 如果不删除它:这个分号是一个空语句,所以if不会有任何影响。后面的大括号之间的 block 将始终被执行。
  • 重命名第二个 bonemarker来表明你的意图。 (此外,它还会“遮蔽”“外部” bone ,但这在这里没有问题。)
  • 调用 addObject()使用正确的参数:要放置的对象(新标记)及其坐标(通过调用 getX()getY() 检索)。

关于java - 我如何检索 Actor 子类的坐标以便将新 Actor 放置在该位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60582770/

相关文章:

java - 是什么原因造成的 (MongoDB) : PropertyReferenceException: No property findAll found for type

python - 在图片上绘制对角线

javascript - 为什么我的游戏中的球不会停在边界处并弹回来?

java - arraylist vs linked list。为什么最后添加时链表变慢?

java - 使用java获取ping结果

java - 获取 tiff 文件的坐标

java - 制作一种将对象随机放置在屏幕上的方法。

java - 将用户输入与字符串进行比较

java - 为什么我的火箭在碰撞时生命周期不会减少?

当方程不可因式分解时,Java 仅返回 0