|
3D-программирование Вопросы, касающиеся программирования 3D мира |
08.02.2008, 17:03
|
#16
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Ответ: Вопрос про наболевшее - коллизии.
Ну это пули юзера.
А пули ботов ограничены по времени.
(но я думаю перевести это дело на расстояние, не нравится мне эта куйня с временем)
Добавил:
Пересмотрел. Шо это за фигню ты написал? Конечно не проще.
У меня в конце прописано удалять пулю если o\delet=1
Это бывает в 2 случаях: 1. если пуля улетела далеко от юзера. 2 если пуля подлетела близко к боту.
А у тебя получается что пуля должна удаляться только тогда когда подлетит к боту.
Ты мне код не проще сделал, а наоборот усложнил, придётся отдельно дописывать удаление при дистанции от юзера. Тобиш пулю удалять надо в двух разных случаях, а не только когда o\delet равен одному.
Последний раз редактировалось Crystal, 08.02.2008 в 17:13.
|
(Offline)
|
|
08.02.2008, 17:06
|
#17
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Вопрос про наболевшее - коллизии.
впринципе да. exit-ом можно решить. но он вроде выведет тока за один цикл. а надо за оба.
|
(Offline)
|
|
08.02.2008, 17:10
|
#18
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Вопрос про наболевшее - коллизии.
Тогда ставим ещё одно условие, на проверку наличия объектов, если отсутствуют - лепим Exit.
|
(Offline)
|
|
08.02.2008, 17:18
|
#19
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
Ответ: Вопрос про наболевшее - коллизии.
Не нужно сравнивать дистанцию - в этом случае не целесообразно (придется перебирать цикл в цикле, или пули в танках, либо танки в пулях)
Обычная тупая коллизия прекрасно сработает. И можно решить практически любую задачу особо не напрягаясь
На пули нужно делать так:
счетчик времени :
о\тайм=о\тайм+1
ент=ЕнтитуКоллидед(о\ент,тип_бот)
ент2=ЕнтитуКоллидед(о\ент,тип_уровень)
Иф ент ор ент2
о\тайм=401
ендиф
Иф о\тайм=>400
Иф о\тайм=401
БольшойБум(о\ент)
ЕндИф
ФрееЕнтити о\ент
Делете о
ЕндИф
__________________
Последний раз редактировалось tormoz, 08.02.2008 в 17:24.
|
(Offline)
|
|
08.02.2008, 17:23
|
#20
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Вопрос про наболевшее - коллизии.
Тогда ставим ещё одно условие, на проверку наличия объектов, если отсутствуют - лепим Exit.
|
вот. это работать будет.
теперь смотри - мы просто вводим поле обозначающее удаленность объекта, и проводим всякие проверки, потом, в самом конце, если удален стоит метка то удаляем ентити и объект. зато так можно "удалять" пульку в любом месте, ошибки не будт.
|
(Offline)
|
|
08.02.2008, 17:54
|
#21
|
|
Ответ: Вопрос про наболевшее - коллизии.
tormoz
или пули в танках, либо танки в пулях
|
ой что-то меня ето расмешило
HolyDel
упс, не заметил
Blitzerg
чувак, представь что ты строчку o\delet = 1 замениш на удаление пули
кода меньше ! ... в любом случае ты делаешь ДВЕ проверки
и еще одну проверку o\delet = 1 .. в итоге три проверки ...
а так будет две .. где сложности ? не вижу ...
|
|
|
08.02.2008, 18:27
|
#22
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Ответ: Вопрос про наболевшее - коллизии.
А если у меня 20 разных видов ботов, ещё земля, ещё дома, ещё предметы.
Чё мне каждый раз писать:
if событие then
FreeEntity o\pulka
Delete o
end if
????????
Не проще ли мне писать if событие then o\delet=1 ??
Не кажется ли тебе, что я туеву хучу строк экономить буду?
|
(Offline)
|
|
08.02.2008, 18:38
|
#23
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Вопрос про наболевшее - коллизии.
Blitzerg, О! Я кстать недавно об этом задумался, и понял, экономия строк, порой - плохо. Смотри, у тебя будет лишнея переменная, А условие, всёравно выполнится
|
(Offline)
|
|
08.02.2008, 18:47
|
#24
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Вопрос про наболевшее - коллизии.
уууу!!!
if entitydistance(o\pulka,vrag1) then
FreeEntity o\pulka
Delete o
end if
if entitydistance(o\pulka,vrag2) then ;вопрос на засыпку. что будет здесь, если выполнится предыдущие условие?
FreeEntity o\pulka
Delete o
end if
Последний раз редактировалось HolyDel, 08.02.2008 в 19:16.
|
(Offline)
|
|
08.02.2008, 19:07
|
#25
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Ответ: Вопрос про наболевшее - коллизии.
Ошипко!
Пулё не найдено, идите накуй.
Думаю такое будет?
|
(Offline)
|
|
08.02.2008, 19:13
|
#26
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Вопрос про наболевшее - коллизии.
угу. такое и будет. именно поэтому (а не из за экономии строчек, или экономии памяти) надо завести свою перменную с состоянием "удаленности"
при нынешних 2Гб памяти, потратить жалких 4 байта на пулю - ну это совсем ничего.
|
(Offline)
|
|
08.02.2008, 19:14
|
#27
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Ответ: Вопрос про наболевшее - коллизии.
Ну да. Так и есть )
Собсно по этому она там и поставлена.
Про экономию я сморозил.
Просто изложил в теории еслиб предложение джимона работало то это было бы не экономно )
|
(Offline)
|
|
08.02.2008, 19:33
|
#28
|
scientist.alien
Регистрация: 12.02.2007
Сообщений: 2,098
Написано 1,030 полезных сообщений (для 2,593 пользователей)
|
Ответ: Вопрос про наболевшее - коллизии.
перебор в данном случае не рулит. Рулит парабола-триггер как mesh, скалящийся в зависимости от угла выстрела (если уж совсем реализм и пули летают по навесной) или же бокс-цилиндр-извращенно_скаленный_шарик с проверкой на коллизию. Особенно в данном случае рулит сторонний физ. двиг.
по поводу реально летящих в данном случае пуль (особенно медленнолетящих) - мы знаем, что пуля летит всю свою траекторию за 700 с буем мс. А дальше проверяем коллизию триггера, если бот словил ее, то проверка на то, сколько процентов траектории (ее максимальная длина также изначально определена) пульк0 пролетела, и если бот стоит примерно ("допуск" обязателен - мс не будут топать точно по n штук после каждой команды!) на этом промежутке - хит по нему, через обжект ессно, удаляем бота и после ставим флажок удаления пульке.
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab. We LOVE you. We MADE you.
|
(Offline)
|
|
08.02.2008, 20:42
|
#29
|
|
Ответ: Вопрос про наболевшее - коллизии.
HolyDel
мне это сводить к знаниям не_программиста или ты издеваешся ?
есно что если я напишу какой-то бред который даже логически
не пашет то и в компиляторе он не запашет
|
|
|
08.02.2008, 21:19
|
#30
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Ответ: Вопрос про наболевшее - коллизии.
Какой бред?
Твой вариант кода не предпологает, что пулю надо будет удалять
в множестве различных событий.
Так как если пуля будет удалена при определённом событии, и после этого
будет другая проверка пули а пули то уже нет, то будет ошибка кода,
и игра вылетит.
Холи это какрас и продемонстрировал своим вопросом.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Похожие темы
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
коллизии в 2.5D |
cheaters-hater |
2D-программирование |
11 |
07.07.2009 00:33 |
Уже наболевшее.. |
Samarik |
3D-программирование |
41 |
20.07.2008 03:22 |
Вопрос про коллизии |
TG |
3D-программирование |
6 |
09.11.2007 01:39 |
Коллизии |
Stalnoy_Gvozd' |
3D-программирование |
6 |
30.08.2007 15:56 |
Вопрос по коллизии |
Fant |
3D-программирование |
24 |
03.11.2005 10:34 |
Часовой пояс GMT +4, время: 18:59.
|