PDA

Просмотр полной версии : стрелялка-попадалка :)


old_dark_elf
15.07.2005, 15:17
Люди, помогите, плз :)
Как организовать стрельбу и попадание для аркды?

я сделал так:
- сделал цель (бегает вверх-вниз)
- сделал пулю (стреляется attachMovie()'ем из черного кружка при нажатии пробела)
- при попадании пули в цель (при хитТесте), должно увеличиваться колво очков, НО это, почему-то, происходит только в случае попадения первой пулей, остальные не замечаются...

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

что делать??? :confused:
вот пример:

KUZEN
15.07.2005, 15:28
всё нормально замечается и прибавляется, вот только иногда аж по три очка ...

old_dark_elf
15.07.2005, 15:34
это если стрелять одиночными :)
а если ихвыпустить сразу штук нцать попадает только какой-то один, а остальные пролетают мимо...
или это у только у меня такое происходит???
P.s. а то что иногда по 3 очка это норм, этт только пример :)

KUZEN
15.07.2005, 16:33
так они наверное просто не попадают, ты просто поставь его на месте и постреляй по нему и посмотри ...

old_dark_elf
15.07.2005, 17:15
блин, :) ну пусти беспрырывную очередь, и ты увидишь, что даже при попадении, срабатывает только одна пуля из всех :) ...

поставил ;) все так же - первая пуля из очереди сработывает, остальные нет...

Король
15.07.2005, 17:55
во-первых, при событии хиттеста удаляй пулю, с которой столкнулся, а потом уже добавляй очко. от того что у тебя пуля не удаляется - путаница с количеством очков. второе - естественно, мувы с одинаковым названием не отслеживаются как несколько мувов. называй по-разному

old_dark_elf
15.07.2005, 18:05
очки это фигня, на них обращаем внимание в последню очередь :) (это не баг это фича)

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

Король
15.07.2005, 18:09
хиттест отслеживать в цикле. выпускай пули на 10 разных depth с 10 разными названиями. это во первых не даст пользователю бездумно лупить бесконечной очередью, потому что он сможет выпустить одновременно только 10 пуль, во-вторых, позвонит тебе отслеживать хиттест. а вообще лучше рассчитай, на какой позиции о _у должна находиться мишень, чтоб пуля, выпущенная в этот момент, в нее попала, и в момент выпуска пули ты уже будешь знать, попадешь или нет. очень удобно и с хиттестом морочиться не надо.

Король
15.07.2005, 18:09
и очки, кстати, не фича а именно баг

old_dark_elf
15.07.2005, 18:26
спасибо, только ты решаешь не ту проблему которую нужно :)
предрасчет, этт гуд, тока мне он не нужен, ну допустим у мешени будет сложная полурандомная траектория :)

может есть возможность сделать что типа:
если с мешенью сталкивается обьект, то проверяется наличия у обьекта свойства "пуля=труъ", то все оки доки :)

<<и очки, кстати, не фича а именно баг>>
не хочу обидеть, но ты то откуда знаешь, что это не фича?
может мне так и нужно, типа хороший выстрел вознаграждается доп очками :)
на очки забили, ок?

Король
15.07.2005, 18:48
нассчет того почему я знаю :
хороший - это тот выстрел, когда пуля касалась мишени в течение 3-х кадров, а не 2 или 1? у тебя пока именно так. кривовато.

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

old_dark_elf
15.07.2005, 19:04
хороший, потому что пуля касалась мешени нибольшее кол-во времени :)

у меня раньше, как раз и было с ограниченным кол-вом пуль, но, вопервых, это занимало бьльше места, и, самое главное, нормально это работало (как мне нужно) вот с таким громоздким кодом:lsp=20+ost;
if (heat<100){
if (Key.isToggled(Key.SPACE)) {
if (laskey==1) {
l1._x=kor._x;
l1._y=kor_y;
l1._rotation=kor_rotation;
laskey=2;
heat+=25;
}
if (laskey==3){
l3._x=kor_x;
l3._y=kor_y;
l3._rotation=kor_rotation;
laskey=4;
heat+=25;
}
if (laskey==5){
l5._x=kor_x;
l5._y=kor_y;
l5._rotation=kor_rotation;
laskey=6;
heat+=25;
}
}
if (not (Key.isToggled(Key.SPACE))) {
if (laskey==2){
l2._x=kor_x;
l2._y=kor_y;
l2._rotation=kor_rotation;
laskey=3;
heat+=25;
}
if (laskey==4){
l4._x=kor_x;
l4._y=kor_y;
l4._rotation=kor_rotation;
laskey=5;
heat+=25;
}
if (laskey==6){
l6._x=kor_x;
l6._y=kor_y;
l6._rotation=kor_rotation;
laskey=1;
heat+=25;
}
}
}
heat-=1;

