Массивы. Процедурная генерация. Инвентарь.

уроки, мануалы, советы по Construct 2

Сообщение Re: Массивы. Процедурная генерация. Инвентарь.
» 16 май 2013, 01:30

Ilyko96, а если floor(random(5)) если мы хотим получить 0-4? не одна ли вероятность выпадания 0-4?
choose(0, 1, 2, 3...) - это крайне неудобно, если значений более 9000. Прикинь вручную писать 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13.... да я уже заедолбался))))

Есть ли более лаконичный выход?
Большое спасибо всем, кто пишет мне респекты в ЛС! Очень рад, что до сих пор мои советы, примеры и уроки пользуются спросом... Но, к сожалению, я уже давно не занимаюсь разработкой игр и программированием вообще, поэтому я уже не лучший советчик в этом деле, да и времени совсем нет. Здесь на форуме я уже практически не бываю, но всегда открыт для общения в ВК: vk.com/virusfun
Но хоть меня здесь почти нет, мне все равно будут приятны ваши отзывы и плюсы [+]
Аватара пользователя

Игродел
Сообщений: 893
Я тут с 23 сен 2012
Откуда: Хабаровск
Репутация 124 [ ? ]

Сообщение Re: Массивы. Процедурная генерация. Инвентарь.
» 16 май 2013, 01:38

Я думаю бы сделали так (1-999, 80000-90000) или чего бы))
Аватара пользователя

Участник
Сообщений: 1068
Я тут с 30 мар 2013
Репутация 40 [ ? ]

Сообщение Re: Массивы. Процедурная генерация. Инвентарь.
» 16 май 2013, 01:39

For index -> Start index 1
End index 9999
Аватара пользователя

Участник
Сообщений: 1068
Я тут с 30 мар 2013
Репутация 40 [ ? ]

Сообщение Re: Массивы. Процедурная генерация. Инвентарь.
» 16 май 2013, 03:20

жаль объекты долго удаляются =)

а так сделал вариант визуального отображения в виде загружающегося рисунка http://rghost.ru/46031274
долго возился пробуя варианты, тормозило жутко, пока не дошел до этого.
Аватара пользователя

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

Сообщение Re: Массивы. Процедурная генерация. Инвентарь.
» 16 май 2013, 12:49

virusfun, тут все дело вкуса. Я показал в предыдущем своем посте разницу между выражениями:
floor(random(4)) и round(random(3)). А choose() - это, по сути, усовершенствованная версия первого выражения, т.к. можно помимо целочисленных значений выбирать случайно и строковые, и значения с плавающей точкой.

В этом уроке можно использовать и первое и второй выражение - ничего не изменится. Если значений много - разумнее использовать выражение с floor(), а если их пара-тройка, то проще выбирать через choose(), чем промысливать первое выражение...

---

Допустим стоит задача - выбрать случайно одно из 5 чисел: 0, 1, 2, 3, 4
Разумнее здесь использовать выражение floor(random(5))
А если задача стоит в том, чтобы выбрать одно из 5 слов: ноль, один, два, три, четыре
То проще написать choose("ноль", "один", "два", "три", "четыре"), чем городить локальную переменную, по значению которой вписывать нужные слова...
Аватара пользователя

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

Сообщение Re: Массивы. Процедурная генерация. Инвентарь.
» 17 май 2013, 15:24

почему если удалить проверку на animation frame = 0 персонаж перестает двигаться?..
Аватара пользователя

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

Сообщение Re: Массивы. Процедурная генерация. Инвентарь.
» 17 май 2013, 16:52

Borgius, потому что идет проверка столкновения персонажа со спрайтами стенки. Т.е. стенка и проход, по сути, это один и тот же спрайт, имеющий только различные кадры анимации, поэтому для того, чтобы определить стенка это или проход, мы сравниваем кадр анимации спрайта... :scratch_one-s_head:
Аватара пользователя

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

Сообщение Re: Массивы. Процедурная генерация. Инвентарь.
» 17 май 2013, 17:10

тфу ты, дошло, там же не фон и везде спрайты item :biggrin: мда туплю
Аватара пользователя

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

Сообщение Re: Массивы. Процедурная генерация. Инвентарь.
» 17 май 2013, 19:13

Не могу понять, почему в моем примере персонаж не доходит непосредственно до стенок.
12345.capx
(7.95 КБ) Скачиваний: 80
Аватара пользователя

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

Сообщение Re: Массивы. Процедурная генерация. Инвентарь.
» 17 май 2013, 22:44

Borgius, поработай с маской коллизии твоего персонажа... чтобы событие overlap at offset срабатывало адекватно (т.е. срабатывало только тогда, когда это требуется) надо маску коллизии уменьшить на 1px (в нашем случае).
 скрин
Изображение


---

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

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



Вернуться в Уроки по Construct 2

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

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

Наверх