Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Скриптинг карты в игре (https://javascript.ru/forum/css-html/59775-skripting-karty-v-igre.html)

mader 26.11.2015 01:40

Скриптинг карты в игре
 
Здравствуйте. Не могу сообразить, возможно кто-то уже сталкивался с такими вещами.
Необходимо реализовать карту высот.

например, картинка-фото с
двумя горами или холмами, надо , как бы спроецировать 3-х мерные перепады высот на экран.

То есть, если грубо, в результате кликаешь на фотку, в зависимости от места выдавалось алерт(высота 10м), как то так.

у меня пока пришло в голову разбить картинку на квадраты и записать скажем в базу или хранить в виде массива, типа с 1=го по 100 пиксел по икс и с 1 до 200 по игрек это высота 1м.

может есть какие-нибудь другие варианты?

Deff 26.11.2015 07:02

Если картинка склонов гор контрастная, если картинка(желательно в .png) загружена на текущий ресурс, где и скрипт то мон загрузить её в canvas.
Далее, в canvas можно выделить линии склонов и даже c'апроксимировать её функцией.
Мон отследить координаты клика(даже без сanvas) привязать эти координаты, к низу горы(картинки), зная массив(или функцию) координат обвода горы, мон определить текущую высоту в точке клика

Rise 26.11.2015 18:08

mader, самый простой вариант
<img src="http://oi63.tinypic.com/j8cg7o.jpg" alt="hill" usemap="#map">
<map name="map">
	<area nohref title="30m" alt="30m" shape="poly" coords="83,62,67,34,81,28,110,36,115,61">
	<area nohref title="20m" alt="20m" shape="poly" coords="80,83,37,45,51,16,113,28,134,53,122,79">
	<area nohref title="10m" alt="10m" shape="poly" coords="64,97,23,77,11,37,28,11,76,4,136,28,147,60,125,90">
	<area nohref title="0m"  alt="0m"  shape="rect" coords="0,0,150,100">
</map>

mader 26.11.2015 18:21

Rise,
Классная идея. Спасибо. Скорее всего так и буду делать.
Deff,
Ваша мысль интересная, но какая-то сложноватая, по крайней мере для меня. Не хочется так сложно заморачиваться. В любом случае для моей игры слишком сложно. НА будущее может пригодится. Все равно огромное спасибо.


Часовой пояс GMT +3, время: 09:49.