Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.12.2016, 21:26
Аватар для spo
spo spo вне форума
Профессор
Отправить личное сообщение для spo Посмотреть профиль Найти все сообщения от spo
 
Регистрация: 11.05.2011
Сообщений: 213

Инвентарь для игры
Прошу подсказать как лучше реализовать инвентарь для игры.

Имеем следующее http://codepen.io/anon/pen/RoeVpo

Cцена #stage содержит два элемента #display и #inventory
Внутрь #display помещен элемент #door
Внутрь #inventory помещен элемент #key

#stage
	#display
		#door
	#inventory
		#key


При клике на предмет в инвентаре #key, курсор меняет изображение на изображение предмета. Если быть точнее курсор прячется и к его координатам привязывается изображение.
Данный подход выбран вместо простой смены изображения курсора через стили, потому что в последнем случае он не сможет перекрыть стили css, в которых установлено изображение курсора по умолчанию.

Далее, при наведении и клике на элементе #door необходимо получить результат данных событий. Но после того как курсор был скрыт а к его координатам было привязано изображение, никакие из перечисленных событий не срабатывают.

Если я правильно понимаю то нужно высчитывать и проверять координаты наводимого элемента.
Есть ли возможность обойтись без математики или это единственный способ?

Буду признателен за другие варианты решения.

Последний раз редактировалось spo, 13.12.2016 в 23:48.
Ответить с цитированием
  #2 (permalink)  
Старый 13.12.2016, 22:24
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

spo, есть drag and drop события - dragstart, drag, dragenter, dragleave, dragover, drop, dragend.
Ответить с цитированием
  #3 (permalink)  
Старый 13.12.2016, 23:08
Аватар для spo
spo spo вне форума
Профессор
Отправить личное сообщение для spo Посмотреть профиль Найти все сообщения от spo
 
Регистрация: 11.05.2011
Сообщений: 213

Да но это события html5, причем у меня перетаскивания как такового не подразумевается. Перетаскивание должно происходить по клику.

1. Кликнул на предмет в инвентаре - получил элемент (с изображением предмета) привязанный к координатам курсора. Так же этот подход использую для того чтобы спозиционировать изображение таким образом чтобы курсор был в его центре.
2. Навел курсор или кликнул на элемент сцены - получил событие.

Почему после первого шага не срабатывает события наведения на другие элементы сцены?

Последний раз редактировалось spo, 13.12.2016 в 23:57.
Ответить с цитированием
  #4 (permalink)  
Старый 14.12.2016, 00:14
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

spo, а что не так с html5, например атрибут charset тэга meta тоже html5, у вас с этим какие-то проблемы? А с flex и calc в css или let в js проблем думаете не будет?
Ответить с цитированием
  #5 (permalink)  
Старый 14.12.2016, 00:40
Аватар для spo
spo spo вне форума
Профессор
Отправить личное сообщение для spo Посмотреть профиль Найти все сообщения от spo
 
Регистрация: 11.05.2011
Сообщений: 213

Сместил координату изображения таким образом чтобы оно не перекрывало курсор и события заработали.

Понял почему не срабатывало.
Судя по всему решением данной задачи будет проверка объектов на столкновение.
Ответить с цитированием
  #6 (permalink)  
Старый 14.12.2016, 00:52
Аватар для spo
spo spo вне форума
Профессор
Отправить личное сообщение для spo Посмотреть профиль Найти все сообщения от spo
 
Регистрация: 11.05.2011
Сообщений: 213

Просто не хотелось бы смешивать использование js и html5.
А еще читал тут https://learn.javascript.ru/drag-and-drop написано что "нельзя ограничить перенос внутри заданной зоны" по этому хотелось все сделать с использованием событий мыши.

p.s.: А еще я не понимаю как с html5 событиями сделать так, чтобы при клике стартовал DnD.
Ответить с цитированием
  #7 (permalink)  
Старый 14.12.2016, 01:24
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

spo, html5 - слово для обозначения современных веб-технологий не более... теперь замени слово html5 в своих постах на современные веб-технологии и посмотри что получилось...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Петербург: Javascript + Canvas. Разработчик для портирования игры. В офис. waxattack Работа 0 21.07.2016 14:06
Frontend для браузерной игры. Доступно для Junior, оплата – доля с продаж. murky_waters Работа 0 13.07.2016 15:27
SEOCRM - бесплатные инструменты для оптимизаторов, интернет-маркетологов и владельце SeoCRM Оффтопик 0 23.05.2016 11:59
Простой бот для браузерной онлайн-игры. джаммер Работа 5 23.03.2016 05:36
скрипт для игры barbars.ru jiucaneg Ваши сайты и скрипты 8 19.06.2013 12:25