Решаем задачи по 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, если ещё и плюсик поставишь.. эх.. да там ничего сложного, в общем-то, в этом примере.. если что - обращайся, по мере сил помогу!
- Доброе утро, Агент Пи!
|
|
| |
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 для стены.
Мое портфолио:
|
|
| |
|