Результаты поиска
| |
Sanches | Дата: Суббота, 05 Апреля 2014, 13:00 | Сообщение # 61 | Тема: Рандомное значение переменной |
участник
Сейчас нет на сайте
| Пусть Х - твоя переменная. X=mid("qwert", Random(5)+1, 1) Всё. На заметку: mid(String, Start, Range) вырезает из строки String последовательность длиной Range начиная с символа под номером Start.
Сообщение отредактировал Sanches - Суббота, 05 Апреля 2014, 13:01 |
|
| |
Sanches | Дата: Суббота, 05 Апреля 2014, 12:56 | Сообщение # 62 | Тема: Решаем задачи по Construct Classic [вопрос-ответ] |
участник
Сейчас нет на сайте
| Accce, в свойствах проекта (там где название, размеры окна...) найди поле Sampling. Поставь Point вместо Linear. Наслаждайся =)
|
|
| |
Sanches | Дата: Среда, 02 Апреля 2014, 22:18 | Сообщение # 63 | Тема: Решаем задачи по Construct Classic [вопрос-ответ] |
участник
Сейчас нет на сайте
| baibac, помимо массива, можешь записать данные в ini-файл. Пройдись по каждому объекту и запиши его идентификатор (число или слово, можно название объекта), координаты, размеры, угол и всё, что нужно. При старте игры прочитай каждую строку, создавай нужные объекты. Для удобства инфу можно записывать в формате, например, "Name;X;Y;Width;Height..." и получать нужный элемент с помощью GetToken.
|
|
| |
Sanches | Дата: Суббота, 29 Марта 2014, 21:36 | Сообщение # 64 | Тема: Решаем задачи по Construct Classic [вопрос-ответ] |
участник
Сейчас нет на сайте
| Зачем же? FormatDecimal(Value, 2) Value - твоя переменная. Вместо 2 ставь необходимое количество знаков после запятой. Ну или int(Value*100)/100, это ещё проще. Либо Floor(Value*100)/100 Если нужно округление, то Round(Value*100)/100
Сообщение отредактировал Sanches - Суббота, 29 Марта 2014, 21:38 |
|
| |
Sanches | Дата: Суббота, 29 Марта 2014, 13:49 | Сообщение # 65 | Тема: Прокрутка камеры |
участник
Сейчас нет на сайте
| Создай новый спрайт - это будет цель камеры. Назови Camera, например. При обычной игру привязывай его к герою. При столкновении со спрайтом двигай в нужную позицию. В событии Always пропиши действия: Scroll to X = lerp(ScrollX, Camera.X, Speed*Timedelta) Scroll to Y = lerp(ScrollY, Camera.Y, Speed*Timedelta) Speed - необходимая скорость. 5-8 обычно бывает оптимальным. Подбери подходящую и пиши число. Не забудь *Timedelta. Так камера всегда будет плавно следовать за твоим объектом.
Сообщение отредактировал Sanches - Суббота, 29 Марта 2014, 13:50 |
|
| |
Sanches | Дата: Пятница, 28 Марта 2014, 16:38 | Сообщение # 66 | Тема: Текстура все в одном |
участник
Сейчас нет на сайте
| Просто пропиши полное имя в поле "Image" для действия Load image. Полное имя = Путь к файлу + его имя и расширение. Если файл хранится в папке с программой, то пиши AppPath&"ИмяФайла.Расширение" Имя и расширение пишешь в кавычках.
Сообщение отредактировал Sanches - Пятница, 28 Марта 2014, 16:39 |
|
| |
Sanches | Дата: Среда, 26 Марта 2014, 16:53 | Сообщение # 67 | Тема: Текстура все в одном |
участник
Сейчас нет на сайте
| Добавляешь на уровень объект Image Manipulator. Узнать его можно по иконке небезызвестной Моны Лизы. При старте уровня загружаешь нужную картинку (твой текстурпак) действием Load image. Действием Crop вырезаешь нужную текстуру (указав координаты сторон в соответствующих полях). Далее действием Copy to sprite вставляешь полученное изображение в нужный спрайт. Повторяешь для каждой нужной текстуры. Что-нибудь ещё?
Сообщение отредактировал Sanches - Среда, 26 Марта 2014, 16:55 |
|
| |
Sanches | Дата: Воскресенье, 23 Марта 2014, 16:56 | Сообщение # 68 | Тема: Склеивание двух объектов с физикой. |
участник
Сейчас нет на сайте
| Можно прикреплять к спрайту невидимый объект, к которому прикреплять второй спрайт без физики, поворачивающийся в нужную сторону. При приклеивании он закрепляет угол относительно первого спрайта, при отклеивании - относительно второго.
|
|
| |
Sanches | Дата: Воскресенье, 23 Марта 2014, 10:58 | Сообщение # 69 | Тема: Склеивание двух объектов с физикой. |
участник
Сейчас нет на сайте
| Почему бы их не заменить одним объектом с объединённой маской коллизий?
|
|
| |
Sanches | Дата: Суббота, 22 Марта 2014, 17:30 | Сообщение # 70 | Тема: Текстура все в одном |
участник
Сейчас нет на сайте
| Есть такой объект, Image Manipulator. Он может загружать в память картинки, вырезать из них нужные области и вставлять полученные обрезки в спрайты. Не сможешь сделать сам - пиши сюда. Другой вопрос, зачем всё это нужно?
valerton, DimOk, Clowd, спасибо, ваша помощь божественна.
|
|
| |
Sanches | Дата: Суббота, 22 Марта 2014, 17:24 | Сообщение # 71 | Тема: Толчок |
участник
Сейчас нет на сайте
| Handsome_Phil, тут всё просто. Синус и косинус позволяют получить проекции реактивной силы на оси Y и Х соответственно. Выражение Angle(x1, y1, x2, y2) получает угол между точками 1 и 2, это и есть угол действия силы реактивного ранца. Найдя проекции на обе оси имеем полное право прибавить к текущей скорости по каждой оси нашу проекцию ускорения. И домножить на Timedelta, чтобы сила толчка не зависела от FPS. Это вроде бы есть в учебниках физики 8-9 класса, не помню точно. Ну и геометрия иногда пригождается.
Lasmelan, в любом случае можно получить этот угол между объектами, см. выше как.
Сообщение отредактировал Sanches - Суббота, 22 Марта 2014, 17:25 |
|
| |
Sanches | Дата: Четверг, 20 Марта 2014, 18:40 | Сообщение # 72 | Тема: Толчок |
участник
Сейчас нет на сайте
| Handsome_Phil, извини, во втором выражении вместо VectorX пиши VectorY и сos замени на sin. Исправил сообщение, теперь всё работает по обеим осям.
|
|
| |
Sanches | Дата: Четверг, 20 Марта 2014, 16:12 | Сообщение # 73 | Тема: Толчок |
участник
Сейчас нет на сайте
| Handsome_Phil, если у героя поведение Platform, то нужно изменять скорость при нажатии мышки: у героя в действиях для поведения Platform выбираешь Set X component of motion или Set Y component of motion. Hero[Platform].VectorX+cos(Angle(MouseX, MouseY, Hero.X, Hero.Y))*Timedelta*100 - скорость по Х Hero[Platform].VectorY+sin(Angle(MouseX, MouseY, Hero.X, Hero.Y))*Timedelta*100 - скорость по Y Hero - имя твоего спрайта. В конце стоит 100 - это сила толчка. Пробуй изменять её, пока не добьёшься нужного эффекта.
Сообщение отредактировал Sanches - Четверг, 20 Марта 2014, 18:39 |
|
| |
Sanches | Дата: Среда, 19 Марта 2014, 19:25 | Сообщение # 74 | Тема: 10 глабальных переменных или массив из 10 элементов? |
участник
Сейчас нет на сайте
| Не думаю, что сильно изменится производительность. Массив удобен, если тебе на каждом уровне надо использовать свои переменные, а не какие-то 10 на протяжении всей игры. Хотя, в любом случае, выбор практически ничего не меняет.
|
|
| |
Sanches | Дата: Понедельник, 17 Марта 2014, 14:23 | Сообщение # 75 | Тема: Решаем задачи по Construct Classic [вопрос-ответ] |
участник
Сейчас нет на сайте
| Теперь я объясню своё Если у тебя уровень состоит из клеток (то есть башни и препятствия расположены по сетке), то создавай массив, где каждая ячейка отвечает за свою клетку (сколько клеток - столько и ячеек). В этом массиве в проходимые ячейки заноси 1, в непроходимые 0, а если курсор находится в проходимой ячейке, то помечай её как 2 (можешь ставить любые числа). Далее ищешь ячейку, где создаются монстры. Заносишь туда, скажем, 5. Затем циклами пробегаешь по массиву, и, если ячейка проходима (значение = 1) и рядом с ней есть ячейка со значением 5, то и текущей ячейке даёшь значение 5. Повторяешь довольно много раз. Далее ищешь ячейку, куда монстры должны приходить. Если в ней 5, то строить можно, если нет, то нельзя.
Если же уровень не поделён на клетки, то при установке башни или другого препятствия ищешь все ячейки, которые препятствие задевает, и помечаешь их как непроходимые. Далее аналогично вышеописанному.
Lasmelan, спасибо, исправил
Сообщение отредактировал Sanches - Понедельник, 17 Марта 2014, 16:27 |
|
| |
Sanches | Дата: Воскресенье, 16 Марта 2014, 22:46 | Сообщение # 76 | Тема: Решаем задачи по Construct Classic [вопрос-ответ] |
участник
Сейчас нет на сайте
| При наведении на клетку проверить, есть ли путь от места появления монстров к месту их прибытия при условии, что путь не проходит через проверяемую клетку. Если пути нет - строить нельзя. Это можно осуществить безо всяких поведений, представив уровень в виде массива и пройдясь по нему волновым алгоритмом.
|
|
| |
Sanches | Дата: Четверг, 13 Марта 2014, 16:23 | Сообщение # 77 | Тема: Constract 2. Нубский вопрос. |
участник
Сейчас нет на сайте
| Поведение Bullet. Установи скорость и поверни объект вниз (90 градусов) Либо Set Y = .Y+Speed*Timedelta под событием Always
|
|
| |
Sanches | Дата: Среда, 12 Марта 2014, 21:44 | Сообщение # 78 | Тема: Решаем задачи по Construct Classic [вопрос-ответ] |
участник
Сейчас нет на сайте
| Как раз таки это менее правильное решение. Т.к. если за 1 тик событие срабатывает более 1 раза, то "засчитается" только первый раз. То есть событие Every 1 miliseconds будет срабатывать только раз в тик (~17мс на стандартных мониторах с 60 FPS) А каждый тик прибавляя к переменной Timedelta ты получишь точное время.
Сообщение отредактировал Sanches - Среда, 12 Марта 2014, 21:45 |
|
| |
Sanches | Дата: Среда, 12 Марта 2014, 16:54 | Сообщение # 79 | Тема: Решаем задачи по Construct Classic [вопрос-ответ] |
участник
Сейчас нет на сайте
| Только отдельной переменной, к которой каждый тик прибавляется Timedelta
|
|
| |
Sanches | Дата: Воскресенье, 23 Февраля 2014, 20:17 | Сообщение # 80 | Тема: Как сделать клон Flappy Bird на Scirra Construct |
участник
Сейчас нет на сайте
| Какая нафиг физика? Чем людям не нравятся переменные, в крайнем случае Custom Movement? Это тяжелее для компа, глючнее и непредсказуемее. И количество очков не должно зависеть от количества кадров в секунду (а тут очень даже зависит) Ты пишешь, что трубы генерируются по формуле "WindowWidth - GroundWidth - TubeWidth - N", а сам генерируешь совершенно случайно. И маркеры, создаваемые каждые 2 секунды, не удаляются. То есть их становится очень уж много. Ради прикола поставь режим FPS на Unlimited и попробуй поиграть.
|
|
| |
|