Понедельник, 25 Ноября 2024, 21:54

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Как сделать виртуальный джойстик (iOS, Android)?
kvestproДата: Суббота, 07 Декабря 2013, 12:44 | Сообщение # 1
заслуженный участник
Сейчас нет на сайте
У меня есть спрайт джойстика. Мне нужно его поворачивать вправо и влево (как руль, штурвал). Соответственно, требуется брать угол поворота и производить нужные действия с объектом.
Внимание, вопросы:
Как нацепить спрайт на экран?
Как поворачивать спрайт при взаимодействии с пальцами?
Как выводить данные поворота, скажем, в переменную?


Инверсная кинематика в Unity
Алгоритм поиска пути Jump Point Search
JHawkДата: Суббота, 07 Декабря 2013, 13:08 | Сообщение # 2
めゃくちゃちゃ
Сейчас нет на сайте
input.GetTouch вроде
Google в помощь!
kvestproДата: Суббота, 07 Декабря 2013, 14:33 | Сообщение # 3
заслуженный участник
Сейчас нет на сайте
JHawk, опять гугл. Там только для шутеров. Мне то нужно поворот считывать.

Инверсная кинематика в Unity
Алгоритм поиска пути Jump Point Search
NEBRДата: Суббота, 07 Декабря 2013, 15:53 | Сообщение # 4
почти ветеран
Сейчас нет на сайте
Цитата kvestpro ()
Как нацепить спрайт на экран?

1) Можно использовать плагин NGUI.
2) Если версия юньки 4.3 - там встроенная система спрайтов.
3) Да и необязательно именно спрайт - можно плейн разместить и материал на него.

Цитата kvestpro ()
Как поворачивать спрайт при взаимодействии с пальцами?

не смотрел эти уроки на ютубе? Если нет, то не поленись, глянь, поможет понять в целом систему нажатий, что и как работает. А конкретно в твоем случае - нужно условие if(Touch.phase == stationary) (если удерживаем палец на экране) и позиция нажатия на левой половине {поворачиваем штурвал на определенное количество градусов влево * time.deltaTime (последняя команда для того чтобы поворот был гладким, не рывками). Иначе если на правой половине - поворачиваем вправо.

Цитата kvestpro ()
Как выводить данные поворота, скажем, в переменную?


Код

public GameObject steerengWheel; // сюда перетаскиваем объект "руль"
float rotationValue;

void Update() {
rotationValue = steerengWheel.transform.rotation;
Debug.Log(rotationValue);
}


King Size #Gamiron12

Сообщение отредактировал NEBR - Суббота, 07 Декабря 2013, 15:53
kvestproДата: Суббота, 07 Декабря 2013, 20:49 | Сообщение # 5
заслуженный участник
Сейчас нет на сайте
NEBR, спасибо, буду пробовать.

Добавлено (07.12.2013, 20:49)
---------------------------------------------
NEBR, твой алгоритм немного не тот, который нужен. Мне нужно что-то типа этого http://www.youtube.com/watch?v=SBMjGqQslwo или http://www.youtube.com/watch?v=LLYZIEA1EhE (верхний телефон).


Инверсная кинематика в Unity
Алгоритм поиска пути Jump Point Search
NEBRДата: Суббота, 07 Декабря 2013, 21:27 | Сообщение # 6
почти ветеран
Сейчас нет на сайте
kvestpro, вот нужный тебе тутор там показано как нажатием пальца поворачивать объект. Правда, там в 3d , но по аналогии можно и для 2d текстурки сделать. А привязку угла поворота к переменной - примерно как я описал выше

King Size #Gamiron12

Сообщение отредактировал NEBR - Суббота, 07 Декабря 2013, 21:27
kvestproДата: Воскресенье, 08 Декабря 2013, 20:29 | Сообщение # 7
заслуженный участник
Сейчас нет на сайте
NEBR, то, что надо, спасибо большое!

Добавлено (08.12.2013, 20:29)
---------------------------------------------
NEBR, так и не могу понять.


Инверсная кинематика в Unity
Алгоритм поиска пути Jump Point Search
NEBRДата: Воскресенье, 08 Декабря 2013, 20:47 | Сообщение # 8
почти ветеран
Сейчас нет на сайте
kvestpro, в чем проблема?

King Size #Gamiron12
kvestproДата: Воскресенье, 08 Декабря 2013, 20:56 | Сообщение # 9
заслуженный участник
Сейчас нет на сайте
NEBR, как крутить его. Урок немного не понял, так как английский я не знаю вообще. Моделированию несложно научится просто повторяя действия учителя (Digital Tutors), а программирование не могу.
Как мне кажется, нужно ограничить активную область уравнением окружности. Если координаты нажатия внутри круга, тогда, если в прошлом кадре было нажатие и если координаты в прошлом кадре тоже внутри круга, тогда мы, мы.... Не могу придумать!


Инверсная кинематика в Unity
Алгоритм поиска пути Jump Point Search
fessmanДата: Воскресенье, 08 Декабря 2013, 20:59 | Сообщение # 10
участник
Сейчас нет на сайте
kvestpro, сделайте проще, если вы моделлируете, вам это понятней, найдите программиста. smile
kvestproДата: Воскресенье, 08 Декабря 2013, 21:16 | Сообщение # 11
заслуженный участник
Сейчас нет на сайте
fessman, я не люблю моделировать. Вынужден его изучать, так как моделлер за спасибо не будет работать.
А вот программировать люблю, но именно эту задачу решить пока не могу. Кажется, что решение где-то рядом, но пока результата нет.


Инверсная кинематика в Unity
Алгоритм поиска пути Jump Point Search


Сообщение отредактировал kvestpro - Воскресенье, 08 Декабря 2013, 21:16
allodsДата: Воскресенье, 08 Декабря 2013, 21:33 | Сообщение # 12
почти ветеран
Сейчас нет на сайте
Цитата kvestpro ()
моделлер за спасибо не будет работать.

Дружбан будет

А что именно не понятно? поскольку я уже давно програмлю на андроид возможно смогу помочь
kvestproДата: Воскресенье, 08 Декабря 2013, 22:06 | Сообщение # 13
заслуженный участник
Сейчас нет на сайте
allods, я решил эту задачу, когда сейчас шел домой :).
Пока без сенсора, но потом можно и перенести.
Значит руль у нас окружность.
Ограничим ее двумя уравнениями:
(1-x)^2+(1-y)^2<1
И
(1-x)^2+(1-y)^2>0.1

