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