Среда, 27 Ноября 2024, 07:04

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Решаем задачи по Construct Classic [вопрос-ответ]
Serega-AДата: Суббота, 01 Марта 2014, 20:33 | Сообщение # 2221
почетный гость
Сейчас нет на сайте
Цитата Nick_Rimer ()
пояснения:

не хотелось мудрить особо с сеткой, поэтому она строится размножением спрайта с красной границей.. можно нарисовать на канвасе; но это не суть, главное - наглядность работы.
по нажатию на пробел в случайных координатах поля создаётся "кусочек" паззла.
кусочек паззла можно перетаскивать драг-н-дропом, т.е. левой кнопкой мыши.
когда ты "бросаешь" кусочек мышкой, если кусочек по Х и по Y попадает в допуск (глобальная переменная delta), в допуск - т.е. по одной и другой координате до угла ближайшей клеточки не более 10 пикселей (по-умолчанию), происходит автопривязка, и кусочек автоматически выравнивается по сетке; можешь поменять переменную; чем меньше значение, тем ближе к углу надо бросать кусочек, чтобы произошла автопривязка.
если связать построенную сетку с двумерным массивом, можно легко вычислять, на своих ли местах стоят кусочки.
глобальная переменная width - размерность кусочка (64х64); из-за того, что в начале программы все спрайты "уничтожены", нельзя воспользоваться выражением, например, piece.Width или grid.Width; потому что ни одного объекта такого вида не создано, следовательно будет ошибка в вычислениях; поэтому ставь этой переменной значение, равное размерности твоих кусочков; я использую их в формулах, поэтому удобно не в нескольких местах потом менять, если размерность поменялась вдруг, а в одной переменной; разумеется, я сделал сетку квадратной, и кусочки - квадратные, если у тебя размерности будут разные, понадобятся две переменные, например, widthy, widthx; соответственно в формулах нужно будет поменять.
переменные ХХ и YY - это вычисляемые значения координат ближайшего угла, около которого находится клеточка. привязка идёт по левому верхнему углу.
из формул - функция floor(x) округляет вещественное число x до ближайшего минимального целого, т.е. всегда округляет вниз; фактически это всё равно, что происходит отбрасывание дробной части; так floor(2,001) = 2 и floor(2,999) = 2

надеюсь, дальше разберёшься, что к чему. если будут ещё вопросы - задавай, поясню. удачи!
конечно, этот исходник ещё можно и нужно улучшать, но, думаю, я тебе уже дал хороший толчок. если получится - делай дальше сам. если нет - обращайся за помощью.
СПАСИБО ОГРОМЕННОЕ!!! Буду вникать, конечно сложновато для моего уровня знаний в конструкторе, но толчок действительно хороший. Еще раз спасибо, что уделил свое время.


Мои поделки
Nick_RimerДата: Суббота, 01 Марта 2014, 22:41 | Сообщение # 2222
заслуженный участник
Сейчас нет на сайте
Serega-A, если ещё и плюсик поставишь.. shy biggrin
эх.. да там ничего сложного, в общем-то, в этом примере.. если что - обращайся, по мере сил помогу!


- Доброе утро, Агент Пи!
Serega-AДата: Суббота, 01 Марта 2014, 22:48 | Сообщение # 2223
почетный гость
Сейчас нет на сайте
Цитата Nick_Rimer ()
если ещё и плюсик поставишь..
Само собой! что хоть я... ! Немного начинаю вникать уже.


Мои поделки
mobipakДата: Воскресенье, 02 Марта 2014, 05:58 | Сообщение # 2224
Подрывник
Сейчас нет на сайте
А как делать так, чтобы громкость звука менялась относительно некоторого объекта?

Делаю по инструкции, но разницы относительно расположения объекта не видно не слышно.
JessyStormДата: Воскресенье, 02 Марта 2014, 06:14 | Сообщение # 2225
заслуженный участник
Сейчас нет на сайте


https://www.artstation.com/artist/jessystorm
mobipakДата: Воскресенье, 02 Марта 2014, 06:57 | Сообщение # 2226
Подрывник
Сейчас нет на сайте
Я уже решил проблему. Ещё настроил XAudio2. Но всё равно спасибо.

Добавлено (02.03.2014, 06:57)
---------------------------------------------
Остался один вопрос: как фоновый звук беспрерывно проигрывать?

JessyStormДата: Воскресенье, 02 Марта 2014, 08:24 | Сообщение # 2227
заслуженный участник
Сейчас нет на сайте


https://www.artstation.com/artist/jessystorm
Serega-AДата: Воскресенье, 02 Марта 2014, 15:34 | Сообщение # 2228
почетный гость
Сейчас нет на сайте
Цитата Nick_Rimer ()
если что - обращайся, по мере сил помогу!
Привет еще раз! Надеюсь не надоел со своими вопросами? Твой исходник послужил хорошей опорой в создании пазла, и сегодня я решил сам попробовать покумекать и вот что вышло... прикреплять кусочки будущего пазла я решил путем сравнения координат, и вроде все ничего, но дело в том что я создал глобальную переменную которая при каждом удачном присоединении убавляеться на 1, то есть если кусков у меня 15, то когда все эти 15 кусков встанут по своим координатам произойдет переход на победный лайот. Но черт возьми вот проблема - при удачном соединении хоть даже одного куска переменная в принципе убавляется на 1, но бесконечно. Просто идет отчет и все. Как быть? Вроде и пазл рабочий получился.


