Во втором операторе вы генерируете случайное действительное значение и сохраняете его в r. На самом деле вам нужно выбрать одно из двух значений. Я рекомендую вам использовать для этого функцию choose(...)
. Вот исправленное утверждение:
r = choose(0,1); //Choose either 0 or 1 and store it in r
Кроме того, переместите приведенный выше оператор во внутренний цикл. (Потому что вы хотите решить, хотите ли вы разместить блок в указанном (x, y) месте в каждом месте, верно?)
Кроме того, я рекомендую вам заменить sprite_width
и sprite_height
вместо того, чтобы использовать значение 16 напрямую, чтобы любые изменения, которые вы вносите в спрайт, соответствующим образом корректировали результирующее расположение блоков.
Вот код с исправлениями:
var r;
repeat(room_width/sprite_width) {
repeat(room_height/sprite_height) {
r = choose(0, 1);
if (r == 1)
instance_create(x, y, obj_block);
y += sprite_height;
}
x += sprite_width;
}
Это должно сработать. Надеюсь, это поможет!
person
Awol
schedule
05.12.2013