Пятница, 29 Марта 2024, 01:24

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 4 из 4
  • «
  • 1
  • 2
  • 3
  • 4
Форум игроделов » Записи участника » Rikushi [74]
Результаты поиска
RikushiДата: Пятница, 18 Ноября 2011, 16:42 | Сообщение # 61 | Тема: Создание крутящего барабана.
почетный гость
Сейчас нет на сайте
Rafl, иди сюда, я тебя расцелую.
Действительно все работает. И элементарно в реализации.

Плюсануть репу можно только через 6 дней. Видимо местный спам фильтр.


Сообщение отредактировал Rikushi - Пятница, 18 Ноября 2011, 16:43
RikushiДата: Четверг, 17 Ноября 2011, 14:21 | Сообщение # 62 | Тема: Освещение.
почетный гость
Сейчас нет на сайте
Благодарю. Все работает. Удивительно, что сей не хитрый процесс нигде не описан.

Добавлено (17.11.2011, 14:21)
---------------------------------------------
И чтоб не плодить темы, еще один неадекватный вопрос, на который у форума нет ответа.
Как использовать оператор или? Уже итак и так пробовал.

http://pixs.ru/showimage/Tochechniy_9356289_3359190.jpg

Вариант слева, отказывается запускаться. Вариант справа не фурычит в принципе.

RikushiДата: Четверг, 17 Ноября 2011, 06:31 | Сообщение # 63 | Тема: Освещение.
почетный гость
Сейчас нет на сайте
Облазил весь форум, пролистал все уроки на русскоязычном фансайте. Был крайне удивлен и озадачен, тем, что нигде нет никакой инфы по сабжу.

Собственно задача достаточно тривиальна. Сделать омни освещение, вокруг объекта. на подобии как тут http://scirraconstruct.ru/guide/cap-files/isxodnik-igry-breathing-behind-you/

Скриншот наглядно иллюстрирует http://scirraconstruct.ru/blog/files/games/full/breathingbehindyou/screen.jpg

Собственно так и не смог разобраться, как же все это устроено.
Допустим имеется лэйер 3, он же бэкграунд, который нам надо освещать.
Имеется лэйер 2, на котором находиться объект light.
И лэйер 1, который полностью закрыт черным спрайтом, с не прозрачностью 100%.

Вопрос, каким образом заставить черный спрайт на первом лэйере исключать (градиентно), площадь, равную размерам объекта light. И в образовавшемся проеме показывать бэкграунд?
Или освещение как-то по другому делается?
RikushiДата: Четверг, 17 Ноября 2011, 01:54 | Сообщение # 64 | Тема: Создание крутящего барабана.
почетный гость
Сейчас нет на сайте
noTformaT, это всего лишь условие, которое будет выполняться каждые Х секунд. Извлечь из него информацию, сколько времени прошло между кликами не представляется возможным.

Добавлено (16.11.2011, 22:00)
---------------------------------------------
allxumuk, на тебя вся надежда. Ты единственный, кто разбирается в констракте больше всех. Даже самый упрощенный вариант подойдет.
Просто раскручивать мышкой спрайт, и если он раскручивается с определенной скоростью, происходит событие. Допустим спрайт исчезает.

Балуюсь с физиксом и якорем, но барабан ведет себя не адекватно. То вращается слишком быстро, то не вращается вовсе.

Добавлено (17.11.2011, 01:54)
---------------------------------------------
Вот, мне нужна абсолютно такая механика, ка здесь. В раунде про ветряные мельницы.

http://www.ninjadoodle.com/clickplay-3/

Сообщение отредактировал Rikushi - Среда, 16 Ноября 2011, 22:02
RikushiДата: Среда, 16 Ноября 2011, 18:49 | Сообщение # 65 | Тема: Создание крутящего барабана.
почетный гость
Сейчас нет на сайте
Помимо всего прочего, в констракте нет таймера или я его не нашел. И события онМаусМув тоже не находится.
RikushiДата: Среда, 16 Ноября 2011, 18:14 | Сообщение # 66 | Тема: Создание крутящего барабана.
почетный гость
Сейчас нет на сайте
Vinchensoo,
Вот смотри, нужно брать начальную и конечную позицию мыши, когда кликнули и когда отпустили.
Провести между ними линию. Это будет вектор приложения силы, к барабану.
Длинна вектора, будет величиной силы. Результирующей силой, действующей на барабан будет прямая пропорция от длинны вектора и обратная от времени воздействия.
Т.е. чем длиннее вектор и короче время воздействия, тем больше сила, тем выше скорость. И в обратном порядке.
Далее следует учитывать вектор направления. Причем придется учитывать начальную и конечную точку вектора. Так как если мы начали прилагать усилие от точки ниже оси вращения, к точке которая еще ниже оси вращения, то барабан не должен крутиться. Так как мы нижнюю часть, тянем в низ же.
Так же нужно при расчете вектора брать не просто точку когда юзер начал кликать, т.к. юзер может сначала по вращать барабан мышкой, а потом дернуть раскрутку. А за точку отсчета брать именно точку начала рывка.
Что-то задача мне не кажется тривиальной, если исполнять ее в самописном коде.

