Вернуться   CoderX :: Forums > Основные форумы > Программинг
Войти через OpenID

Программинг Форум для тем связанных с программированием

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 07.01.2012, 20:37   #1
Пользователь
 
Регистрация: 29.01.2011
Сообщений: 36
Сказал Спасибо: 7
Имеет 4 спасибок в 4 сообщенях
kyzdarovaky пока неопределено
По умолчанию формула расчёта местоположения по координатам игровым и координатам карты мира

Вобщем кто писал бота наверняка сталкивался с этим, как расчитать положение на графической карте относительно игровых координат?
kyzdarovaky вне форума   Ответить с цитированием
Старый 08.01.2012, 00:28   #2
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

вот наверное всё что нужно знать:
delphi Код:
regionSize=32768; GEO_X_FIRST = 11; GEO_Y_FIRST = 10; MAP_MIN_X = (GEO_X_FIRST - 20) shl 15; MAP_MIN_Y = (GEO_Y_FIRST - 18) shl 15; x:=(x - MAP_MIN_X); y:=(y - MAP_MIN_Y); GX:=x div regionSize + GEO_X_FIRST; //получаем х региона GY:=y div regionSize + GEO_Y_FIRST; //получаем у региона mx:=(x-(x mod regionSize)) div (regionSize div regionPixelSize); //получаем координаты на карте my:=(y-(y mod regionSize)) div (regionSize div regionPixelSize); //в зависимости от размера региона в пикселях // тут ещё надо вычитать координаты первого рисуемого региона и всё, можно рисовать  

PS писал на коленке, скорее всего где-то накосячил
__________________
Начало.
supernewbie вне форума   Ответить с цитированием
За это сообщение supernewbie нажился спасибкой от:
Старый 08.01.2012, 00:51   #3
Пользователь
 
Регистрация: 29.01.2011
Сообщений: 36
Сказал Спасибо: 7
Имеет 4 спасибок в 4 сообщенях
kyzdarovaky пока неопределено
По умолчанию

Спасибо большое, только я забыл добавить чтоб функция была арифметическая т.е. чтобы её можно было решить без использования компилятора или хотябы чтобы функцию можно было реализовать на php Смысл кода я понял, div это деление?? а как тогда арифметически решается операнд shl?
kyzdarovaky вне форума   Ответить с цитированием
Старый 08.01.2012, 01:08   #4
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

Цитата:
Сообщение от kyzdarovaky Посмотреть сообщение
div это деление?? а как тогда арифметически решается операнд shl?
да
сдвиг битов числа влево
__________________
Начало.
supernewbie вне форума   Ответить с цитированием
Старый 08.01.2012, 01:10   #5
Пользователь
 
Регистрация: 29.01.2011
Сообщений: 36
Сказал Спасибо: 7
Имеет 4 спасибок в 4 сообщенях
kyzdarovaky пока неопределено
По умолчанию

Цитата:
Сообщение от supernewbie Посмотреть сообщение
сдвиг битов числа влево
Блин, я прочитал уже что сдвиг, а как на php такое написать?
kyzdarovaky вне форума   Ответить с цитированием
Старый 08.01.2012, 01:13   #6
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

http://php.su/learnphp/operators/?bool
<<
__________________
Начало.
supernewbie вне форума   Ответить с цитированием
За это сообщение supernewbie нажился спасибкой от:
Старый 08.01.2012, 01:31   #7
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

x shl 15 == floor(x/(2^15))
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
Старый 08.01.2012, 06:07   #8
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию

alexteam,
shl разве эквивалент деления а не умножения?
__________________
Продажа чистых аккаунтов 4G, L2 EU, AARu, AA EU, Aion EU, Tera RU, Tera EU (ICQ 594297609)
Продажа VK авторег аккаунтов (ICQ 594297609)
Yegor вне форума   Ответить с цитированием
Старый 08.01.2012, 06:42   #9
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

вот бля )
ньюби тож опозорился )

если чего в оригинале:
delphi Код:
blockSize  = 32768;   xbn:=(x div blockSize - x shr 31) + 20;   ybn:=(y div blockSize - y shr 31) + 18;

ну или если флором то
delphi Код:
xbn:=floor(x / blockSize) + 20;   ybn:=floor(y / blockSize) + 18;
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
Старый 08.01.2012, 12:38   #10
Пользователь
 
Регистрация: 29.01.2011
Сообщений: 36
Сказал Спасибо: 7
Имеет 4 спасибок в 4 сообщенях
kyzdarovaky пока неопределено
По умолчанию

Где я накосячил? Запутался совсем, проучаю $mx = 16308 $my = 20960 что обозначают эти значения? Положение точки на графической карте тут рядом не стояло
Код:
<?
$regionPixelXSize = 1812;
$regionPixelYSize = 2620;
$x = 0;
$y = 0;
$regionSize = 32768;
$GEO_X_FIRST = 11;
$GEO_Y_FIRST = 10;
$MAP_MIN_X = ($GEO_X_FIRST - 20) << 15;
$MAP_MIN_Y = ($GEO_Y_FIRST - 18) << 15;

$x = ($x - $MAP_MIN_X);
$y = ($y - $MAP_MIN_Y);
$GX = $x / $regionSize + $GEO_X_FIRST;
$GY = $y / $regionSize + $GEO_Y_FIRST;

$mx = ($x-($x % $regionSize)) / ($regionSize / $regionPixelXSize); 
$my = ($y-($y % $regionSize)) / ($regionSize / $regionPixelYSize); 
?>
kyzdarovaky вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Основные форумы > Программинг



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 10:51.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!