Вторник, 08 Октября 2024, 22:21

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Помогите со скриптом в Unity
alik_makarov_90Дата: Понедельник, 16 Июля 2018, 14:57 | Сообщение # 1
уже был
Сейчас нет на сайте
Как сделать так, чтобы по нажатию мышкой (тапом) несколько раз, персонаж ускорялся. Например, на денди была игра Hyper Sports (Прыжки в длину, бег на 100 м и тд).
DivESДата: Понедельник, 16 Июля 2018, 17:38 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
alik_makarov_90, Вам готовое решение предоставить? Или помочь советом?
Что Вы уже сделали для реализации этого механизма? :)
К тому же, не совсем понятно, что означает "несколько раз". Значит ли это, что для активации ускорения нужно тапнуть несколько раз? Либо же каждый тап будет лишь усиливать ускорение на определённую величину? %)
alik_makarov_90Дата: Вторник, 17 Июля 2018, 05:18 | Сообщение # 3
уже был
Сейчас нет на сайте
Цитата DivES ()
Или помочь советом

Я новичок, как Вы уже поняли.
1) Мне создать макс.скорость float, и отдельно текущую скорость и прибавлять по сколько то единиц, когда Тапаю пока не будет равно макс скорости? Или Только текущую скорость, которая if > 10.0f (к примеру) вернуть текущую скорость?
2) Каждый тап должен добавлять ускорение.
3) OnMouseDown() использовать?

Добавлено (17 Июля 2018, 05:18)
---------------------------------------------
DivES, ответьте пожалуйста, если не трудно.

DivESДата: Вторник, 17 Июля 2018, 12:15 | Сообщение # 4
заслуженный участник
Сейчас нет на сайте
Цитата alik_makarov_90 ()
1) Мне создать макс.скорость float, и отдельно текущую скорость и прибавлять по сколько то единиц, когда Тапаю пока не будет равно макс скорости? Или Только текущую скорость, которая if > 10.0f (к примеру) вернуть текущую скорость?

Тут уже на Ваш вкус! Решений же великое множество :)
Цитата alik_makarov_90 ()
3) OnMouseDown() использовать?

Я, если честно, совсем не знаком с Unity, пусть и C# немного понимаю. Поэтому я написал на Python в Blender (на Blender Game Engine) :D
Код
mouse = bge.logic.mouse.events[bge.events.LEFTMOUSE]
if not bge.logic.KX_SENSOR_JUST_ACTIVATED==mouse and own["speed"]>10.0:
    own["speed"]-=0.1
if own["speed"]<10.0:
    own["speed"] = 10.0
if own["speed"]>20.0:
    own["speed"] = 20.0
if bge.logic.KX_SENSOR_JUST_ACTIVATED==mouse:
    own["speed"]+=1.0

mouse = bge.logic.mouse.events[bge.events.LEFTMOUSE] - "сенсор" клика левой кнопкой мыши (он просто для понимания)
bge.logic.KX_SENSOR_JUST_ACTIVATED - а вот это уже сам "тап", то есть срабатывает только при клике ( к вопросу о OnMouseDown()... То есть да, судя по названию, скорее всего его использовать и нужно! )
Ну и дальше идут проверки:
1) Если мы не тапаем, но скорость выше базовой - уменьшаем;
2) Если скорость вдруг упала ниже базовой ( всё-таки с float работаем );
3) Если достигли максимума скорости - то, о чём Вы писали выше;
4) Ну и сам тап.
И вся эта конструкция находится в цикле while True. То есть срабатывает постоянно. Надеюсь, понимаете, зачем)
Конечно, уверен, что есть более изящные решения, и Вы, скорее всего до них доберётесь, но то, что я скинул - уже работает! :)
Надеюсь, был полезен!


Сообщение отредактировал DivES - Вторник, 17 Июля 2018, 12:16
  • Страница 1 из 1
  • 1
Поиск:

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