Добавлено (16.11.2011, 18:05)
---------------------------------------------
noTformaT, в задачу не входит просто раскрутить барабан. Это элементарно.
В задачу входит сделать физическую модель раскрутки барабана. Чтобы пользователь мог его раскручивать как пожелает. И узнать скорость его поворота.

Добавлено (16.11.2011, 18:14)
---------------------------------------------
Ладно, аналогия с барабаном не всем понятна. Приведем более ясную концепцию.
Вы раскручивали когда нибудь колесо у велосипеда? Рукой? Колесо само собой не касается земли.
Вот мы хватаем велосипедное колесо и тянем куда нибудь в сторону. Колесо начинает вращаться в ту сторону, в которую мы начали его крутить, с той силой, которую мы задали.
И даже если мы не прилагаем силу, оно продолжает крутиться некоторое время. И мы можем приложив еще усилие, заставить его крутиться сильнее.

Вот такую систему мне нужно получить. При этом иметь возможность получить скорость вращения. И да все это на констракте.


Сообщение отредактировал Rikushi - Среда, 16 Ноября 2011, 18:14
RikushiДата: Среда, 16 Ноября 2011, 17:39 | Сообщение # 67 | Тема: Создание крутящего барабана.
почетный гость
Сейчас нет на сайте
Vinchensoo, если эта задача для тебя так проста, напиши исходник пожалуйста. Мне она не по силам.
RikushiДата: Среда, 16 Ноября 2011, 17:19 | Сообщение # 68 | Тема: Создание крутящего барабана.
почетный гость
Сейчас нет на сайте
Quote (allxumuk)
может с физикой побаловаться

Баловался с бихэйворами физикс и драгндроп. Ничего хорошего баловство не принесло.

Quote (Vinchensoo)
после вычислить угловую скорость

Как-то слишком сложно. Наверняка есть более простое решение. Во многих флэш играх есть подобная система, навряд ли каждый разработчик делал столь фундаментальные вычисления, чтобы сделать небольшой геймплейный элемент, для своей игры третьего сорта.
RikushiДата: Среда, 16 Ноября 2011, 15:21 | Сообщение # 69 | Тема: Создание крутящего барабана.
почетный гость
Сейчас нет на сайте
Требуется создать барабан(просто круглый спрайт), который будет вращаться вокруг собственной оси(как в поле чудес).
Барабан использует механику вращения, как галактика в игре Spore.
То есть, тыкаем на барабан, дергаем мышкой, отпускаем мышку, барабан начинает вращение. С той скоростью, какой импульс мы задали рывком мыши.
Так же, пока мышь просто зажата, барабан вращается за курсором мыши.
Также нужно узнать скорость вращения этого барабана. И при определенной скорости, нужно чтобы произошло событие.

Как такое реализовать? Какой нибудь плагин или стандартные методы?


Сообщение отредактировал Rikushi - Среда, 16 Ноября 2011, 15:24
RikushiДата: Вторник, 08 Ноября 2011, 18:03 | Сообщение # 70 | Тема: Программирование NPC. Перемещение RTS + 4 dir.
почетный гость
Сейчас нет на сайте
Интересный пример. Я его даже немного доработал. Благодарю.
Кстати, если слишком уменьшить значение Every X milliseconds, то у патч файнда слетают мозги.
Правда не совсем разобрался как работает
Hunter2.ImagePointX(1)
Hunter2.ImagePointY(1)
Определяет грани всех четырех сторон?

Теперь осталось только разобраться с НПЦ и можно двигаться дальше.


Сообщение отредактировал Rikushi - Вторник, 08 Ноября 2011, 18:09
RikushiДата: Понедельник, 07 Ноября 2011, 18:04 | Сообщение # 71 | Тема: Программирование NPC. Перемещение RTS + 4 dir.
почетный гость
Сейчас нет на сайте
Приветствую.
Возникли проблемы, при реализации следующей программы.

Задача:
Имеется база(base). При клике по базе, появляется новый юнит(tank).
Каждый юнит стремится достичь цели(target). Когда юнит достигает цели, он находится на ней в течении 3х(можно 10-20 для наглядности) секунд. В это время цель считается занятой и другой юнит меняет свою цель, на следующую свободную.
Если юнит достиг цели, то после ожидания он отправляется в уничтожитель(destroer). Цель становится свободной как только юнит проведет на ней заданное время и начнет движение к уничтожителю.
Если все цели заняты, то юнит направляется на точку ожидания(WaitPoint) и ждет там в течении 10ти секунд. Если ожидающий юнит, после 10ти секунд ожидания, не находит свободной цели, он направляется в уничтожитель(destroer).

Не могу придумать хорошего алгоритма. Прошу помощи.
P.S. Не обязательно использовать переменные и методы из исходника.

Исходник: загрузить.

