DimOk, от блин. мне на комп изначально поставили 32 бита сволочи, хотя у меня 64((( надо переставить винду, я даж не знал, спасибо.
Добавлено (26.03.2013, 13:04) --------------------------------------------- а вот еще нубский вопрос, можно ли сделать как-то при start of layout просветление этого самого лайоута от черного к нормальному свету, а также вместе с этим из черно-белого в цветной при начале уровня. В принципе, я так понимаю, можно создать спрайт во весь экран и потом сменять его opacity, но может есть какой-то нормальный способ? заранее спасибо
petrodiesel, у всяких функций типа System -> Next Layout/Prev Layout и т.п. есть такая штучка: Transition. По умолчанию стоит None. Но если зайти заранее во вкладке projects -> Add transitions (добавить переход), то можно будет выбирать его. - Доброе утро, Агент Пи!
Добавлено (26.03.2013, 15:04) --------------------------------------------- Nick_Rimer, и последний на сегодня вопрос если можно: при наведении на спрайт скажем "новой игры", хотелось бы реализовать сопровождающий звук. но у меня при наведении звук начинает резко глючить. может быть эмм, где то надо поставить trigger once или как?
petrodiesel, вот пример. переменная увеличивается на 1, когда мышка над объектом (это делается всего один раз, сколько ни вози мышь по объекту, но стоит тебе выйти за пределы объекта и войти в него снова, событие отработает ещё ровно один раз, и так далее). просто замени изменение переменной на проигрывание своего звука. - Доброе утро, Агент Пи!
Скажите пожалуйста, как в констракте сделать поведение, как в этой игре? http://www.youtube.com/watch?v=OElv3Pp3bUk
Я пробовал добавлять поведение плафтормера и по сетке, все равно получается не много не то. В идеале бы заставить так двигаться объект, хотя можно сделать и через анимацию тоже. Но тогда встает вопрос прыжками и падением. В игре реализовано так, что когда падаешь нельзя двигаться в какую либо сторону, а на прыжок действует так: нажимаешь кнопку прыжка, мяч летит вверх, пока не упирается куда либо, потом начинает лететь вниз. Можно ли как нибудь реализовать падение, через тип движения "сетка"?
Где ball.t время прошедшее с начала полета ball.x - x координата снаряда ball.y - y координата снаряда start.x и start.y - координата начала полета ball.xf = math.cos(ang)*force - сила полета приложенная к оси x bal.yf = math.sin(ang)*force - сила полета приложенная к оси y ang - угол запуска снаряда force - сила запуска снаряда ball.speed - коэффициент скорости полета снаряда gravity - сила гравитации
Точки полета вычисляются по формуле
Код
for i=1, 10 do points[i].x = start.x + math.cos(ang)*force*ball.speed * (i*c) points[i].y = start.y + math.sin(ang)*force*ball.speed * (i*c) + (gravity*ball.speed * (i*c)^2)/2 end
Где максимальное i (здесь 10) количество точек Point[i].x и point[i].y координаты очередной точки c - коэффициент "кучности" точек
Ставим кучность и количество точек побольше и соединяем точки линиями. Чем больше точек и кучность, тем более плавно будет проходить путь.
По этому принципу попробуй, исходя из настроек физики.
Вечер добрый. Скажите, можно ли скопировать в графическом редакторе положение hotspot относительно спрайта и применить на другой спрайт? Мне нужно разместить hotspot'ы на разных спрайтах с точностью до пикселя, а в ручную (методом научного тыка) это хоть и можно, но сложно.
Сообщение отредактировал off_line - Вторник, 26 Марта 2013, 21:36
off_line, переживаю, что нет. рассчитай эти точки и настрой для каждого спрайта вручную в соответствующих полях при выборе инструмента hot spot. думаю, что не иначе.. - Доброе утро, Агент Пи!
Я вот читаю тут урок, который находится в архиве http://scirraconstruct.ru/backup/kak-sdelat-staruyu-dobruyu-battle-tank-chast-2-redaktor-part1/ Скажите, пожалуйста, что значит цикл в цикле, и как создать двухмерный массив?
цикл в цикле, это вложенная конструкция, когда в теле одного цикла запущен другой цикл. Пусть количество итераций внешнего цикла - a, внутреннего - b. Внешний цикл отработает a раз, в то время как внутренний за это же время отработает a*b раз. наиболее часто используемым примером вложенных циклов является работа с двумерным массивом. двумерный массив представляет собой матрицу размерностью m*n (m - количество строк, n - количество столбцов). двумерный массив можно себе образно представить как набор из нескольких одномерных (так же как и одномерный - двумерным всего с одной строкой). одномерный массив заполняется значениями циклом, в котором последовательно проходят от 1-го до n-го элемента, заполняя его значением. для двумерного массива нужно заполнить m таких "одномерных массивов", т.е. каждую из его строк нужно последовательно заполнить элементами. таким образом создаётся цикл в цикле. первый, внешний цикл фактически работает на увеличение номера строки, а внутренний - пробегает по всем столбцам этой строки.
попытался объяснить своими словами. надеюсь, что хоть что-то понятно. приведу небольшой пример ни на каком языке, просто логикой. заполнение двумерного массива.
Пример: //внешний цикл 1 для переменной i от 1 до m выполнять следующие действия: -----//запускается внутренний цикл 2 -----для переменной j от 1 до n выполнять следующие действия ----------//заполняется элемент со порядковым номером i,j ----------присвоить элементу (i,j) случайное значение -----//конец цикла 2 //конец цикла 1
таким образом, что происходит. появляется две переменных i - содержит номер ТЕКУЩЕЙ заполняемой строки, j - содержит номер ТЕКУЩЕГО заполняемого столбца. запускается цикл 1, i становится равно = 1 (т.е. начали с первой строки) запускается цикл 2, j становится равно = 1 (т.е. начали с первого столбца) присвоили элементу (1,1) какое-то число внутри цикла 2 происходит увеличение переменной на 1, j становится равно = 2 (т.е. второй столбец, но i по-прежнему равно 1, т.к. ещё ни разу не завершился 1 цикл) присвоили элементу (1,2) какое-то число внутри цикла 2 происходит увеличение переменной на 1, j становится равно = 3 (т.е. третий столбец, но i по-прежнему равно 1) присвоили элементу (1,3) какое-то число и так далее, пока не заполним элемент (1,n) только теперь завершится цикл 2, а так как в цикле 1 других действий нет, то и он завершится, i увеличится на 1, и снова запустится цикл 1, а внутри него - цикл 2, который начнёт всё то же самое, только i теперь равно 2. начнём заполнять элементы (2,1), (2,2), (2,3) ... (2,n) и так будет без конца. всё закончится, когда мы заполним элемент (m,n). тогда внешний цикл запускаться уже не будет, а соответственно и вложенный в него внутренний.
вот. своими словами. вроде популярно разжевал просто по мелочам. если что-то не ясно, или требуется уточнение - пиши в Л.С.
я никогда не делал никакие массивы в СС, но там есть такой компонент - Array. у него есть три свойства: Width (X), Height (Y), Depth (Z) таким образом можно создать хоть трёхмерный массив (как ты понимаешь, при работе с трёхмерным массивом будет три координаты, значит дважды будет цикл в цикле, но, думаю, это тебе не надо, хотя, как знать..)
Соответственно ты выставляешь размерность по X, Y, Z. Если X>0, Y=1, Z=1 - это одномерный массив. если X>0, Y>1, Z=1 - это двумерный массив. если X>0, Y>1, Z>1 - это трёхмерный массив. Массив 1*1*1 - тупо бессмысленный массив из одного элемента
У Array есть событие For each element (для каждого элемента), очевидно, что это событие делает всё то, что я выше написал, проходя по всем элементам, а там ты уже должен сделать, что это будет, запись ли данных, чтение ли данных, или ещё что-то..
Создание цикла на СС может быть сделано System -> FOR указываешь Name - имя переменной, по которой происходит перебор, Start - начальное значение, End - конечное значение. например, если ты захочешь заполнить массив с 5 по 9 элемент, можно написать цикл: System -> For -- Name = "i", Start = 5, End = 9 далее создать на это событие действие, например, Array -> Set value at X -- в первом поле ввести LoopIndex("i"), во втором - то значение, которое хочешь присвоить этим номерам массива, например, 7. Таким образом, если мы создадим пустую сцену с такими условиями (мы не будем менять в Array значения по-умолчанию), мы будем иметь одномерный массив Array из 10 элементов, в котором все элементы будут = 0, кроме элементов с 5 по 9, которые будут равны 7.
Вот. Такое тебе практическое дополнение для СС по созданию массивов. За любыми вопросами прошу в Л.С. или уточнять прям тут далее по теме. Это не важно, но если помогло, надеюсь на "+", а то я столько текста написал, разжевал всё, надеюсь, полезно и поможет
Добавлено (27.03.2013, 00:38) --------------------------------------------- вот, как можно сделать заполнение массива двумя разными способами. результат один и тот же, но второй способ нагляднее демонстрирует цикл в цикле (хотя в любом ЯП эта наглядность обычно гораздо выше, тут же пока разберёшься). рекомендуется использовать первый способ, когда нужно заполнить полностью весь массив, и второй способ (за малыми изменениями), когда требуется заполнить лишь какую-то часть последовательности. клац 1, клац 2
массив, как видно, заполняется случайными значениями от 1 до 100. при этом что в первом, что во втором случае сработает код для любой размерности двумерного массива.
- Доброе утро, Агент Пи!
Сообщение отредактировал Nick_Rimer - Вторник, 26 Марта 2013, 23:42
Здравствуйте. Пытаюсь сделать игру на construct. При добавлении кейборда и события при нажатии на "Enter" перейти на другой слой, кнопка работает только если загрузить отдельно слой с кнопкой или хотя бы с него начать. Если загрузить весь проект или начать с другого слоя - не работает. Пример: загружаю слой "Конец игры" при нажатии на Enter - начать игру с начала. Кнопка работает. Игра начинается, но если мы проигрываем и опять попадаем на слой "Конец игры", то кнопка уже не работает.
Сообщение отредактировал SAMAEL21 - Четверг, 28 Марта 2013, 01:17
SAMAEL21, да не может быть такого,наверняка дело в слоях Вот простой пример Пример всё работает Помню сделал 3 слоя,потом создал четвёрый и хотел запихнуть вместо 3-го,а 3-ий на место 4-го поменял названия события и всё вышло на перекосяк) Так что лучше делать всё по порядку
Nick_Rimer, я все не читал.....но тут вроде все правильно
Цитата (Nick_Rimer)
kawaikoalex,
ТЕОРИЯ:
цикл в цикле, это вложенная конструкция, когда в теле одного цикла запущен другой цикл. Пусть количество итераций внешнего цикла - a, внутреннего - b. Внешний цикл отработает a раз, в то время как внутренний за это же время отработает a*b раз. наиболее часто используемым примером вложенных циклов является работа с двумерным массивом. двумерный массив представляет собой матрицу размерностью m*n (m - количество строк, n - количество столбцов). двумерный массив можно себе образно представить как набор из нескольких одномерных (так же как и одномерный - двумерным всего с одной строкой). одномерный массив заполняется значениями циклом, в котором последовательно проходят от 1-го до n-го элемента, заполняя его значением. для двумерного массива нужно заполнить m таких "одномерных массивов", т.е. каждую из его строк нужно последовательно заполнить элементами. таким образом создаётся цикл в цикле. первый, внешний цикл фактически работает на увеличение номера строки, а внутренний - пробегает по всем столбцам этой строки.
попытался объяснить своими словами. надеюсь, что хоть что-то понятно. приведу небольшой пример ни на каком языке, просто логикой. заполнение двумерного массива.
Пример: //внешний цикл 1 для переменной i от 1 до m выполнять следующие действия: -----//запускается внутренний цикл 2 -----для переменной j от 1 до n выполнять следующие действия ----------//заполняется элемент со порядковым номером i,j ----------присвоить элементу (i,j) случайное значение -----//конец цикла 2 //конец цикла 1
таким образом, что происходит. появляется две переменных i - содержит номер ТЕКУЩЕЙ заполняемой строки, j - содержит номер ТЕКУЩЕГО заполняемого столбца. запускается цикл 1, i становится равно = 1 (т.е. начали с первой строки) запускается цикл 2, j становится равно = 1 (т.е. начали с первого столбца) присвоили элементу (1,1) какое-то число внутри цикла 2 происходит увеличение переменной на 1, j становится равно = 2 (т.е. второй столбец, но i по-прежнему равно 1, т.к. ещё ни разу не завершился 1 цикл) присвоили элементу (1,2) какое-то число внутри цикла 2 происходит увеличение переменной на 1, j становится равно = 3 (т.е. третий столбец, но i по-прежнему равно 1) присвоили элементу (1,3) какое-то число и так далее, пока не заполним элемент (1,n) только теперь завершится цикл 2, а так как в цикле 1 других действий нет, то и он завершится, i увеличится на 1, и снова запустится цикл 1, а внутри него - цикл 2, который начнёт всё то же самое, только i теперь равно 2. начнём заполнять элементы (2,1), (2,2), (2,3) ... (2,n) и так будет без конца. всё закончится, когда мы заполним элемент (m,n). тогда внешний цикл запускаться уже не будет, а соответственно и вложенный в него внутренний.
вот. своими словами. вроде популярно разжевал просто по мелочам. если что-то не ясно, или требуется уточнение - пиши в Л.С.
я никогда не делал никакие массивы в СС, но там есть такой компонент - Array. у него есть три свойства: Width (X), Height (Y), Depth (Z) таким образом можно создать хоть трёхмерный массив (как ты понимаешь, при работе с трёхмерным массивом будет три координаты, значит дважды будет цикл в цикле, но, думаю, это тебе не надо, хотя, как знать..)
Соответственно ты выставляешь размерность по X, Y, Z. Если X>0, Y=1, Z=1 - это одномерный массив. если X>0, Y>1, Z=1 - это двумерный массив. если X>0, Y>1, Z>1 - это трёхмерный массив. Массив 1*1*1 - тупо бессмысленный массив из одного элемента smile
У Array есть событие For each element (для каждого элемента), очевидно, что это событие делает всё то, что я выше написал, проходя по всем элементам, а там ты уже должен сделать, что это будет, запись ли данных, чтение ли данных, или ещё что-то..
Создание цикла на СС может быть сделано System -> FOR указываешь Name - имя переменной, по которой происходит перебор, Start - начальное значение, End - конечное значение. например, если ты захочешь заполнить массив с 5 по 9 элемент, можно написать цикл: System -> For -- Name = "i", Start = 5, End = 9 далее создать на это событие действие, например, Array -> Set value at X -- в первом поле ввести LoopIndex("i"), во втором - то значение, которое хочешь присвоить этим номерам массива, например, 7. Таким образом, если мы создадим пустую сцену с такими условиями (мы не будем менять в Array значения по-умолчанию), мы будем иметь одномерный массив Array из 10 элементов, в котором все элементы будут = 0, кроме элементов с 5 по 9, которые будут равны 7.
Вот. Такое тебе практическое дополнение для СС по созданию массивов. За любыми вопросами прошу в Л.С. или уточнять прям тут далее по теме. Это не важно, но если помогло, надеюсь на "+", а то я столько текста написал, разжевал всё, надеюсь, полезно и поможет happy
Добавлено (27.03.2013, 00:38) --------------------------------------------- вот, как можно сделать заполнение массива двумя разными способами. результат один и тот же, но второй способ нагляднее демонстрирует цикл в цикле (хотя в любом ЯП эта наглядность обычно гораздо выше, тут же пока разберёшься). рекомендуется использовать первый способ, когда нужно заполнить полностью весь массив, и второй способ (за малыми изменениями), когда требуется заполнить лишь какую-то часть последовательности. клац 1, клац 2
массив, как видно, заполняется случайными значениями от 1 до 100. при этом что в первом, что во втором случае сработает код для любой размерности двумерного массива.
kawaikoalex, это в основном для создания двухмерного ландшафта, x - вертикальная полоса y - горизонтальная полоса в каждой вертикальной просчитывается горизонтальная одна и та же система делается в сохранении и загрузке ландшафта all this делается в редакторе карт ,который делаешь ты сам.
Как мне сделать,чтобы спрайт врага шёл всегда на моего героя? Вот я всё никак не могу,мозг ломаю Делал с помощью Sprite>move at angle Можно-ли с помощью него сделать?
Добавлено (29.03.2013, 05:50) --------------------------------------------- Ну чо никто незнает?
Сообщение отредактировал IzBePg - Пятница, 29 Марта 2013, 05:39