l1._x+=lsp*Math.sin(l1._rotation*(Math.PI/180)); //отсюда и дальше, в
l1._y-=lsp*Math.cos(l1._rotation*(Math.PI/180));//принцепе можно было
l2._x+=lsp*Math.sin(l2._rotation*(Math.PI/180));//сделать и в коде пуль :D
l2._y-=lsp*Math.cos(l2._rotation*(Math.PI/180));
l3._x+=lsp*Math.sin(l3._rotation*(Math.PI/180));
l3._y-=lsp*Math.cos(l3._rotation*(Math.PI/180));
l4._x+=lsp*Math.sin(l4._rotation*(Math.PI/180));
l4._y-=lsp*Math.cos(l4._rotation*(Math.PI/180));
l5._x+=lsp*Math.sin(l5._rotation*(Math.PI/180));
l5._y-=lsp*Math.cos(l5._rotation*(Math.PI/180));
l6._x+=lsp*Math.sin(l6._rotation*(Math.PI/180));
l6._y-=lsp*Math.cos(l6._rotation*(Math.PI/180));

где kor_x , kor_у и kor_rotation координаты начальной точки выстрела
может подскажещь как бы сделать тоже самое но получше :)

old_dark_elf
15.07.2005, 19:05
и все равно какой-то глюк с попадением точно был :) , сейчас не помнб какой :)

Король
15.07.2005, 19:11
не понял, при чем тут _rotation вообще? и что это за l1, l2, l3 итд?

old_dark_elf
15.07.2005, 19:16
Ну вот такой вот код :D полугодней давности, когда я вообще ничего не знал о флеш :)
l1 - l6 названия пуль :)
_rotation - тоже будет нужен, (нафиг мне такая простая игра, где просто нужно вовремя нажать кнопочку?), просто я сейчас разбираюсь в чем проблема с попадание, или как его правельно организовать... есть идеи?

Король
15.07.2005, 19:20
идеи нассчет чего? я тебе уже 10 идей привел.

old_dark_elf
15.07.2005, 19:33
в общем я понял, что лучше, все-таки, делать с ограниченным колвом пуль, тока, как бы это сделать понормальному???
короче буду стараться :)

D12
15.07.2005, 21:51
ну да да .................)))

они тебе понарасказывают ))))

хитести себе наздоровье от это глюка небудет ))) будь хитрее флеша)))

ведь при попадании должно что происходить верно?)))) ну так вот в последнем кадре взрыва или что у тебя там поставь мол прибавить очко ))))
и по три точно прибовлятся небудет )))))

P.s. незабывай ))) они у нас "дураков" учатся а не мы у них ))) ведь верно говорят - " проффесионалы построили титаник , делитант построил ковчег)))))

Король
16.07.2005, 10:48
д12, а вы все продолжаете нести чушь сдобренную километрами смайликов, как я посмотрю

D12
17.07.2005, 02:37
король )

хоть я и "дурак" в вашем понимании но тем немение создаю проффисианально игры вот у же с десяток лет (еще когдато на спектрумах начинал )))))
и мне не у тебя учится )))

еслиб ты хоть немного гибко мыслил было поинтересней твои книжные ответы читать ))) и не надо цитировать очередную книжку по флешу )))


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

отсюдо небольшой вывод , обьект и его взрыв раздельные мувики )))
а если кому и приятно есть мух с котлетами , ну чтож дело гурмана )))

aaanet
17.07.2005, 12:26
д12, вы идиот

насколько я понимаю, идиот это-глупый, неразумный человек, каким уж точно не является D12.

скорее всего ты что-то перепутал :eek:

Король
17.07.2005, 14:19
я ничего не перепутал и имел в виду ровно то, что сказал

О_л_я
17.07.2005, 14:29
d12, а можно посмотреть вашу игру? любую...

D12
17.07.2005, 20:08
Оля о что же мне тебе показать то в размеры вложеных файлов ничего такого и не вопхнеш вот когда сделал за пол часа )))))))


кстати Король , когдато гдето с год назад именно за такую фразу мне бункер влепил два плюса и приписал , - оскорблять пользователей нельзя
если хочеш посоревноватся в создании игр создай топик конкурс , ради тебя я приму в нем участие ))))))))))))))))))))))

P.S. Aaanet как жизнь дружище ))))

Король
17.07.2005, 23:14
"если хочеш посоревноватся в создании игр создай топик конкурс , ради тебя я приму в нем участие"

может лучше помидорами покидаемся? посерьезней соревнование выйдет

D12
18.07.2005, 00:10
раслабся ))) веселей посмотри на этот цирк)))
http://www.woweb.ru/catalog/520/1077311675/img/1.gif

Nirth
18.07.2005, 01:27
так, не вынуждайте меня ставить вам преды за флуд пожалуйста, я очень не хочу этого.
давайте сейчас сделаем умные лица, и промолчим.