Задача 2:
Юнит обладает методом движения RTS. Однако нужно, чтобы он двигался исключительно по прямым линиям и поворачивал только на угол 90.

Если ли возможность такого совмещения движения RTS и 4dir? Если нет, то как возможно реализовать подобный тип движения, чтобы юнит автоматически двигался к заданному объекту?

Добавлено (07.11.2011, 18:04)
---------------------------------------------
Ладно, раз невозможно решить проблему целиком, будем решать ее пошагово.

В исходнике все подробно закоментировано.

Прошу помощи, уже 4й день бьюсь.

Исходник

RikushiДата: Пятница, 04 Ноября 2011, 13:12 | Сообщение # 72 | Тема: Анимация перемещиня 4 dir.
почетный гость
Сейчас нет на сайте
Доброго времени суток. И вновь мне потребовалась помощь гуру. Надеюсь гуру мне в ней не откажут.

Суть проблемы:

Имеет некий абстрактный Item1 и Item2. При контакте первого со вторым, запускается таймер, визуально отображаемый как прогресс бар. После того, как прогресс бар заполняется, Item1 и Item2 уничтожаются. На их месте появляется Item3.
Каждого итема может быть различное, не определенное количество, превышающее или равное единице.

Код программы:

Вариант 1
итем2 бросили на итем1 -> прогрес бар(появился, начал отчет)
прогресс бар до тикал -> создать итем3(х,у равный итем1); итем1(уничтожить); итем2(уничтожить); прогресс бар(уничтожить)

Результат: удаляются все итемы 1 и 2, даже те, для которых не появлялся прогресс бар.

Вариант 2
итем2 бросили на итем1 -> прогрес бар(появился, начал отчет); итем1 - приватная переменная set to 0(изначально при создании 1); итем2 - приватная переменная set to 0;
прогресс бар до тикал -> создать итем3(х,у равный итем1);
+ итем1 приватная переменная = 0 -> итем1(уничтожить)
...

Результат: уничтожаются только те итемы, для которых появлялся прогресс бар. Т.е. те которые и должны удалятся. Проблема в том, что больше 1го действия совершить нельзя.

Как реализовать уничтожение-появление для каждого отдельного, независимого случая?

Исходник
http://zalil.ru/31992410
RikushiДата: Среда, 02 Ноября 2011, 20:52 | Сообщение # 73 | Тема: Анимация перемещиня 4 dir.
почетный гость
Сейчас нет на сайте
Пример отличный, благодарю. Вот только воспроизвести у меня его не получилось.
Все время воспроизводиться angle(0), в какую бы сторону персонаж не двигался.
Т.е. он и стоит и движется только вправо(анимация).

http://pixs.ru/showimage/Tochechniy_7802640_3263598.jpg

Что я мог не учесть? И за что отвечает галочка Ping-pong в анимации?

UPD:

Все разобрался. В Rotations стояло значение none.

Большое спасибо за помощь! Отблагодарить могу только + в карму.


Сообщение отредактировал Rikushi - Среда, 02 Ноября 2011, 21:00
RikushiДата: Среда, 02 Ноября 2011, 19:22 | Сообщение # 74 | Тема: Анимация перемещиня 4 dir.
почетный гость
Сейчас нет на сайте
Здравствуйте.
Суть проблемы состоит в следующем.

Имеется персонаж, который двигается по плоскости в 4х направлениях(вверх, вниз, влево, вправо) аля TDS.
Behavior -> 8 dirrections;
Dirrections -> 4 dirrections;

Для этого персонажа имеется анимация движения во всех 4х направлениях.

Для воспроизведения анимации при движении используется следующий алгоритм:

http://pixs.ru/showimage/Tochechniy_8676720_3262780.jpg
//Что-то спойлер не фурычит.

При нажатии одной из заданных для перемещения клавиш(вверх, вниз и т.д.), программа работает.
Однако, при нажатии нескольких разных клавиш управления (вверх и влево, вниз и вправо и т.д.) анимация работает не корректно. Воспроизведение анимации останавливается на 0 фрейме и дальше персонаж движется без анимации.

Вопрос: возможно ли как-то использовать функцию isMoving для корректного отображения анимации при передвижении?
Т.е. как можно узнать направление движения персонажа без указания на используемые клавиши?
Имеется ли проверка на подобии:
Player -> isMoving (UP)
Player -> isMoving (DOWN)
И уже через этот ивент задавать значение анимации?
Player -> isMoving (UP) \\// PlayerSprite -> SetAnimation (WUP)

P.S. Сравнение X,Y параметров текущих и последующих ч-з тик таймера и определение направления движения таким методом, считаю громоздким и не оправдано нагружающим систему. Есть ли более элегантное решение?

UPD:

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


Сообщение отредактировал Rikushi - Среда, 02 Ноября 2011, 19:40
Форум игроделов » Записи участника » Rikushi [74]
  • Страница 4 из 4
  • «
  • 1
  • 2
  • 3
  • 4
Поиск:

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