Krosad | Дата: Четверг, 09.08.2012, 13:05 | Сообщение # 1 |
Группа: Проверенные
Сообщений: 55
Награды: 1
Репутация: 8
Статус: Offline
Награды
| Вопрос. Динамически созданные спрайты двигаются вниз. Как удалять любой из них, который опустится ниже 300 пикселей?
Например for (var a=1; a<=100; a=a+1) { { red = Scene.CreateEntity("red" + а); red.SetSprite("scenes\room\red.sprite"); red.X = Random(5, 795); red.Interactive = true; } }
if (("red" + а).Y > 300) // здесь не знаю как сделать { var redded = Scene.GetNode("red" + а); Game.DeleteEntity(redded); }
www.anatestudio.com
Сообщение отредактировал Krosad - Четверг, 09.08.2012, 13:05 |
|
|
|
Jeka81 | Дата: Воскресенье, 12.08.2012, 10:00 | Сообщение # 2 |
Группа: Проверенные
Сообщений: 28
Награды: 1
Репутация: 7
Статус: Offline
Награды
| Что-то в скрипте не могу разобраться. Он верно написан? Зачем двойные фигурные скобки? Опишите переменные более подробно.
Jeka81
|
|
|
|
Krosad | Дата: Понедельник, 13.08.2012, 09:36 | Сообщение # 3 |
Группа: Проверенные
Сообщений: 55
Награды: 1
Репутация: 8
Статус: Offline
Награды
| да, не заметил. Там было условие If.
for (var a=1; a<=100; a=a+1) { if (indx == 1) { red = Scene.CreateEntity("red" + а); red.SetSprite("scenes\room\red.sprite"); red.X = Random(5, 795); red.Interactive = true; } }
.. но переменная indx к делу не относится, по этому я ее удалил, а скобки забыл.
Решение нашел.
При создании: red.AttachScript("...")
Сам скрипт: while(true){ if (this.Y > 300){ Scene.DeleteEntity(this); } Sleep(500); }
Но когда много объектов, то существенно понижается FPS.
www.anatestudio.com
|
|
|
|