Просмотр полной версии : присоветуйте
Делаю игру и поневоле встал один вопрос:
Главный герой бегает и кидает "бобмы", до 10 штук одновременно на локации. Бегают там всякие жуки, монсты, их тоже немало. Когда взрывается бомба, доллжен умирать тот подпадает под радиус. Мне кажется, что выглядеть это должно как перебор всех возможных монстров, с целью проверки совпадения их координат с координатами бомбы(+радиус). Програмно должно выглядеть примерно так:
(скрипт помещается в бомбу)
for i=1;i=99;i++ {
if (this.hitTest(_root['monstr'+i) { ...}}
if (this.hitTest(_root.player) { ...}
for i=1;i=99;i++ {
if (this.hitTest(_root['wall'+i]) { ...}}
и т.д. и т.д.
Это все работеат. Но скрипт получается огромным и тормозным. Кто может предложить что-нить похитрее?
DeadMorozz
05.08.2005, 18:29
может, есть смысл написать диспетчер, отслеживающий картинку централизованно, снаружи.
или, например, механизм в бомбе сделать как прототип или класс-- проверено, так скрипт меньше памяти жрет.
если бомба убивает всех в радиусе, то можно просто растояние от бомбу до цели брать и сравнивать с радиусом.
DeadMorozz
05.08.2005, 18:38
посмотреть бы... так можно долго пальцем в небе ковырять ;)
Вот, гляньте. Монстров еще нет, но препятствия и сам себя он убивает). В библиотеке нада выбрать bomb. Весь скрипт на 15ом кадре. И вообще оцените сделанное, мож не стоит и мучатся :) .
когда взрывается бомба, доллжен умирать тот подпадает под радиус. мне кажется, что выглядеть это должно как перебор всех возможных монстров, с целью проверки совпадения их координат с координатами бомбы(+радиус).
мож проще сделать, чтобы каждый монстр сам проверял - в радиусе он ли нет? (в класс монстра такую функцию например запихнуть). тогда сколько монстров будет, столько и проверок. и код полегче
мож проще сделать, чтобы каждый монстр сам проверял - в радиусе он ли нет? (в класс монстра такую функцию например запихнуть). тогда сколько монстров будет, столько и проверок. и код полегче
а помоему одно и то же...
еще можно упростить вычисления. если разница по одной из координат меньше радиуса, то можно и растояние не вычислять :)
мдяя. а если на карте будет, к примеру, 10000 обьектов... ))
а помоему одно и то же...
Почему? Посмотри на свой скрипт - for i=1;i=99;i++ { - у тебя идет 99 вычислений даже если монстров на карте вобще нет или 2-3. А если проверка будет в монстре - при двух-трёх монстрах 2-3 проверки и будет. И счетчика до 99 нет
мдяя. а если на карте будет, к примеру, 10000 обьектов... ))
Тогда у тебя флеш и без проверки тормозить будет :)
Почему? Посмотри на свой скрипт - for i=1;i=99;i++ { - у тебя идет 99 вычислений даже если монстров на карте вобще нет или 2-3. А если проверка будет в монстре - при двух-трёх монстрах 2-3 проверки и будет. И счетчика до 99 нет
Ну 99 это я написал просто так. Можно будет заменить переменной которая считает кол-во монстров. Но видишь, скрипт намного сложнее чем я написал здесь. Не пожалей 4 минуты на скачку - посмотри исходник, думаю будешь немного удивлен.
Не пожалей 4 минуты на скачку - посмотри исходник, думаю будешь немного удивлен.
Сори, у мя щас 5-ый флэш - не открыть файл
Сори, у мя щас 5-ый флэш - не открыть файл
Жаль. Экзэшник, 1,5 мега весит. к тому же щас народ боится exe. )
Жаль. Экзэшник, 1,5 мега весит. к тому же щас народ боится exe. )
Если хочешь - просто настрой в ПублишСетингз версию для 5-го и сохрани такой swf
да, охота, чтоб хоть кто-нить сказал что-то. родителям ведь не покажешь, не обьяснишь, дескать, сам написал скрипт и текстуры нарисовал. ))
вот свф на 5ый флэш.
да, охота, чтоб хоть кто-нить сказал что-то. родителям ведь не покажешь, не обьяснишь, дескать, сам написал скрипт и текстуры нарисовал. ))
вот свф на 5ый флэш.
Ну так-то вродевесело... Только че-то бомбы у меня не летят - а при нажатии на некоторые клавиши (z, x) флэха "подвисает"
Блин, я походу запарился - swf файл переводить в 5-ую версию вовсе необязательно было - проигрыватель-то у меня нормальной версии :p Мне просто исходник никак не просмотреть - а swf любой можно
пробелом бобмы ставить...
пробелом бобмы ставить...
Ага. Но, конечно, надо с монстриками поиграть - чтобы драйв и интересность оценить ;)
при нажатии на некоторые клавиши (z, x) флэха "подвисает"
Действительно. Очень странно, я ничего для этих клавиш не программировал.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.