![]() |
И опять она, глючная коллизия
Вобщем такая фигня получается. Есть переменная, допустим а=0
Мне надо, чтобы при коллизии 2 объектов при а=0 выполнялось одно действие, а при а=1 другое.:wallbash: Пробовал так Код:
If entitycollided (...) and a=0 then b=b-1 И так пробовал Код:
If entitycollided (...) and a=0 Помогите разобраться плиз! |
Re: И опять она, глючная коллизия
Совет: проверяй переменную до проверки объектов на коллизию.
|
Re: И опять она, глючная коллизия
Цитата:
|
Re: И опять она, глючная коллизия
Это не коллизия глючная, это логическое мышление сбито вольностями Блицевского синтаксиса, допускающими противоречащие духу Бейсиков кошмары типа "IF a b=b+1" вместо "IF a<>0 THEN b=b+1".
Вопрос: что возвращает твой ЁнтитиКоллидед, и как следует это анализировать? Ответ: ЁнтитиКоллидед возвращает что характерно либо 0, либо хендл ёнтити, с которым собсно коллидед. Поэтому для определения факта коллизии следует проверять возвращаемое значение на неравенство нулю... а лучше делать то же самое, но с функцией CountCollisions - она работает процентов на 20 быстрее. P.S. Локальную переменную для хранения возвращаемого значения флага коллизии- завести стоит, если ты проводишь проверки неоднократно. |
Re: И опять она, глючная коллизия
Цитата:
Хорошо, задам свой вопрос подругому, как зафиксировать коллизию, чтобы например, когда врезаешься в объект 2 раз, чтобы блиц знал, что это уже 2 раз. У меня а=0 и а=1 как раз и есть эта переменная, после 1 коллизии она стает равной 1, после 2 она стает равной2... Блин, чет я совсем запутался..... |
Re: И опять она, глючная коллизия
попробуй так:
If entitycollided (...) if a=0 then b=b-1 if a=1 then c=c-1 endif |
Re: И опять она, глючная коллизия
Цитата:
|
Re: И опять она, глючная коллизия
Код:
If entitycollided (...) = true |
Re: И опять она, глючная коллизия
Цитата:
Код:
CollFlag=EntityCollided(...) Цитата:
|
Re: И опять она, глючная коллизия
Цитата:
юзай !! :) |
Re: И опять она, глючная коллизия
Цитата:
как же я мог допустить такое !! вот правельный код: If entitycollided (...) Then if a=0 then b=b-1 if a=1 then c=c-1 endif |
Re: И опять она, глючная коллизия
IGR, ты издеваешся?
Андрюха, кой черт дернул тебя юзать коллизии для ТАКОЙ задачи? проверяй расстояние до объекта. дальше - сам знаеш. |
Re: И опять она, глючная коллизия
Код:
If EntityDistance(юзер,бот)<расстояние Then что то происходит |
Re: И опять она, глючная коллизия
думаю case здесь точно поможет , как им пользоваться надеюсь обьяснять не нужно
|
Re: И опять она, глючная коллизия
Цитата:
|
Ответ: И опять она, глючная коллизия
Вот меня ета коллизия уже блин достала!!! Все никак немогу понять почему она у меня когда хочет работает, а когда нехочет то нет! Вот например, наскоко я знаю, сначяла нужно создать кучю обьектов, потом присвоить ЕнтитиРадиус или Бокс, далее в самом главном цикле указать Коллизионс Тра-ля-ля,Бла-бла-ла,2,1 и обязательно УпдатеВолд !!! Но почему у меня колизии не работают? Может я чтото не учитываю?
|
Ответ: И опять она, глючная коллизия
Ну вот пример:
Сначала создаёшь в в константах Const TypePlayer=1, TypeWall=2 После создания плеера пиши EntityType player,TypePlayer Потом с каким обьектом нужно сделать колизию пишешь пр.EntityType tarelka,TypeWall .И перед RenderWorld() пиши UpdateWorld (). В цикле пишешь Collisions TypePlayer, TypeWall, 2, 3 Я лично так делаю! |
Ответ: И опять она, глючная коллизия
Цитата:
Цитата:
Цитата:
1 Назначить объект тип коллизии 2 Выставить радиус 3 Назначить коллизии движку type_col=1 type_level=2 radius#=2 EntityType entity,type_col EntityType level,type_level EntityRadius entity,radius Collisions type_col,type_level,2,2 Все это делается ВНЕ ЦИКЛА :stop: |
Ответ: И опять она, глючная коллизия
в цикле только UpdateWorld - непосредственно перед RenderWorld()
//всмысле вручную больше объекты не двигать, после update и перед render. |
Ответ: И опять она, глючная коллизия
Цитата:
НЕЛЬЗЯ писать Collisions в цикле |
Ответ: И опять она, глючная коллизия
Цитата:
И даже совсем неплохо: у меня боты спокойно бегают по 3Д ландшафту и ещё и не трясу-у-утся, хотя игра стабилизирована дельтатаймингом, и пришлось хорошо погеморроиться чтобы исправит все баги. У тебя, я уверен, никакого дельтатайминга и в помине нету (почему-то про него все забывают). В таком случае правильно устроить коллизию - как два пальца об асфальт, стоит только почитать справку Блитза, которая для товарищей, не знакомых с буржуйским языком, есть в русскоязычном исполнении (качать отсюдова, красными буквами написано как открыть архив). Хелп в руки, вперёд и с песней! |
Ответ: И опять она, глючная коллизия
У мну тож бегает герой - но не трясется. Но я дельтайминг не юзал. И вообще юзайте ентитидистансе для проверки столкновений и колизии для примитивной физики(чтобы не было эфекта дифузии)).
да, товарищ, напишите ка в цикле еще создание ботов, заргузку мешей, текстурок и т.д. и отправляйте скомпиленую ехешку в НАСА. Если хорошо потрудится - человечество не будет грязнить космос лет эдак 3-4. МОЖЕТ и больше. Удачи! |
Ответ: И опять она, глючная коллизия
Цитата:
Цитата:
(Гдето я вчера писал тут один пост, Пропал он :dontknow: попробую написать такойже) Вот помогите еще пожалуйста, у меня опять проблемы с колиззией( или с руками:dontknow:? ) !!! Если взять модель какогото чювака, и пришить к нему автомат EntitiParent'ом или любым другим способом, и заставить двигаться вперёд при нажатии клавиши 200 то когда он упирается лбом в стену, автомат ускользает у него из рук! И вобще все дети, какие были пришиты к чюваку, летять, как не в чём не бывало, а как такое можно исправить? |
Ответ: И опять она, глючная коллизия
увеличь радиус коллизии.
|
Ответ: И опять она, глючная коллизия
Кого? Стени? Чювака? Автомата?
|
Ответ: И опять она, глючная коллизия
у автомата тоже есть коллизия?
чувака имеется ввиду. автомату вообще не нужнна коллизия |
Ответ: И опять она, глючная коллизия
У автомата небыло колизии, но била идея ее сделать, когда осуществил, УЖОСС!!! Спасибо!!! Помогло кстати!!! А можно ставить коллизию для камери и партиклов (спрайтов) ??? Ато чето пробовал, невыходит! Даже ставил ентити радиус, и всеравно ничё! Ну, скамерой я решил проблему в такой способ!
Sphere=CreateSphere(2) Cam=CreateCamera(Sphere) EntityAlpha Sphere,0 EntityType Sphere,1 Collisions Bla,bla,bla,bla и так далее, но если каждий спрайт в партиклах пихать в сферу, етож жрет ресурсов УЖОС просто!!!! |
Ответ: И опять она, глючная коллизия
смотря какие у тебя партиклы, ежели синглмешевые, то нельзя ставить партиклам коллизии, если же однач часчика - ето объект (спрайт, меш, камера? или еще что нибудь), тогда можно.
почему не получалось - хз. |
Ответ: И опять она, глючная коллизия
Цитата:
|
Ответ: И опять она, глючная коллизия
зачем пивоты?
камера является таким же объектом. ей также можно назначить коллизию ей также можно задать радиус коллизии. |
Ответ: И опять она, глючная коллизия
Любому объекту Блитца можно назначить сферическую или бокс коллизию
Любому мешу можно назначить полигональную |
Re: И опять она, глючная коллизия
Дабы не создавать новую тему про коллизии, пишу в эту,
Всем доброго времени суток вот моя трабла: коллизия персонажа с ботами происходит если бот неподвижен и непроисходит если бот двигается на персонажа. Вот мой код. Код:
|
Ответ: И опять она, глючная коллизия
Артем Валерьевич, доброго времени суток, не используйте коллизии для проверки на пересечение персонажа с ботом.
используйте EntityDistance для проверки расстояния до бота. если оно меньше определенного - то убивайте плеера. |
Re: И опять она, глючная коллизия
HolyDel vbmenu_register("postmenu_73789", true); понимаеш, хочу чтобы боты обступали игрока и не давали ему пройти, вот
|
Ответ: И опять она, глючная коллизия
понимаю. штатными средставми етого сделать нельзя (по карйней мере по человечески). вообще можно двигать объект, который коллидится, но не с которым коллидятся другие объекты.
как вариант - просто замедляете скорость игрока, в зависимости от расстояния ботов. что то похожее может получится. |
Ответ: И опять она, глючная коллизия
Вложений: 1
Спасибо, а то такбы и бился головой об монитор, супер
:rolleyes: ведь все с етим сталкиваются! |
Часовой пояс GMT +4, время: 06:41. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot