|
|
|||||
Регистрация: May 2004
Сообщений: 11
|
Алтернатива альфа = 0%
Делаю я тут игру Значит много всяких чебуреков бегают за другим чебуреком, стрельба и все такое.
Так вот. Вокруг каждого врага есть прозрачный (0%) круг, которыйй ХитТестится. При этом очень загружается процессор. Если включить альфа = 100%, то загрузка падает. Существует ли какая-нибудь альтернатива прозрачному кругу? Может можно программно его описать, вокруг врага? Только чтоб камень не очень загружался, С альфой вообще невозможно. |
|
|||||
Регистрация: Feb 2001
Сообщений: 1,893
|
... если радиус первого 30, а вторго 40, а дистанция между ними 60 - то значит они пересекаются
|
|
|||||
Регистрация: Aug 2003
Сообщений: 16
|
А можно пару ссылко учащимся?
|
|
|||||
гы-гы-гы =)
Забор рулит =) Зачем тебе круги? если для урона, то это зря. Когда я парился с игрушками, я придумал для себя что-то вроде точек с неким уроном. Они создаются виртуально функцией, а после того как их параметр урона обнуляется или они уходят за экран, они удаляются.Вообще тут мы говорим о больших скоростях, а во флэше все по кадрам =) те скорость ограничего, и в нашем случае очень даже, то есть тебе придется просчитывать каждый пиксел пути сразуже после того как снаряд выпущен. Есть пара исходников. Опиши короче зачем тебе это все, а то круги как-то футуристически звучат =)
__________________
I'm only happy when it rains. Waka Laka |
|
|||||
Регистрация: Aug 2003
Сообщений: 16
|
Вобщим пишу под этим ником, я оказывается уже был здесь зарегестрирован
Вобщем игра такая. Ты управляешь челом (вид сверху). На тебя прется враг (пока надо с одни разобраться). Вокруг врага описан прозрачный круг, который хиттестится. иф {круг пересекает плеера, то враг начинает в него стрелять каждые 0,5 сек. по пуле} ложно {враг идет в сторону плеера} Так вот это прозрачный круг выполняет функцию некой зоны прицеливания противника. Т.е. хрен знает откуда он стрелять не будет. Чем бы заменить этот круг, чтобы лагов меньше было. А то когда дубликаты делаешь все начинает лагать. |
|
|||||
хмм ты говоришь о векторах.
Вычисление середины обьекта, а затем длинны вектора от середины обьекта А до середины обьекта Б, если длинна вектора меньше заданной, происходит действие (втоего чела стреляют) =)
__________________
I'm only happy when it rains. Waka Laka |
|
|||||
Регистрация: Aug 2003
Сообщений: 16
|
А где об это можно почитать?
Особо не ругай, если вопрос легкий, я эту игру делаю дабы обучиться. На практике материал легче дается. И еще один вопрос. Какие еще способу уменьшения лагов бывают? Ну может лучше импортировать gif, а не во флеше рисовать. Если объект простейший и маленький (кружочек с палочкой). Спасибо. |
|
|||||
А если просто отслеживать координаты (а через них дистанцию) между персонажами?
distanceX=Math.abs(vrag._x-pleer._x) distanceY=Math.abs(vrag._y-pleer._y) И если оба этих дистанса меньше чего-то - можно шмалять... Все равно же враг как-то следит за игроком, чтоб за ним бегать...
__________________
Опять мимо?.. |
|
|||||
Регистрация: Aug 2003
Сообщений: 16
|
Лаги убавились, но возникла новая проблема.
Теперь когда делается дубликат клипа они с ума начинают сходить, т.е. стрелять, когда расстояния хотя бы между одним из них и плеером больше заданного. Т.е. они не(!) независимы. Хотя с хиттестом все ходили сами по себе. Код для врага написан в отдельном мувике. Вот в таком виде. Далеше я ничего, кроме ИФ не изменял, так что там врятли какие-то лаги. Да и никто разбираться в нем не будет. Может можно как-то независимое дублирование делать? Дублирую так |
|
|||||
[++]
|
Расстояние между двумя точками A ( x1 ; y1 ) и B ( x2 ; y2 ) вычисляется по формуле R = Math.sqrt( ( x1 - x2 ) * ( x1 - x2 ) + ( y1 - y2 ) * ( y1 - y2 ) );
|
Часовой пояс GMT +4, время: 18:53. |
|
« Предыдущая тема | Следующая тема » |
|
|