Естественно, окружность должна быть гораздо больше, так как пикселы маленькие, но для теста сойдет.
Итак, если игрок тыкает в экран и координаты подходят к уравнениям, тогда берем координаты нажатия за прошлый кадр (если нажатие было) и если эти координаты тоже входят в эту область, тогда все отлично, и можно крутить руль.

Нужно представить себе треугольник. Первая точка A - координаты за прошлый кадр, вторая B - центр руля (большой окружности) и третья C - координаты за текущий кадр.
Нужно методом координат решить этот треугольник и найти угол ABC. Этот угол и будет углом поворота.

Тригонометрия рулит, как всегда.

Добавлено (08.12.2013, 21:54)
---------------------------------------------
На андроид можно перенести заменив клик мышкой на касание пальцем.

Добавлено (08.12.2013, 22:06)
---------------------------------------------
Исправьте, если неверно, пожалуйста.


Инверсная кинематика в Unity
Алгоритм поиска пути Jump Point Search


Сообщение отредактировал kvestpro - Воскресенье, 08 Декабря 2013, 21:54
NEBRДата: Вторник, 10 Декабря 2013, 09:11 | Сообщение # 14
почти ветеран
Сейчас нет на сайте
kvestpro, как успехи, реализовал штурвал?

King Size #Gamiron12
ЛевшаДата: Вторник, 10 Декабря 2013, 10:13 | Сообщение # 15
почти ветеран
Сейчас нет на сайте
Цитата kvestpro ()
На андроид можно перенести заменив клик мышкой на касание пальцем.
Исправьте, если неверно, пожалуйста.

На андроиде метод OnMouseDown() срабатывает на касание пальцем.
smile


X.cor.R (Prologue)
kvestproДата: Вторник, 10 Декабря 2013, 11:44 | Сообщение # 16
заслуженный участник
Сейчас нет на сайте
NEBR, столкнулся с проблемой, что поворот будет всегда в одну сторону. Сегодня уже проработал алгоритм вычисления направления (вправо или влево), так что вечером сяду и напишу.

Инверсная кинематика в Unity
Алгоритм поиска пути Jump Point Search
NEBRДата: Вторник, 10 Декабря 2013, 12:16 | Сообщение # 17
почти ветеран
Сейчас нет на сайте
kvestpro, я написал небольшую статью на эту тему, сейчас оформляю.

King Size #Gamiron12
kvestproДата: Вторник, 10 Декабря 2013, 12:43 | Сообщение # 18
заслуженный участник
Сейчас нет на сайте
NEBR, с использованием тригонометрии?

Инверсная кинематика в Unity
Алгоритм поиска пути Jump Point Search
NEBRДата: Вторник, 10 Декабря 2013, 12:50 | Сообщение # 19
почти ветеран
Сейчас нет на сайте
kvestpro, нет, просто поворот штурвала в обе стороны.

King Size #Gamiron12
NEBRДата: Вторник, 10 Декабря 2013, 14:52 | Сообщение # 20
почти ветеран
Сейчас нет на сайте
вот эта статья

King Size #Gamiron12
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг