Хаотичное появление спрайтов

техническая поддержка по Construct 2

Сообщение Хаотичное появление спрайтов
» 28 ноя 2013, 10:25

Красиво составил виктор, все работает, но еще есть небольшой вопрос, можно ли сделать чтобы размер появляющихся спрайтов менялся рандомно,(один больше другой меньше)
Аватара пользователя

Участник
Сообщений: 206
Я тут с 09 ноя 2013
Репутация 2 [ ? ]

Сообщение Хаотичное появление спрайтов
» 28 ноя 2013, 15:32

sazar писал(а):Красиво составил виктор, все работает, но еще есть небольшой вопрос, можно ли сделать чтобы размер появляющихся спрайтов менялся рандомно,(один больше другой меньше)


Можно! Смотря как ты хочешь. Наверно, чтобы всё было пропорционально, да? Т.е. ширина равна высоте. Если так, то вот что надо сделать: просто добавь два действия:
Изображение

А если хочешь, чтобы и высота, и ширина были рандомными, то сделай так:
Изображение

И про random ещё тебе скажу...
Если ты напишешь так: random(51), то будет браться рандомное число от 0 до 51 (51 не включая!).
Если ты напишешь так: random (20, 40), то будет браться число от 20 до 40!

Держи ещё и исходник.
Spawn.capx
(172.39 КБ) Скачиваний: 101
Аватара пользователя

Участник
Сообщений: 185
Я тут с 24 июл 2013
Откуда: Беларусь, Минск
Репутация 60 [ ? ]

Сообщение Хаотичное появление спрайтов
» 28 ноя 2013, 16:28

Вот глянь,вроде все просто,
добавил еще разный цвет так чтобы понять прикол Random)))

_Victor_ писал(а):И про random ещё тебе скажу...

Упс не прочитал выше ответ)
stars Sat.capx
(90.04 КБ) Скачиваний: 94
Звезды=)
Аватара пользователя

Участник
Сообщений: 65
Я тут с 08 авг 2013
Репутация 3 [ ? ]

Сообщение Хаотичное появление спрайтов
» 29 ноя 2013, 07:57

_Victor_, Saturn,
Скажу в свою очередь о рандоме, чтобы поправить некоторые неточности. Может, поможет когда-нибудь не ошибиться там, где будет важна точность результата.

Если ты напишешь так: random(51), то будет браться рандомное число от 0 до 51 (51 не включая!)

Без обид, математики не любят длинных слов; т.к. формула рандома random(N), в таком случае просто говорят, что получается случайное число от 0 до N-1, в данном случае это называется от 0 до 50 без употребления слов, типа "включая", "не включая", так просто грамотнее :wink:
Из подсказки в С2 при вводе выражения random: Range of random numbers to generate, from 0 to one less than this value (диапазон для генерации чисел от 0 до числа на единицу меньше указанного значения).

Ещё С2 выделяется своим замечательным способом рандома: создаёт целое рандомное число в указанных пределах, а потом к нему не менее рандомнейшую вещественную часть из 10 знаков после запятой (типа 2.0987365876). Таким образом, чтобы получить нормальное целое рандомное число в чётко указанных пределах лучше воспользоваться такой конструкцией: floor(random(N)) Например, в СС такого не было, там случайное число было целым.
floor(x) - функция округления в наименьшую сторону. Почему нельзя использовать, например, стандартное округление round(x)? Потому что можно нарваться на ошибку превышения верхнего предела на 1. Допустим, нужно целое число от 0 до 50, мы напишем round(random(51)). Пусть random(51) выдало нам число 50.7895638902. Тогда функция round(x) округлит это до 51, что нам совсем не надо. А floor(x) как бы просто отбрасывает вещественную часть числа, выдавая нам 50.

Если ты напишешь так: random (20, 40), то будет браться число от 20 до 40!

Если написать random(20, 40), то получится число в пределах от 20 до 39!!! Не до 40. Опять же для получения целочисленного ответа не забываем про floor(x).

И совсем уж напоследок. Выводил я как-то формулу для рандома в любых заданных пределах. Вполне может когда-нибудь пригодиться. Приведу её и здесь: random(m-n+1)+n
Здесь m - верхний предел, n - нижний предел. И, конечно, для целочисленных результатов не забываем про floor(x) :smile:
- Доброе утро, агент Пи!
Сделаю качественный перевод вашего проекта: Eng -> Rus -> Eng. Быстро или недорого - выбираете вы сами.
Аватара пользователя

Игродел
Сообщений: 82
Я тут с 27 ноя 2013
Откуда: Москва
Репутация 13 [ ? ]



Вернуться в Вопрос-Ответ по Construct 2

Сейчас эту тему просматривают

Зарегистрированные пользователи: нет зарегистрированных пользователей

Наверх