Помогите разобраться с циклом for
|
|
AHTOXA82 | Дата: Вторник, 19 Февраля 2013, 21:38 | Сообщение # 1 |
частый гость
Сейчас нет на сайте
| Преветствую. Помогите разобраться с таким вот примером. в событии клавиатуры пишу код: for (n1=1; n1<=instance_number(object0); n1+=1) { if (instance_find(object0,n1-1)).y < 240 { (instance_find(object0,n1-1)).y += 20 } } По идее он должен работать так: 1) присваиваем n1=1; 2) проверяем, меньше ли n1 общего количества экземпляров объекта object0; 3) выполняем тело цикла, а именно: в случае, если координата y экземпляра с номером n1-1 меньше 240, мы опускаем этот экземляр по вертикали на 20 пикселей, а если координата больше или равна 240, то ничего не делаем; 4) потом прибавляем к n1 единицу, проверяем неравенство и все повторяем. Как я думаю, результат должен быть таким: все экземпляры выше уровня 240 должны сдвинуться на 20 пикселей вниз, а все экземляры ниже, должны остаться на месте. По факту происходит не так. Все экземляры выше уровня 240 опускаются до тех пор, пока их координата по вертикали не будет больше 240 ( т.е. пока не перестанет выполняться условие (instance_find(object0,n1-1)).y < 240) Почему так происходит?
Залил иходник сюда http://zalil.ru/34276708
Сообщение отредактировал AHTOXA82 - Вторник, 19 Февраля 2013, 21:54 |
|
| |
Xeno17 | Дата: Среда, 20 Февраля 2013, 15:06 | Сообщение # 2 |
почетный гость
Сейчас нет на сайте
| AHTOXA82, Я решил вашу проблему =) посидел подумал, но решил.
http://zalil.ru/34278583
Ваша ошибка была в том что вы событие привязали к бомбам и каждый раз когда нажимали space события срабатывало столько раз - сколько бомб. В исходнике я просто сделал объект control который и держит код и событие space.
Счастья и удачи всем ! aka Dark_zarich Война лицо Третий акк уже =( остальные взломали =(
|
|
| |
AHTOXA82 | Дата: Среда, 20 Февраля 2013, 18:22 | Сообщение # 3 |
частый гость
Сейчас нет на сайте
| Да, Xeno17, действительно. Большое спасибо. Я не слишком разбираюсь в гм, так что для меня это было новостью. Странно, я думал что событие выполняется для объекта, в котором это событие совершается, а оказывается для экземпляров. Интересно, это правило выполняется для всех событий? Т.е. не только для события клавиатуры, но и события шага например тоже?
Сообщение отредактировал AHTOXA82 - Среда, 20 Февраля 2013, 18:31 |
|
| |
Xeno17 | Дата: Среда, 20 Февраля 2013, 18:32 | Сообщение # 4 |
почетный гость
Сейчас нет на сайте
| AHTOXA82, вроде как да. Если вы мячику припишите ходьбу в степ то будут ходить все его экземпляры.
Счастья и удачи всем ! aka Dark_zarich Война лицо Третий акк уже =( остальные взломали =(
|
|
| |