Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   присоветуйте (http://www.flasher.ru/forum/showthread.php?t=67550)

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

Вложений: 1
Вот, гляньте. Монстров еще нет, но препятствия и сам себя он убивает). В библиотеке нада выбрать 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

Цитата:

Сообщение от BloodyX
а помоему одно и то же...

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


Часовой пояс GMT +4, время: 16:31.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.