PDA

Просмотр полной версии : присоветуйте


BloodyX
05.08.2005, 18:23
Делаю игру и поневоле встал один вопрос:
Главный герой бегает и кидает "бобмы", до 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
может, есть смысл написать диспетчер, отслеживающий картинку централизованно, снаружи.
или, например, механизм в бомбе сделать как прототип или класс-- проверено, так скрипт меньше памяти жрет.

iNils
05.08.2005, 18:31
если бомба убивает всех в радиусе, то можно просто растояние от бомбу до цели брать и сравнивать с радиусом.

DeadMorozz
05.08.2005, 18:38
посмотреть бы... так можно долго пальцем в небе ковырять ;)

BloodyX
05.08.2005, 19:34
Вот, гляньте. Монстров еще нет, но препятствия и сам себя он убивает). В библиотеке нада выбрать bomb. Весь скрипт на 15ом кадре. И вообще оцените сделанное, мож не стоит и мучатся :) .

Takato
05.08.2005, 19:40
когда взрывается бомба, доллжен умирать тот подпадает под радиус. мне кажется, что выглядеть это должно как перебор всех возможных монстров, с целью проверки совпадения их координат с координатами бомбы(+радиус).

мож проще сделать, чтобы каждый монстр сам проверял - в радиусе он ли нет? (в класс монстра такую функцию например запихнуть). тогда сколько монстров будет, столько и проверок. и код полегче

BloodyX
05.08.2005, 19:47
мож проще сделать, чтобы каждый монстр сам проверял - в радиусе он ли нет? (в класс монстра такую функцию например запихнуть). тогда сколько монстров будет, столько и проверок. и код полегче

а помоему одно и то же...

iNils
05.08.2005, 19:56
еще можно упростить вычисления. если разница по одной из координат меньше радиуса, то можно и растояние не вычислять :)

BloodyX
05.08.2005, 20:02
мдяя. а если на карте будет, к примеру, 10000 обьектов... ))

Takato
05.08.2005, 20:04
а помоему одно и то же...

Почему? Посмотри на свой скрипт - for i=1;i=99;i++ { - у тебя идет 99 вычислений даже если монстров на карте вобще нет или 2-3. А если проверка будет в монстре - при двух-трёх монстрах 2-3 проверки и будет. И счетчика до 99 нет

iNils
05.08.2005, 20:09
мдяя. а если на карте будет, к примеру, 10000 обьектов... ))
Тогда у тебя флеш и без проверки тормозить будет :)

BloodyX
05.08.2005, 20:10
Почему? Посмотри на свой скрипт - for i=1;i=99;i++ { - у тебя идет 99 вычислений даже если монстров на карте вобще нет или 2-3. А если проверка будет в монстре - при двух-трёх монстрах 2-3 проверки и будет. И счетчика до 99 нет

Ну 99 это я написал просто так. Можно будет заменить переменной которая считает кол-во монстров. Но видишь, скрипт намного сложнее чем я написал здесь. Не пожалей 4 минуты на скачку - посмотри исходник, думаю будешь немного удивлен.

Takato
05.08.2005, 20:15
Не пожалей 4 минуты на скачку - посмотри исходник, думаю будешь немного удивлен.

Сори, у мя щас 5-ый флэш - не открыть файл

BloodyX
05.08.2005, 20:24
Сори, у мя щас 5-ый флэш - не открыть файл
Жаль. Экзэшник, 1,5 мега весит. к тому же щас народ боится exe. )

Takato
05.08.2005, 20:34
Жаль. Экзэшник, 1,5 мега весит. к тому же щас народ боится exe. )

Если хочешь - просто настрой в ПублишСетингз версию для 5-го и сохрани такой swf

BloodyX
05.08.2005, 20:46
да, охота, чтоб хоть кто-нить сказал что-то. родителям ведь не покажешь, не обьяснишь, дескать, сам написал скрипт и текстуры нарисовал. ))
вот свф на 5ый флэш.

Takato
05.08.2005, 21:05
да, охота, чтоб хоть кто-нить сказал что-то. родителям ведь не покажешь, не обьяснишь, дескать, сам написал скрипт и текстуры нарисовал. ))
вот свф на 5ый флэш.

Ну так-то вродевесело... Только че-то бомбы у меня не летят - а при нажатии на некоторые клавиши (z, x) флэха "подвисает"

Блин, я походу запарился - swf файл переводить в 5-ую версию вовсе необязательно было - проигрыватель-то у меня нормальной версии :p Мне просто исходник никак не просмотреть - а swf любой можно

BloodyX
05.08.2005, 21:14
пробелом бобмы ставить...

Takato
05.08.2005, 21:25
пробелом бобмы ставить...

Ага. Но, конечно, надо с монстриками поиграть - чтобы драйв и интересность оценить ;)

BloodyX
05.08.2005, 21:38
при нажатии на некоторые клавиши (z, x) флэха "подвисает"
Действительно. Очень странно, я ничего для этих клавиш не программировал.