Показать сообщение отдельно
Старый 11.10.2005, 23:53   #2
SubZer0
Администратор
 
Аватар для SubZer0
 
Регистрация: 03.09.2005
Сообщений: 2,408
Написано 301 полезных сообщений
(для 996 пользователей)
хмммм, интересная задача...

я бы сделал так:

очертил бы окружность (или сегмент окружности... видимыйсегмент = началосегмента=уголигрока-полезрения/2 конецсегмента=уголигрока+полезрения/2) вокруг игрока с радиусом поля зрения, и с шагом примерно в половину клетки (можно в четверть)...

от игрока проводил бы по очереди к каждой точке окружности линию* и если, при рисовании линии, в очередной точке встретился объект, то заносил бы его в массив видимых объектов (ессно сначала проверять нужно есть ли он там уже)... потом у тя получается то, что игрок видит


* - линию рисуем следующим образом:
берем разницу координат (х начала - х конца) и делим на два радиуса поля зрения (для точности можно больше) результат получим дельтаХ... точно так-же и про Y
далее берем и пускаем цикл от одного до 2радиуса (или сколько взяли при делении разницы координат) и к Х игрока прибавляем дельтаХ (Y тоже), смотрим есть ли в этой точке объект... и так до конца цикла
__________________
Как минимум я помог многим (с)
(Offline)
 
Ответить с цитированием