Вы можете получить координаты актера, вызвав getX()
и getY()
, как вы делаете это для других актеров.
Если вы хотите вызывать методы для "текущего" актера, вы можете нравится использовать 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
не будет иметь никакого эффекта. Блок между фигурными скобками, следующий за ним, всегда будет выполняться. - Переименуйте второй
bone
в marker
, чтобы показать свое намерение. (Это дополнительно «затеняет» «внешний» bone
, но здесь это не проблема.) - Вызовите
addObject()
с правильными параметрами: объект для размещения (новый маркер), и его координаты (получаются путем вызова getX()
и getY()
).