Мои поделки
Nick_RimerДата: Воскресенье, 02 Марта 2014, 15:43 | Сообщение # 2229
заслуженный участник
Сейчас нет на сайте
Serega-A, а кусочек кода можешь прислать скриншотом, чтобы посмотреть, что у тебя там за ситуация, как расположены твои события и действия? если у тебя 7я винда, то вообще удобно быстро воспользоваться "ножницами".
чем гадать и предлагать тебе несколько разных вариантов, так проще сразу посмотреть и дать решение.


- Доброе утро, Агент Пи!
Serega-AДата: Воскресенье, 02 Марта 2014, 15:51 | Сообщение # 2230
почетный гость
Сейчас нет на сайте
Цитата Nick_Rimer ()
а кусочек кода можешь прислать скриншотом
Пойдет такой?


Мои поделки
Nick_RimerДата: Воскресенье, 02 Марта 2014, 16:11 | Сообщение # 2231
заслуженный участник
Сейчас нет на сайте
Serega-A, ну конечно! я так и думал.
у тебя, смотри, вся эта ветка действий выполняется, если Sprite2.X=164
получается, что пока это условие верно, действия будут выполняться. и пока оно не изменится - будут выполняться. таким образом, если Х этого спрайта не изменится, так и будет до бесконечности выполняться.
на этот случай существует такое событие Trigger once while true (исполнить однажды, пока истина)
все действия внутри этого события выполнятся ОДИН РАЗ и не будут больше исполняться, даже если условие продолжает быть истиной. в следующий раз эти действия выполнятся лишь после того, как условие сначала станет ложным, а затем вновь истиной.

надеюсь, я понятно объяснил. событие Trigger once while true принадлежит объекту System.
вот простой пример, чтобы ты понял принцип работы: скачать
из глобальной переменной number вычитается 1, если координата Х красного квадрата меньше 200 (квадрат можно перемещать мышкой).
обрати внимание, как только условие выполнилось - единица вычитается. и всё, пока Х будет меньше 200 больше не будет вычитаться. Но! как только Х станет больше 200, а затем снова меньше 200, вычитание произойдёт ещё раз. Это достигается вышеназванным условием. можешь убрать его и поставить действие просто под условие, проверишь, что изменится. Увидишь, что 1 будет бесконечно отниматься от number, пока Х будет меньше 200.


- Доброе утро, Агент Пи!

Сообщение отредактировал Nick_Rimer - Воскресенье, 02 Марта 2014, 16:13
Serega-AДата: Воскресенье, 02 Марта 2014, 16:28 | Сообщение # 2232
почетный гость
Сейчас нет на сайте
Цитата Nick_Rimer ()
Trigger once while true
Еще раз СПАСИБО! Блин, мне еще учиться и учиться, да и английский не помешает подучить. Теперь все как часики работает. Как разрешат на форуме - еще тебе + поставлю, несомненно заслуженно. Без твоей помощи я б с этим пазлом долго ковырялся.


Мои поделки
ToporДата: Среда, 05 Марта 2014, 13:42 | Сообщение # 2233
был не раз
Сейчас нет на сайте
Кто-нибудь сталкивался с плагином Audiere? Как с его помощью загружать и проигрывать звуки и мелодии?

Добавлено (05.03.2014, 13:42)
---------------------------------------------
Помогите с проблемой, пожалуйста. Ставлю условие, если спрайт виден, то проигрывается звук костра. Но при запуске звук многократно дублируется, сливаясь в треск. В чем дело не понимаю. Исходник: http://rghost.ru/52833064.

VickaДата: Среда, 05 Марта 2014, 14:12 | Сообщение # 2234
Another ART
Сейчас нет на сайте
Topor, попробуй при вызове звука использовать trigger one while true

ToporДата: Среда, 05 Марта 2014, 15:07 | Сообщение # 2235
был не раз
Сейчас нет на сайте
Neia, спасибо.
VickaДата: Среда, 05 Марта 2014, 18:01 | Сообщение # 2236
Another ART
Сейчас нет на сайте
Topor, абы работало)

PanthemДата: Четверг, 06 Марта 2014, 13:02 | Сообщение # 2237
был не раз
Сейчас нет на сайте
Кажется, тупой вопрос, но как можно поменять иконки в игре?
SergeyDoДата: Четверг, 06 Марта 2014, 14:49 | Сообщение # 2238
участник
Сейчас нет на сайте
Panthem, если я правильно понял, справа вкладка Project - Icons
maxlunДата: Четверг, 06 Марта 2014, 18:52 | Сообщение # 2239
был не раз
Сейчас нет на сайте
Возможно ли сделать так, чтобы объект частицы при столкновении со спрайтом уничтожался? Например, чтобы град пуль останавливался стеной.
LasmelanДата: Четверг, 06 Марта 2014, 19:12 | Сообщение # 2240
Construct 2 & Classic
Сейчас нет на сайте
maxlun, а, может, лучше просто сделать стену выше частиц? System > order > to front для стены.

Мое портфолио:
Поиск:

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