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

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

Вернуться   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<>and c\model<>0 then 
if EntityDistanceb\modelc\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, время: 12:25.


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