Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 27.11.2007, 17:39   #1
AndruXa
Знающий
 
Регистрация: 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
johnk
Легенда
 
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений
(для 568 пользователей)
Re: И опять она, глючная коллизия

Совет: проверяй переменную до проверки объектов на коллизию.
(Offline)
 
Ответить с цитированием
Старый 27.11.2007, 18:18   #3
AndruXa
Знающий
 
Регистрация: 10.09.2007
Сообщений: 262
Написано 6 полезных сообщений
(для 8 пользователей)
Re: И опять она, глючная коллизия

Совет: проверяй переменную до проверки объектов на коллизию.
Ты не понял, у меня ситуация: подхожу я к боту,толкаю его он мне пихает речь, типа привет,ты че талкаешься меня зовут.... если я подхожу к нему 2 раз он мне говорит типа ты еще сдесь...(после первого диалога переменная встает в положение1)
(Offline)
 
Ответить с цитированием
Старый 27.11.2007, 18:23   #4
Diplomat
Дэвелопер
 
Регистрация: 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
AndruXa
Знающий
 
Регистрация: 10.09.2007
Сообщений: 262
Написано 6 полезных сообщений
(для 8 пользователей)
Re: И опять она, глючная коллизия

IF a<>0 THEN b=b+1
Дык, если так сделать то диалоговая надпись будет выскакивать сразу после первого диалога, а мне нужно, чтобы она выскакивала после толчка бота игроком
Хорошо, задам свой вопрос подругому, как зафиксировать коллизию, чтобы например, когда врезаешься в объект 2 раз, чтобы блиц знал, что это уже 2 раз.

У меня а=0 и а=1 как раз и есть эта переменная, после 1 коллизии она стает равной 1, после 2 она стает равной2... Блин, чет я совсем запутался.....
(Offline)
 
Ответить с цитированием
Старый 27.11.2007, 18:32   #6
IGR
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
AndruXa
Знающий
 
Регистрация: 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
dimanche13
Мастер
 
Регистрация: 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
Diplomat
Дэвелопер
 
Регистрация: 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
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Re: И опять она, глючная коллизия

...А это не нарушение синтаксиса блица?
невкоем случае !!
юзай !!
(Offline)
 
Ответить с цитированием
Старый 27.11.2007, 19:03   #11
IGR
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
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: И опять она, глючная коллизия

IGR, ты издеваешся?
Андрюха, кой черт дернул тебя юзать коллизии для ТАКОЙ задачи? проверяй расстояние до объекта. дальше - сам знаеш.
(Offline)
 
Ответить с цитированием
Старый 29.11.2007, 17:28   #13
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Re: И опять она, глючная коллизия

If EntityDistance(юзер,бот)<расстояние Then что то происходит
вот так делать надо.
__________________
Проект "Deathbring World - Rangers" и его финансовая поддержка:
https://boosty.to/deathbringrangers

Я на - TWITCH
Канал на YouTube
(Offline)
 
Ответить с цитированием
Старый 09.12.2007, 03:20   #14
Alex_Noc
Разработчик
 
Регистрация: 02.04.2007
Сообщений: 353
Написано 54 полезных сообщений
(для 289 пользователей)
Re: И опять она, глючная коллизия

думаю case здесь точно поможет , как им пользоваться надеюсь обьяснять не нужно
(Offline)
 
Ответить с цитированием
Старый 09.12.2007, 14:27   #15
AndruXa
Знающий
 
Регистрация: 10.09.2007
Сообщений: 262
Написано 6 полезных сообщений
(для 8 пользователей)
Re: И опять она, глючная коллизия

думаю case здесь точно поможет , как им пользоваться надеюсь обьяснять не нужно
Ну не фига себе вы че мертвых-то будите, я уже давним давно разобрался
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
2D-коллизия impersonalis Библиотеки 3 04.06.2010 11:36
Коллизия в анимации Kyard 3D-программирование 1 27.06.2009 20:18
Пассивная коллизия FrankH 3D-программирование 4 10.12.2008 00:27
Коллизия картинок Petrofan 2D-программирование 4 28.10.2008 22:21
2D-коллизия Matt Merkulov Разработка LIB 7 30.08.2007 14:25


Часовой пояс GMT +4, время: 22:46.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com