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

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

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

Ответ
 
Опции темы
Старый 04.06.2010, 09:59   #1
Ganociy
Разработчик
 
Аватар для Ganociy
 
Регистрация: 02.06.2009
Адрес: Город Герой Ленинград
Сообщений: 392
Написано 33 полезных сообщений
(для 74 пользователей)
Ещё одна непонятка...

Через типы создаю мины. Делаю проверку на дистанцию между ботом и миной.

For b.Enemy=Each Enemy
For c.Mine=Each Mine

if EntityDistance( b\model, c\model)<=20 then
FreeEntity b\model
FreeEntity c\model
Delete b
Delete c
EndIf

Next
Next

...И когда уже эти два объекта пресеклись то MAV. А при дебаге Object
Does Not Exist и указывает на строку проверки дистанции. Что надо сделать так, что бы эти два объекта удалялись при пересечении...
__________________
Самый первый и самый великий программист - это Бог.
(Offline)
 
Ответить с цитированием
Старый 04.06.2010, 10:05   #2
is.SarCasm
Бывалый
 
Аватар для is.SarCasm
 
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений
(для 428 пользователей)
Ответ: Ещё одна непонятка...

Блин, как то лень сейчас думать, но мне почему то кажеться что за 1
For c.Mine=Each Mine
ты удаляешь или все мины или всех врагов...
(Offline)
 
Ответить с цитированием
Старый 04.06.2010, 10:22   #3
Ganociy
Разработчик
 
Аватар для Ganociy
 
Регистрация: 02.06.2009
Адрес: Город Герой Ленинград
Сообщений: 392
Написано 33 полезных сообщений
(для 74 пользователей)
Ответ: Ещё одна непонятка...

Ты знаешь, Igroian, тут ещё вот какая фигня. Ставлю одну мину, бот натыкается - удаляется вместе с миной. Ставлю возле этой же мины ещё одну мину, MAV... Да, и я заметил (помойму), убрать строки
FreeEntity b\model Delete b , то всё нормально , но только удаляет мину...
__________________
Самый первый и самый великий программист - это Бог.
(Offline)
 
Ответить с цитированием
Старый 04.06.2010, 11:25   #4
is.SarCasm
Бывалый
 
Аватар для is.SarCasm
 
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений
(для 428 пользователей)
Ответ: Ещё одна непонятка...

Блин прийдется подумать!
Так если рассуждать по логической цепочке то:
Допустим бот - 1, Допустим мин - 2

Каждый бот (1)
Каждая мина(2)

Если бла бла бла то
удалить бота
удалить мина


конец
конец
Когда проходить второй повтор
Каждая мина(2)
у нас бота нету, следовательно проверять нечего, объекта нет, MAV

Решение может быть таким хотя бы:

For b.Enemy=Each Enemy
For c.Mine=Each Mine

If b\model<>0 and c\model<>0 then
if EntityDistance( b\model, c\model)<=20 then
FreeEntity b\model
FreeEntity c\model
Delete b
Delete c
EndIf
endif

Next
Next
(Offline)
 
Ответить с цитированием
Старый 04.06.2010, 13:30   #5
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Ещё одна непонятка...

WTF??? чё вы делаете??
For b.Enemy=Each Enemy
For c.Mine=Each Mine

If b\model<>0 and c\model<>0 then 
if EntityDistance( b\model, c\model)<=20 then
FreeEntity b
\model;<---убери это! или сделай
FreeEntity c
\model
Delete b
Delete c
<----тут выход из этого цикла. не помню правда уже как выходить из циклов, но вроде есть такая штука. Exit возможно
EndIf
endif

Next
Next 
ты удаляешь бота при первом же столкновении с миной! и если мины две, то будет MAV. сделай, если бот попадает на мину, то выходить из перебора мин для даного бота! break; или както так
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Dream за это полезное сообщение:
Nex (16.06.2010), SBJoker (04.06.2010)
Старый 04.06.2010, 16:36   #6
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Ответ: Ещё одна непонятка...

For b.Enemy=Each Enemy
For c.Mine=Each Mine

if EntityDistance( b\model, c\model)<=20 then
FreeEntity b\model
FreeEntity c\model
Delete b
Delete c
Exit
EndIf

Next
Next
__________________
(Offline)
 
Ответить с цитированием
Старый 07.06.2010, 19:12   #7
LLI.T.A.L.K.E.R.
Мастер
 
Аватар для LLI.T.A.L.K.E.R.
 
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений
(для 504 пользователей)
Ответ: Ещё одна непонятка...

Exit из какого цикла вынесет?
Из For b.Enemy или For c.Mine или сразу обоих?
А что если, допустим, цикл нужно продолжить для проверки следующих врагов или мин?
(Offline)
 
Ответить с цитированием
Старый 07.06.2010, 19:17   #8
St_AnGer
Элита
 
Аватар для St_AnGer
 
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений
(для 2,828 пользователей)
Ответ: Ещё одна непонятка...

Сообщение от LLI.T.A.L.K.E.R. Посмотреть сообщение
Exit из какого цикла вынесет?
Из For b.Enemy или For c.Mine или сразу обоих?
А что если, допустим, цикл нужно продолжить для проверки следующих врагов или мин?
Из того цикла, который был запущен последним, на сколько я помню.
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.

Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2


Скачать Doom 2D: Remake v0.3.8a
(Offline)
 
Ответить с цитированием
Старый 07.06.2010, 19:20   #9
Hurrit
Мастер
 
Аватар для Hurrit
 
Регистрация: 27.01.2008
Адрес: Россия, СКФО, ЧР, Грозный
Сообщений: 1,144
Написано 578 полезных сообщений
(для 2,207 пользователей)
Ответ: Ещё одна непонятка...

В данном случае, при использовании Exit, закроется цикл For c.mine=each mine
(Offline)
 
Ответить с цитированием
Старый 16.06.2010, 09:01   #10
Ganociy
Разработчик
 
Аватар для Ganociy
 
Регистрация: 02.06.2009
Адрес: Город Герой Ленинград
Сообщений: 392
Написано 33 полезных сообщений
(для 74 пользователей)
Ответ: Ещё одна непонятка...

Вай бlяяяяяяяяяяяяяяяя!!! Как же я забыл про EXIT!!!. НУ спасибо! А я та думаю...
Ну правильно... У меня были экзамены! Только и делал, что сидел и учил. Спасибо.
__________________
Самый первый и самый великий программист - это Бог.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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