Просмотр полной версии : стрелялка-попадалка :)
old_dark_elf
15.07.2005, 15:17
Люди, помогите, плз :)
Как организовать стрельбу и попадание для аркды?
я сделал так:
- сделал цель (бегает вверх-вниз)
- сделал пулю (стреляется attachMovie()'ем из черного кружка при нажатии пробела)
- при попадании пули в цель (при хитТесте), должно увеличиваться колво очков, НО это, почему-то, происходит только в случае попадения первой пулей, остальные не замечаются...
я так понимаю, что это из-за того, что все пули идут под одним и тем же именем...
перенос хитТеста с цели на пули - не подходит (целей, в дальнейшем, может быть и больше и тоже под одним и тем же именем)
что делать??? :confused:
вот пример:
всё нормально замечается и прибавляется, вот только иногда аж по три очка ...
old_dark_elf
15.07.2005, 15:34
это если стрелять одиночными :)
а если ихвыпустить сразу штук нцать попадает только какой-то один, а остальные пролетают мимо...
или это у только у меня такое происходит???
P.s. а то что иногда по 3 очка это норм, этт только пример :)
так они наверное просто не попадают, ты просто поставь его на месте и постреляй по нему и посмотри ...
old_dark_elf
15.07.2005, 17:15
блин, :) ну пусти беспрырывную очередь, и ты увидишь, что даже при попадении, срабатывает только одна пуля из всех :) ...
поставил ;) все так же - первая пуля из очереди сработывает, остальные нет...
во-первых, при событии хиттеста удаляй пулю, с которой столкнулся, а потом уже добавляй очко. от того что у тебя пуля не удаляется - путаница с количеством очков. второе - естественно, мувы с одинаковым названием не отслеживаются как несколько мувов. называй по-разному
old_dark_elf
15.07.2005, 18:05
очки это фигня, на них обращаем внимание в последню очередь :) (это не баг это фича)
<<второе - естественно, мувы с одинаковым названием не отслеживаются как несколько мувов. называй по-разному>>
а как тогда отслеживать хиттест, по какому принципу, если я не знаю названия пули (напомню: мишений может быть и несколько)?
хиттест отслеживать в цикле. выпускай пули на 10 разных depth с 10 разными названиями. это во первых не даст пользователю бездумно лупить бесконечной очередью, потому что он сможет выпустить одновременно только 10 пуль, во-вторых, позвонит тебе отслеживать хиттест. а вообще лучше рассчитай, на какой позиции о _у должна находиться мишень, чтоб пуля, выпущенная в этот момент, в нее попала, и в момент выпуска пули ты уже будешь знать, попадешь или нет. очень удобно и с хиттестом морочиться не надо.
и очки, кстати, не фича а именно баг
old_dark_elf
15.07.2005, 18:26
спасибо, только ты решаешь не ту проблему которую нужно :)
предрасчет, этт гуд, тока мне он не нужен, ну допустим у мешени будет сложная полурандомная траектория :)
может есть возможность сделать что типа:
если с мешенью сталкивается обьект, то проверяется наличия у обьекта свойства "пуля=труъ", то все оки доки :)
<<и очки, кстати, не фича а именно баг>>
не хочу обидеть, но ты то откуда знаешь, что это не фича?
может мне так и нужно, типа хороший выстрел вознаграждается доп очками :)
на очки забили, ок?
нассчет того почему я знаю :
хороший - это тот выстрел, когда пуля касалась мишени в течение 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
и все равно какой-то глюк с попадением точно был :) , сейчас не помнб какой :)
не понял, при чем тут _rotation вообще? и что это за l1, l2, l3 итд?
old_dark_elf
15.07.2005, 19:16
Ну вот такой вот код :D полугодней давности, когда я вообще ничего не знал о флеш :)
l1 - l6 названия пуль :)
_rotation - тоже будет нужен, (нафиг мне такая простая игра, где просто нужно вовремя нажать кнопочку?), просто я сейчас разбираюсь в чем проблема с попадание, или как его правельно организовать... есть идеи?
идеи нассчет чего? я тебе уже 10 идей привел.
old_dark_elf
15.07.2005, 19:33
в общем я понял, что лучше, все-таки, делать с ограниченным колвом пуль, тока, как бы это сделать понормальному???
короче буду стараться :)
ну да да .................)))
они тебе понарасказывают ))))
хитести себе наздоровье от это глюка небудет ))) будь хитрее флеша)))
ведь при попадании должно что происходить верно?)))) ну так вот в последнем кадре взрыва или что у тебя там поставь мол прибавить очко ))))
и по три точно прибовлятся небудет )))))
P.s. незабывай ))) они у нас "дураков" учатся а не мы у них ))) ведь верно говорят - " проффесионалы построили титаник , делитант построил ковчег)))))
д12, а вы все продолжаете нести чушь сдобренную километрами смайликов, как я посмотрю
король )
хоть я и "дурак" в вашем понимании но тем немение создаю проффисианально игры вот у же с десяток лет (еще когдато на спектрумах начинал )))))
и мне не у тебя учится )))
еслиб ты хоть немного гибко мыслил было поинтересней твои книжные ответы читать ))) и не надо цитировать очередную книжку по флешу )))
что тебе мешает мувик взрыв таскать вместе ну допустим с астеройдом ))))
ты конечно скажеш ком мол грузит ))) ну и глупо , главный мувик взрыва который будет следовать вместе с астеройдом (карет для этого нужен , хотя ты и ведь все знаеш , верно ))) будет иметь всего два пустых кадра но со скриптом , в первом кодре стоп , во втором скрип аттача на мувика со взрывом , при попадани астероид анлоадится , либо перходит через рандом в новые начальные координаты , а для главного мувика астеройда некст фрейм ))))))))
если можеш придложить более лутший вариант , давай покажи что на своих ошипках не учишся , или перед другими ты их просто не признаеш ,
обломаю тебя с твоим способом делать забор из мувиков вокруг главной цели , если ты действительно програмить умееш то ты должен знать одну каверзу хит теста , если при разных размеров ( площадь ) обьектов при их соприказании есть огромный процент застревания одного обьета в другом на пересеченнии координат х и у , с этим можно боротся ( хотя ты ведь это знаеш верно ))) полностью избавится от хит теста и вычислять форму математически строя коллизию , этот вариант очень удобен ибо с помощь него получаеш сто процентный результат , недостаток сложный код для новичка . а для контроля попадания вообще глупая затея , с большой потерей времеи .
хотя ты себе можеш это позволить )))))
отсюдо небольшой вывод , обьект и его взрыв раздельные мувики )))
а если кому и приятно есть мух с котлетами , ну чтож дело гурмана )))
д12, вы идиот
насколько я понимаю, идиот это-глупый, неразумный человек, каким уж точно не является D12.
скорее всего ты что-то перепутал :eek:
я ничего не перепутал и имел в виду ровно то, что сказал
d12, а можно посмотреть вашу игру? любую...
Оля о что же мне тебе показать то в размеры вложеных файлов ничего такого и не вопхнеш вот когда сделал за пол часа )))))))
кстати Король , когдато гдето с год назад именно за такую фразу мне бункер влепил два плюса и приписал , - оскорблять пользователей нельзя
если хочеш посоревноватся в создании игр создай топик конкурс , ради тебя я приму в нем участие ))))))))))))))))))))))
P.S. Aaanet как жизнь дружище ))))
"если хочеш посоревноватся в создании игр создай топик конкурс , ради тебя я приму в нем участие"
может лучше помидорами покидаемся? посерьезней соревнование выйдет
раслабся ))) веселей посмотри на этот цирк)))
http://www.woweb.ru/catalog/520/1077311675/img/1.gif
так, не вынуждайте меня ставить вам преды за флуд пожалуйста, я очень не хочу этого.
давайте сейчас сделаем умные лица, и промолчим.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.