Автоматический расчёт координат. -
Mexanizm93 - 17.12.2017
Ребят, всем привет.
Нужна помощь. Задумал сделать фишку с сотовой связью в игре. Идея пришла разбить всю карту на равные квадраты и сделать таким образом обхват связи. То и дело менять уровень сигнала в той или иной зоне, и тем самым добиваться разных показателей. Всё решаемо, только вот в геометрии я мягко говоря "никак". Нужна помощь. Как реализовать такое ?
Буду благодарен за любой ответ.
Re: Автоматический расчёт координат. -
Mcc - 17.12.2017
Нахера тут геометрия?
Re: Автоматический расчёт координат. -
Mexanizm93 - 17.12.2017
Quote:
Originally Posted by Mcc
Нахера тут геометрия?
|
Как же ?
Есть к примеру большой квадрат(карта СА). Надо разбить этот квадрат на максимальное число квадратов меньше и получить от каждого квадрата координаты. Я думаю, что тут геометрия.
Re: Автоматический расчёт координат. -
VVWVV - 17.12.2017
Можно просто поставить объекты, например, вышки, как это сделано на LS-RP, и уже использовать функцию IsPlayerInRangeOfPoint.
Re: Автоматический расчёт координат. -
Mexanizm93 - 17.12.2017
Quote:
Originally Posted by VVWVV
Можно просто поставить объекты, например, вышки, как это сделано на LS-RP, и уже использовать функцию IsPlayerInRangeOfPoint.
|
Зачем, когда есть стример и динамические зоны ?
Re: Автоматический расчёт координат. -
Mutha_X - 17.12.2017
IsPlayerInRangeOfPoint и тому подобное для расчёта уровня сигнала - прошлый век.
Вот запилить расчёт уровня сигнала методами геометрической оптики и равномерной геометрической теории дифракции на базе ColAndreas - вот за этим и стоит будущее, т.к. в этом случае имеет смысл задумываться игрокам над тем куда ставить базовые станции.
Re: Автоматический расчёт координат. -
stabker - 17.12.2017
Quote:
Originally Posted by Mexanizm93
Как же ?
Есть к примеру большой квадрат(карта СА). Надо разбить этот квадрат на максимальное число квадратов меньше и получить от каждого квадрата координаты. Я думаю, что тут геометрия.
|
Так это же вроде легко.
Получить ид квадрата по позиции можно так:
PHP код:
(floatround(cur_pos_y / square_size, floatround_floor) * (map_size_x / square_size)) + floatround(cur_pos_x / square_size, floatround_floor)
А разбить карту на квадраты
PHP код:
for(new y; y < map_size_y; y += square_size)
{
for(new x; x < map_size_x; x += square_size)
{
//min_x, min_y, max_x, max_y:
//x, y, x + square_size, y + square_size
}
}
если я конечно не туплю
Re: Автоматический расчёт координат. -
White_116 - 17.12.2017
Что-то вы слишком всё замудрили, разбей карту на квадраты по 50 метров и заполни массив относительно вышек.
Может пригодиться
рисуем окружность по пикселям
PHP код:
//Вернёт координаты чанка.
stock Geometry::GetChunkPos2D(Float:x, Float:y, &X, &Y, square_length, chunk_length, check_border = 1)
{
if(check_border)
{
// создадим искуственную границу дальше которой человек неможет находится
if(x < -square_length)x = -square_length + 1; else if(y > square_length)y = square_length - 1;
if(y < -square_length)y = -square_length + 1; else if(x > square_length)x = square_length - 1;
}
X=floatround((x+square_length)/chunk_length,floatround_floor);
Y=floatround((y+square_length)/chunk_length,floatround_floor);
return 1;
}
Re: Автоматический расчёт координат. -
Mexanizm93 - 17.12.2017
Ребят, всем спасибо. Разбираться не стал, так как долго. Решил запилить руками, через редактор ГЗ. Всё равно всем спасибо.