Как можно назвать элемент структуры?

Вопрос касается механики движения в играх, где мир меняется вокруг игрока, как, например, в игре agar.io. Я пришёл к решению использования двух позиций для игрока: одна позиция указывает на его местоположение в мире, а вторая изменяется во время движения и используется для перемещения других объектов. 

Я разработал структуру `Entity`, которая выглядит следующим образом: 
```rust
Entity {
    world_position: Vec2,
    movement_position: Vec2
}
```

Также имеется метод, который отвечает за изменение позиции объекта, который нужно перемещать, в зависимости от позиции переданного объекта: 
```rust
fn parallax_world_position(&mut self, target: &impl Entity) {
    self.set_world_position(vec2(
        self.get_movement_position().x - (target.get_movement_position().x - target.get_world_position().x),
        self.get_movement_position().y - (target.get_movement_position().y - target.get_world_position().y),
    ));
}
```

На данный момент я использую термин "параллакс" для данного метода и "movement" для поля структуры. Однако, поскольку параллакс обычно относится к платформерам, где фоны движутся с разной скоростью для создания эффекта глубины, мне неясно, как правильно назвать этот подход в моём случае. Как бы вы это назвали?
  • 2 сентября 2024 г. 18:23
Ответы на вопрос 1
В вашем случае подход, когда мир меняется вокруг игрока, можно назвать "передвижением мира" или "динамическим миром". Отсюда могли бы возникнуть различные наименования, которые отражают суть описанного поведения. Вот несколько предложений:

1. **`camera_position`** – если ваша структура `Entity` относится к объектам в игре, то перемещение относительно другого объекта может быть рассмотрено как перемещение камеры, поэтому такое название может быть более интуитивным.

2. **`relative_position`** – это название подчеркивает, что данная позиция (движущаяся) зависит от позиции других объектов, что хорошо подходит для динамически изменяющегося мира.

3. **`offset_position`** – это название отражает концепцию смещения, указывая на то, что это позиция, смещенная относительно чего-то, например, относительно игрока или другого объекта в мире.

4. **`tracking_position`** – такое название указывает, что позиция объекта отслеживается относительно другого объекта. Это может быть особенно уместно, если ваш объект должно «следовать» за чем-то или иметь связи с другими сущностями.

5. **`local_position`** – это название подразумевает, что данная позиция локальна по отношению к окружающему миру или другому объекту, что соответствует вашей идее о перемещении в изменяющемся мире.

Вместо термина "параллакс" вы можете использовать более нейтральные термины, такие как:

- **`update_world_position`** – это название может улучшить читабельность, указав, что метод обновляет позицию объекта в мире на основе других объектов.
- **`adjust_for_movement`** – такое название также передает суть метода, подчеркивая, что он корректирует позицию с учетом движения.

В конечном итоге, выбор имени зависит от предпочтений и контекста вашей игры, но важно, чтобы оно было туда точно и интуитивно.
Похожие вопросы