|
3D-программирование Вопросы, касающиеся программирования 3D мира |
27.11.2007, 17:39
|
#1
|
Знающий
Регистрация: 10.09.2007
Сообщений: 262
Написано 6 полезных сообщений (для 8 пользователей)
|
И опять она, глючная коллизия
Вобщем такая фигня получается. Есть переменная, допустим а=0
Мне надо, чтобы при коллизии 2 объектов при а=0 выполнялось одно действие, а при а=1 другое.
Пробовал так
If entitycollided (...) and a=0 then b=b-1
If entitycollided (...) and a=1 then c=c-1
Неполучается
И так пробовал
If entitycollided (...) and a=0
b=b-1
elseif a=1
c=c-1
endif
И так не получается
Помогите разобраться плиз!
|
(Offline)
|
|
27.11.2007, 18:11
|
#2
|
Легенда
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений (для 568 пользователей)
|
Re: И опять она, глючная коллизия
Совет: проверяй переменную до проверки объектов на коллизию.
|
(Offline)
|
|
27.11.2007, 18:18
|
#3
|
Знающий
Регистрация: 10.09.2007
Сообщений: 262
Написано 6 полезных сообщений (для 8 пользователей)
|
Re: И опять она, глючная коллизия
Совет: проверяй переменную до проверки объектов на коллизию.
|
Ты не понял, у меня ситуация: подхожу я к боту,толкаю его он мне пихает речь, типа привет,ты че талкаешься меня зовут.... если я подхожу к нему 2 раз он мне говорит типа ты еще сдесь...(после первого диалога переменная встает в положение1)
|
(Offline)
|
|
27.11.2007, 18:23
|
#4
|
Дэвелопер
Регистрация: 07.09.2005
Сообщений: 1,519
Написано 66 полезных сообщений (для 164 пользователей)
|
Re: И опять она, глючная коллизия
Это не коллизия глючная, это логическое мышление сбито вольностями Блицевского синтаксиса, допускающими противоречащие духу Бейсиков кошмары типа "IF a b=b+1" вместо "IF a<>0 THEN b=b+1".
Вопрос: что возвращает твой ЁнтитиКоллидед, и как следует это анализировать?
Ответ: ЁнтитиКоллидед возвращает что характерно либо 0, либо хендл ёнтити, с которым собсно коллидед. Поэтому для определения факта коллизии следует проверять возвращаемое значение на неравенство нулю... а лучше делать то же самое, но с функцией CountCollisions - она работает процентов на 20 быстрее.
P.S. Локальную переменную для хранения возвращаемого значения флага коллизии- завести стоит, если ты проводишь проверки неоднократно.
|
(Offline)
|
|
27.11.2007, 18:29
|
#5
|
Знающий
Регистрация: 10.09.2007
Сообщений: 262
Написано 6 полезных сообщений (для 8 пользователей)
|
Re: И опять она, глючная коллизия
Дык, если так сделать то диалоговая надпись будет выскакивать сразу после первого диалога, а мне нужно, чтобы она выскакивала после толчка бота игроком
Хорошо, задам свой вопрос подругому, как зафиксировать коллизию, чтобы например, когда врезаешься в объект 2 раз, чтобы блиц знал, что это уже 2 раз.
У меня а=0 и а=1 как раз и есть эта переменная, после 1 коллизии она стает равной 1, после 2 она стает равной2... Блин, чет я совсем запутался.....
|
(Offline)
|
|
27.11.2007, 18:32
|
#6
|
Blitz's Shame !!
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений (для 2,013 пользователей)
|
Re: И опять она, глючная коллизия
попробуй так:
If entitycollided (...)
if a=0 then b=b-1
if a=1 then c=c-1
endif
|
(Offline)
|
|
27.11.2007, 18:38
|
#7
|
Знающий
Регистрация: 10.09.2007
Сообщений: 262
Написано 6 полезных сообщений (для 8 пользователей)
|
Re: И опять она, глючная коллизия
If entitycollided (...)
if a=0 then b=b-1
if a=1 then c=c-1
endif
|
...А это не нарушение синтаксиса блица?
|
(Offline)
|
|
27.11.2007, 18:53
|
#8
|
Мастер
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений (для 252 пользователей)
|
Re: И опять она, глючная коллизия
If entitycollided (...) = true
print("столкнулся")
if(first = true)
first = not first
' здесь первый контакт
print("впервые")
else
' здесь все последующие
print("не в первой уже...")
end if
endif
|
(Offline)
|
|
27.11.2007, 18:54
|
#9
|
Дэвелопер
Регистрация: 07.09.2005
Сообщений: 1,519
Написано 66 полезных сообщений (для 164 пользователей)
|
Re: И опять она, глючная коллизия
Дык, если так сделать то диалоговая надпись будет выскакивать сразу после первого диалога,
|
Прочти пост еще раз, а именно наклонный текст, находящийся после подстроки "Ответ". Подразумевалось нечто класса
CollFlag=EntityCollided(...)
If CollFlag<>0 And A=1 Then ...
If CollFlag<>0 And A=0 Then ...
...А это не нарушение синтаксиса блица?
|
Нет, это просто бэссграмотность.
|
(Offline)
|
|
27.11.2007, 18:54
|
#10
|
Blitz's Shame !!
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений (для 2,013 пользователей)
|
Re: И опять она, глючная коллизия
...А это не нарушение синтаксиса блица?
|
невкоем случае !!
юзай !!
|
(Offline)
|
|
27.11.2007, 19:03
|
#11
|
Blitz's Shame !!
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений (для 2,013 пользователей)
|
Re: И опять она, глючная коллизия
Нет, это просто бэссграмотность.
|
а сорри !!
как же я мог допустить такое !!
вот правельный код:
If entitycollided (...) Then
if a=0 then b=b-1
if a=1 then c=c-1
endif
|
(Offline)
|
|
28.11.2007, 01:06
|
#12
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Re: И опять она, глючная коллизия
IGR, ты издеваешся?
Андрюха, кой черт дернул тебя юзать коллизии для ТАКОЙ задачи? проверяй расстояние до объекта. дальше - сам знаеш.
|
(Offline)
|
|
29.11.2007, 17:28
|
#13
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Re: И опять она, глючная коллизия
If EntityDistance(юзер,бот)<расстояние Then что то происходит
вот так делать надо.
|
(Offline)
|
|
09.12.2007, 03:20
|
#14
|
Разработчик
Регистрация: 02.04.2007
Сообщений: 353
Написано 54 полезных сообщений (для 289 пользователей)
|
Re: И опять она, глючная коллизия
думаю case здесь точно поможет , как им пользоваться надеюсь обьяснять не нужно
|
(Offline)
|
|
09.12.2007, 14:27
|
#15
|
Знающий
Регистрация: 10.09.2007
Сообщений: 262
Написано 6 полезных сообщений (для 8 пользователей)
|
Re: И опять она, глючная коллизия
думаю case здесь точно поможет , как им пользоваться надеюсь обьяснять не нужно
|
Ну не фига себе вы че мертвых-то будите, я уже давним давно разобрался
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 05:27.
|