Тема: РобоКот
Показать сообщение отдельно
Старый 24.02.2011, 17:37   #70
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: РобоКот

Что-то у меня перед обедом потянуло на мысли, РобоКот побудил
Кратно типо такого:
Vector2 {
   int x
   int y
}

Object {
   Vector2 location
   int angle (RotationView)
   Vector2 targetMove
   Vector2 targetView
   int health
   int healthMax
}

TypeObject {
   Enemy
}

self - ссылка на свой объект.

(readonly) vector2 Object.Location
(readonly) int Object.RotationMove - возвращает угол направления движения, может быть null
(readonly) int Object.RotationView - возвращает угол направления прицеливания
(readonly) float Object.Speed - возвращает скорость перемещения

(readonly) Object.Health
(readonly) Object.MaxHealth

(get/set) Object.TargetMove(Vector2 / int x, int y) - точка цели назначения движения, может быть null

(get/set) Object.TargetView(Vector2 / int x, int y) - точка на которую смотрит, может быть null

(readonly) Object.InView(Object / Vector2 / int x, int y) - проверяет если объект в радиусе видения, возвращает от 0 до 1 (на сколько виден). 0 если выходит за радиус видиния. 1 если смотрит прямо на объект.

(readonly) Object.ClosestObjects(TypeObject,distance=100,limit=0) - возвращает список ближних объектов по типу, менее указанного растояния, сортируя от самого ближнего до самого дальнего, и ограничивая длину списка (0 - не ограничено). Список может быть пустым.
Это то что было бы доступно из скрипта, ещё нужно конечно математики побольше, работа с векторами и т.п. Было бы круто в виде обучающего приложения
Ранний набросок..
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
baton4ik (24.02.2011)