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

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

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

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

Ответ
 
Опции темы
Старый 23.06.2007, 15:20   #1
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
Проверка на наличие впереди объекта

Сделали за меня в свое время проверку и я, думая что разберусь, пустил это дело на самотек. Теперь пытаюсь исключить объек из коллизии, но, увы, попадалово. Я не знаю как.

Вот функция:
Function fnWhatVperedi(obj,obj_ygol=0)

;îïðåäåëåíèå ÷åðåç îáû÷íûå êîîðäèíàòû ïðîòèâíèêà åãî êîîðäèíàò â ìàññèâå masPrep
			Local obj_x = Int((EntityX (obj)/10))
			Local obj_z = Int ((EntityZ (obj)/10))

			;ñìåùåíèÿ ïî x è z äëÿ ìàññèâà masPrep â çàâèñèìîñòè îò óãëà,
			;êîòîðûé ïîêàçûâàåò êóäà "ñìîòðèò" îáúåêò
			If obj_ygol=0
				dx=0
				dz=-1
			EndIf
			
			If obj_ygol=90
				dx=-1
				dz=0
			EndIf

			If obj_ygol=-90
				dx=1
				dz=0
			EndIf

			If Abs(obj_ygol)=180
				dx=0
				dz=1
			EndIf

			;ïðîâåðêè íóæíû äëÿ òîãî, ÷òîáû èíäåêñ ìàññèâà íå âûøåë çà ãðàíèöû
			If ((obj_x+dx>=0) And (obj_x+dx<31) And (obj_z-dz>=0) And (obj_z-dz<31))
				;â ïåðåìåííóþ vperedi çàíîñèì çíà÷åíèå èç masPrep òîé êëåòêè
				;êîòîðàÿ íàõîäèòñÿ âïåðåäè ïðîòèâíèêà
				Return PlayField(obj_x+dx,obj_z-dz)
			EndIf

End Function
Что бы проверить, если в впереди объект стоило писать:
en1\retval = fnWhatVperedi(en1\obj,Int(EntityYaw (en1\obj)))

только ранее, вместо
Int(EntityYaw (en1\obj)))
можно было писать циферки, соответсвующие массиву
1 - стенка
2 - кубик
3 - игрок
4 - бомба
5 - ИИ
Я проверял, если retval>0 то "занято" ...

Теперь мне нужно исклюсить 5. То есть что бы ии не коллиделись с ИИ но в коде уже разобраться не могу! Помогите пожалуйста, кто сможет понять этот принцип

p.s.
это не работает:
en1\retval = fnWhatVperedi(en1\obj,Int(EntityYaw (en1\obj)) And en1\retval<>5)
(Offline)
 
Ответить с цитированием
Старый 23.06.2007, 16:38   #2
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: Проверка на наличие впереди объекта

ent1\retval=fnWhatVperedi(en1\obj,Int(EntityYaw (en1\obj)))
if ent1\retval=5 then ent1\retval=0
самый простой выход, так еще могеш
ent1\retval=fnWhatVperedi(en1\obj,Int(EntityYaw (en1\obj))) xor 5
(Offline)
 
Ответить с цитированием
Старый 23.06.2007, 16:43   #3
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
Re: Проверка на наличие впереди объекта

Сообщение от HolyDel
ent1\retval=fnWhatVperedi(en1\obj,Int(EntityYaw (en1\obj)))
if ent1\retval=5 then ent1\retval=0
самый простой выход, так еще могеш
ent1\retval=fnWhatVperedi(en1\obj,Int(EntityYaw (en1\obj))) xor 5
не...что-то не сработало! Где-то что-то "проверяется"...

ИИ точно под номером 5 в списке
(Offline)
 
Ответить с цитированием
Старый 24.06.2007, 01:27   #4
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: Проверка на наличие впереди объекта

только ранее, вместо
Int(EntityYaw (en1\obj)))
можно было писать циферки, соответсвующие массиву
1 - стенка
2 - кубик
3 - игрок
4 - бомба
5 - ИИ
как так, в ф-ию же должен угол передаваться? и что она возвращает?
(Offline)
 
Ответить с цитированием
Старый 24.06.2007, 01:48   #5
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
Re: Проверка на наличие впереди объекта

Все! Я разобрался! Спасибо за помощь!
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка на вшивость SBJoker Болтовня 10 01.02.2010 03:59
Проверка на нечётность . Ganociy Delphi 10 02.12.2009 18:37
Двойная проверка MouseHit(1) Hurrit Blitz3D 1 14.05.2009 19:43
Проверка попадания в бота. Maxxx.!!!. 3D-программирование 37 16.12.2007 16:31
Проверка на столкновение ЛысыЙ_Чук-Иванчук 3D-программирование 8 09.05.2006 10:50


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


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