|
Результаты поиска
| |
| DivES | Дата: Среда, 18 Июля 2018, 23:48 | Сообщение # 341 | Тема: Движение NPC(спрайты) |
заслуженный участник
Сейчас нет на сайте
| Reker, а вид в игре какой? Уместна ли тут физика. И что такое "phy_"? Так происходит обращение к экземпляру?
|
|
|
| |
| DivES | Дата: Среда, 18 Июля 2018, 23:36 | Сообщение # 342 | Тема: Движение NPC(спрайты) |
заслуженный участник
Сейчас нет на сайте
| Reker, я залез в справку и вот что могу написать: Там у экземпляров объекта есть hspeed и vspeed, - скорость перемещения по горизонтали и по вертикали. Не знаю твоего уровня владения языком программирования, который там используется, но попробуй реализовать вот что:
Код if (hspeed>0) { sprite_index=spr_right; } То есть, если скорость перемещения по горизонтали > 0, значит, что персонаж движется вправо, не так ли? Значит ставим соответствующую анимацию. То же самое для остальных направлений движения... if (hspeed<0) {} - для движения влево if (vspeed>0) {} - для движения вверх и так далее!
Я не совсем знаю, как там оси координат направлены, так что, если что, скорректируй!Добавлено (18 Июля 2018, 23:36) --------------------------------------------- Ну как, получается что-нибудь? 
Сообщение отредактировал DivES - Среда, 18 Июля 2018, 23:16 |
|
|
| |
| DivES | Дата: Среда, 18 Июля 2018, 22:47 | Сообщение # 343 | Тема: Движение NPC(спрайты) |
заслуженный участник
Сейчас нет на сайте
| Reker, вот именно! Он просто следует за персонажем. Но при этом поворот (direction) персонажа он не повторяет. Тебе нужно, чтобы npc меняли свою ориентацию (поворот, direction). Как можно сделать это?
Есть функция, которая определяет скорость передвижения спрайта?
Сообщение отредактировал DivES - Среда, 18 Июля 2018, 22:50 |
|
|
| |
| DivES | Дата: Среда, 18 Июля 2018, 20:38 | Сообщение # 344 | Тема: Движение NPC(спрайты) |
заслуженный участник
Сейчас нет на сайте
| Raven84, очевидно, если он использует пути, спрайт всегда будет выставлен "так, как он есть". То есть поворот будет равен 0 градусов, а значит будет проигрываться анимация движения вправо - spr_right Я не знаю, какими средствами обладает GMS, но как альтернативу предложил бы написать функцию, которая бы возвращала направление, в котором движется спрайт: -x, x, -y, y. И уже в зависимости от этого менялась бы и анимация
|
|
|
| |
| DivES | Дата: Вторник, 17 Июля 2018, 22:11 | Сообщение # 345 | Тема: Камера для двоих |
заслуженный участник
Сейчас нет на сайте
| MrSlap, а ведь задачка очень простая! Стоило всего лишь пораскинуть мозгами.  Совет, для многих идей в жизни: "Не можешь представить - нарисуй!". Вот и тут так же, берём листок в клетку, рисуем оси координат. Ставим одну точку на (1, 2), другую - на (3, 5). Точками обозначаются наши герои. Ну и смотрим приблизительно, где должна быть камера в таком случае... А я могу сказать точно, где она будет - в точке (2, 3.5). Просто берём среднее по каждой из осей и находим искомые координаты камеры
|
|
|
| |
| DivES | Дата: Вторник, 17 Июля 2018, 12:15 | Сообщение # 346 | Тема: Помогите со скриптом в Unity |
заслуженный участник
Сейчас нет на сайте
| Цитата alik_makarov_90 (  ) 1) Мне создать макс.скорость float, и отдельно текущую скорость и прибавлять по сколько то единиц, когда Тапаю пока не будет равно макс скорости? Или Только текущую скорость, которая if > 10.0f (к примеру) вернуть текущую скорость? Тут уже на Ваш вкус! Решений же великое множество 
Цитата alik_makarov_90 (  ) 3) OnMouseDown() использовать? Я, если честно, совсем не знаком с Unity, пусть и C# немного понимаю. Поэтому я написал на Python в Blender (на Blender Game Engine) 
Код 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 |
|
|
| |
| DivES | Дата: Понедельник, 16 Июля 2018, 17:38 | Сообщение # 347 | Тема: Помогите со скриптом в Unity |
заслуженный участник
Сейчас нет на сайте
| alik_makarov_90, Вам готовое решение предоставить? Или помочь советом? Что Вы уже сделали для реализации этого механизма? К тому же, не совсем понятно, что означает "несколько раз". Значит ли это, что для активации ускорения нужно тапнуть несколько раз? Либо же каждый тап будет лишь усиливать ускорение на определённую величину?
|
|
|
| |
| DivES | Дата: Воскресенье, 15 Июля 2018, 20:14 | Сообщение # 348 | Тема: glDrawArrays завершает программу с ошибкой |
заслуженный участник
Сейчас нет на сайте
| Цитата afq (  ) vertices[ 0 + ( y * ( 64 - 1 ) + i ) ] = x; vertices[ 1 + ( y * ( 64 - 1 ) + i ) ] = y; Тут ошибки нет? В первой строчке точно y*(64 - 1) + i? Ну то есть точно "y", а не "x"?
Сообщение отредактировал DivES - Воскресенье, 15 Июля 2018, 20:14 |
|
|
| |
| DivES | Дата: Четверг, 12 Июля 2018, 14:14 | Сообщение # 349 | Тема: Типы ресурсов для юнитов и скиллов |
заслуженный участник
Сейчас нет на сайте
| Плоть, Жизнь, Магия (Волшебство, Чудеса), Смерть, Дух.
Например, для "найма" людей требовались бы Плоть, Жизнь. Если в игре присутствует ещё и Золото, то для воинов в хороших доспехах требовалось бы ещё и Золото. Для торговцев - просто Плоть. (Но лучше - просто Золото) Духи/скетелы/нежить - Смерть/Смерть, Дух. Големы - Магия, Жизнь, Плоть, Дух (в различных сочетаниях) Драконы - Магия, Плоть, Жизнь + много Золота. Вообще, Золото получается уже шестым ресурсом, но всё же какой-то ресурс для "оплаты" должен существовать 
В случае же с заклинаниями/умениями. Для призыва элементалей можно использовать Магию, Дух и Жизнь. А для каких-либо разрушительных заклинаний - Магию и Смерть, например..
Сообщение отредактировал DivES - Четверг, 12 Июля 2018, 14:21 |
|
|
| |
| DivES | Дата: Четверг, 12 Июля 2018, 13:37 | Сообщение # 350 | Тема: Типы ресурсов для юнитов и скиллов |
заслуженный участник
Сейчас нет на сайте
| FunApple, так для каждого юнита/умения можно брать сочетание ресурсов или только один определённый ресурс?
|
|
|
| |
| DivES | Дата: Вторник, 03 Июля 2018, 23:40 | Сообщение # 351 | Тема: Oliver's Adventures in the Fairyland [2D] |
заслуженный участник
Сейчас нет на сайте
| Цитата Raven84 (  ) У тебя есть Linux? Я бы не писал о портировании, если бы у меня был Windows, так как 99% процентов разработчиков делают игры под него (за искл. мобильных или консолей) Так что да, у меня Linux  Добавлено (03 Июля 2018, 23:40) --------------------------------------------- Так что да, с радостью потестировал бы! 
|
|
|
| |
| DivES | Дата: Вторник, 03 Июля 2018, 21:01 | Сообщение # 352 | Тема: Oliver's Adventures in the Fairyland [2D] |
заслуженный участник
Сейчас нет на сайте
| Raven84, графика очень и очень приятная! Да и в целом выглядит просто отлично! Эх, был бы порт под Linux От себя: хотелось бы небольшую анимацию при открытии сундука, либо какие-нибудь лучи света, исходящие изнутри (привет, Fable), либо же "выпрыгивающие" монетки или вещи. Но это конечно же просто мелочь по сравнению с проделанной работой!
|
|
|
| |
| DivES | Дата: Среда, 27 Июня 2018, 16:05 | Сообщение # 353 | Тема: Во что играете сейчас? |
заслуженный участник
Сейчас нет на сайте
| Играю в Faster Than Light. И тут есть две причины: - Не так много игр разрабатывается под Linux; - Сама FTL поражает своей реиграбельностью и захватывающими прохождениями, каждое из которых уникально и непредсказуемо. Для любителей космоса и рогаликов - советую! Ах да, так же подойдёт для любителей отличного муз. сопровождения
Сообщение отредактировал DivES - Среда, 27 Июня 2018, 16:06 |
|
|
| |
| DivES | Дата: Среда, 13 Июня 2018, 20:33 | Сообщение # 354 | Тема: Лицензия GPL в BGE |
заслуженный участник
Сейчас нет на сайте
| Kxarog, если делать с помощью "Save as game...", то игра автоматически под лицензию попадает. Вот тот исполняемый файлик с лого Blender`а - это и есть blenderplayer. Нам же нужно взять чистый blenderplayer из папки Blender. А потом взять .blend файл с нашим проектом. И уже запускать этот файл через blenderplayer (самое банальное - перетягиваем файлик на плеер) Позже напишу подробнее, сейчас не могу углубиться - диплом на носу!
|
|
|
| |
| DivES | Дата: Среда, 13 Июня 2018, 19:38 | Сообщение # 355 | Тема: Лицензия GPL в BGE |
заслуженный участник
Сейчас нет на сайте
| Kxarog, никаких исходников предоставлять никому не нужно! Файл .blend - является производным и эта лицензия на него не распространяется. Другое дело, если сохранить игру в исполняемый файл и продавать вместе с blenderplayer - в таком случае на автора могут подать в суд. Так как сам blenderplayer (то, что запускает .blend файлы) попадает под лицензию. Но это легко и официально обходится отделением blenderplayer`а от всех остальных файлов: в одной папке всё, что ты сделал, в другой - blenderplayer.
|
|
|
| |
| DivES | Дата: Среда, 30 Мая 2018, 18:05 | Сообщение # 356 | Тема: Итоги конкурса Gamiron #14 |
заслуженный участник
Сейчас нет на сайте
| ГоК, справа-сверху под "Вы вошли как..." есть колонка [Новые сообщения Игроделы Правила Поиск] Так вот ещё ниже есть три кнопки - "Ответить", "Новая тема" и искомая тобой - "Новый опрос"
Сообщение отредактировал DivES - Среда, 30 Мая 2018, 18:05 |
|
|
| |
| DivES | Дата: Понедельник, 28 Мая 2018, 01:06 | Сообщение # 357 | Тема: Не большой скрипт. |
заслуженный участник
Сейчас нет на сайте
| 1GTV, переделал. В принципе, сейчас выглядит уже достаточно правильно. Воспользуйся! В любом случае, гораздо более правильно и красиво программировать при помощи функций и модулей
Код import bge
global position #создаём глобальную переменную, которая будет хранить список position = []
def main(cont): cont = bge.logic.getCurrentController() delay = cont.sensors["delay"] own = cont.owner #первые три строчки по стандарту global position #прописываем перед использованием глобальной переменной if position!=list(own.position): #преобразуем в список с помощью list(), иначе попросту не работает position = list(own.position) else: if delay.positive: own.endObject() Скриншот того, как подключать модуль. На этом задача уже точно разрешена
|
|
|
| |
| DivES | Дата: Воскресенье, 27 Мая 2018, 18:24 | Сообщение # 358 | Тема: Не большой скрипт. |
заслуженный участник
Сейчас нет на сайте
| 1GTV, почти сделал! С минуты на минуту обновлю пост) Добавлено (27 Мая 2018, 18:24) ---------------------------------------------
Код import bge cont = bge.logic.getCurrentController() delay = cont.sensors["delay"] own = cont.owner if own["x"]!=own.position[0] or own["y"]!=own.position[1] or own["z"]!=own.position[2]: own["x"] = own.position[0] own["y"] = own.position[1] own["z"] = own.position[2] elif delay.positive: #по прошествии 5 секунд if own.position[0]==own["x"] and own.position[1]==own["y"] and own.position[2]==own["z"] : #если позиция не изменилась own.endObject() #удаляем объект В общем смотри, этот вариант работает. Но тут ужасные костыли) x, y, z - свойства, которые нужно добавить к объекту. Это сделано просто для того, чтобы переменные можно было использовать ещё до объявления. Есть идеи, как это сделать правильно - пиши, я не соображаю сейчас
|
|
|
| |
| DivES | Дата: Воскресенье, 27 Мая 2018, 17:33 | Сообщение # 359 | Тема: Не большой скрипт. |
заслуженный участник
Сейчас нет на сайте
| 1GTV, Возможная реализация:
Код import bge cont = bge.logic.getCurrentController() delay = cont.sensors["delay"] obj = cont.owner position = obj.position if delay.positive: #по прошествии 5 секунд if obj.position==position: #если позиция не изменилась obj.endObject() #удаляем объект Знаю наверняка, что задержку можно реализовать как-то иначе, но пока что не узнал, как  Скриншот с нужными сенсорами. У сенсора Delay ставим задержку на 300 (каждые 60 тиков - 1 секунда, значит 300 тиков - 5 секунд и т.д.) и галочку на "Повторять". Так же можешь прикрутить не только позицию, но и ориентацию, чтобы учитывался поворот объекта в пространстве  Добавлено (27 Мая 2018, 17:33) --------------------------------------------- Стоп. Что-то работает не совсем так, как нужно)
Сообщение отредактировал DivES - Воскресенье, 27 Мая 2018, 17:23 |
|
|
| |
| DivES | Дата: Воскресенье, 27 Мая 2018, 16:49 | Сообщение # 360 | Тема: Не большой скрипт. |
заслуженный участник
Сейчас нет на сайте
| 1GTV, стоит, имеется в виду, в плане физики? То есть "засыпает", как это в Blender названо.
|
|
|
| |
|