|
3D-программирование Вопросы, касающиеся программирования 3D мира |
04.01.2013, 14:23
|
#16
|
Знающий
Регистрация: 06.12.2010
Адрес: Луганск
Сообщений: 252
Написано 112 полезных сообщений (для 166 пользователей)
|
Ответ: Удаление типа и ссылок на него.
Как только корова начинает его есть - его сразу же необходимо удалять из списка, чтоб другая корова не смогла сьесть по сути уже жующийся куст.
|
возможен вариант что несколько коров могут есть один и тот-же куст.
Мож есть какие способы понять удален ли энтитя?
|
Ответ на этот вопрос я тут пока не видел, потому отвечу.
;создаем обьект
cube = CreateCube()
;удаляем
FreeEntity cube
cube = 0
;проверяем существование
if cube <> 0
;обьект существует
end if
P.S. список можно также проверять:
Type Mytype
Field ent
End Type
;создаем обьект
tmp.Mytype = new Mytype
;удаляем
Delete tmp
;проверяем существование
if tmp <> Null
;обьект существует
end if
__________________
AMD Sempron(tm) 1.41Ггц, 1024МБ ОЗУ, GeForce 6200 128МБ, WinXP SP3.
|
(Offline)
|
|
04.01.2013, 17:27
|
#17
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
Ответ: Удаление типа и ссылок на него.
Сообщение от Diablo1909
2tormoz
Предже, чем сьесть куст - его надо еще найти... перебирать всю поляну?
Если куст находится в списке - значит он еще не сьеден. Как только корова начинает его есть - его сразу же необходимо удалять из списка, чтоб другая корова не смогла сьесть по сути уже жующийся куст. ( ну или флаг состояния менять )
2CRASHER
Правильно. Но можно и обойти это ограничение, путем сдвига координат.
|
не надо.
Правильно организованный код:
в апдейте травы только трава, рост и тд. Лучше по таймеру.
в апдейте коров - поиск травы, еда, удаление. Запуск функции удаления ТОЛЬКО по условию (не каждый цикл).
перебирать траву в функции удаления не обязательно, экземпляр типа находить можно обжектхендлом, а вот перебрать коров придется, но тормозов не будет - функция вызывается по событию.
|
(Offline)
|
|
05.01.2013, 02:53
|
#18
|
Разработчик
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений (для 36 пользователей)
|
Ответ: Удаление типа и ссылок на него.
Народ, я решил переделать на хендлы. При попытке коровы назначить ближайщий куст "аппетитным" происходит проверка хендла на Null. Дописал еще возможность 3 коровам одновременно кушать один куст.
RBK, об этом и еж в тумане осведомлен)) А вот трабла то с ссылкой. Прированяй элемент массива из типа "корова" к типу "трава", то есть...
Тип корова
филд вкусные кусты[99]
енд тип
вкусные кусты[i]=трава\Энтити
удали трава\Энтити и проверь трава\Энтити и ссылку на него
имеем
трава\Энтити=0
кусты[i]=432579357
следственно только хендлы или через пивот, что наверно все таки сложнее чем хендл.
|
(Offline)
|
|
05.01.2013, 02:57
|
#19
|
Разработчик
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений (для 36 пользователей)
|
Ответ: Удаление типа и ссылок на него.
Diablo1909, При сдвиге наверно нужно будет переназначать секторам где какая трава была. Тоесть в секторе (0,0) было 3 куста, в секторе (1,1) 2 куста. Смещаем, получается в новом (0,0) нет кустов, в (1,1) 3 куста, в (2,2) 2 куста. так?)
|
(Offline)
|
|
05.01.2013, 03:02
|
#20
|
Разработчик
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений (для 36 пользователей)
|
Ответ: Удаление типа и ссылок на него.
tormoz, а что ты имеешь в виду говоря "Лучше по таймеру" ?
Я сделал на апдейт коров ограничение, если превышен лимит времени, то выполняется Exit из For и записывается последний индекс, с которого в следующем глобальном проходе продолжается цикл. Ты не это хотел сказать?
|
(Offline)
|
|
05.01.2013, 03:37
|
#21
|
Знающий
Регистрация: 06.12.2010
Адрес: Луганск
Сообщений: 252
Написано 112 полезных сообщений (для 166 пользователей)
|
Ответ: Удаление типа и ссылок на него.
Сообщение от CRASHER
RBK, об этом и еж в тумане осведомлен)) А вот трабла то с ссылкой. Прированяй элемент массива из типа "корова" к типу "трава", то есть...
Тип корова
филд вкусные кусты[99]
енд тип
вкусные кусты[i]=трава\Энтити
удали трава\Энтити и проверь трава\Энтити и ссылку на него
имеем
трава\Энтити=0
кусты[i]=432579357
|
Что-то ты не то придумал
Type grass
Field ent ;модель травы
End Type
Type cow
Field eat.grass[99]
End Type
;создаем траву
mygrass.grass=New grass
;создаем корову
my.cow=New cow
;запоминаем траву
my\eat[1]=mygrass
;удаляем траву
Delete mygrass
;здесь my\eat[1] будет равно Nul
If my\eat[1] <> Null
;обьект существует если не удалили
my\eat[1]\ent ;модель травы
End If
спрашивай если что не понятно.
__________________
AMD Sempron(tm) 1.41Ггц, 1024МБ ОЗУ, GeForce 6200 128МБ, WinXP SP3.
|
(Offline)
|
|
05.01.2013, 04:08
|
#22
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
Ответ: Удаление типа и ссылок на него.
Сообщение от CRASHER
tormoz, а что ты имеешь в виду говоря "Лучше по таймеру" ?
Я сделал на апдейт коров ограничение, если превышен лимит времени, то выполняется Exit из For и записывается последний индекс, с которого в следующем глобальном проходе продолжается цикл. Ты не это хотел сказать?
|
Заведи таймер и апдейть траву не каждый проход, а каждые 200-400 мс.
А сектора и прочие извраты тут не нужны- попытайся вкурить что я выше написал
|
(Offline)
|
|
05.01.2013, 04:40
|
#23
|
Разработчик
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений (для 36 пользователей)
|
Ответ: Удаление типа и ссылок на него.
RBK, вопрос звучит как?) "Удаление типа и ссылки на него". В первом посте сказал что делал не через хендлы. Теперь уже переделал на хендлы, и да, проверить их на Null легко. Я думал что ссылку моно тоже как то... того... при ошибке(не выводя саму ошибку). А я элемент как у тебя my\eat[1] приравнивал к самому энтиту. Из за этого и еррор. Спасибо конечно)) За старание!)
|
(Offline)
|
|
05.01.2013, 04:44
|
#24
|
|
Ответ: Удаление типа и ссылок на него.
CRASHER
Все кусты заносятся в сектора на стадии инициализации. И все смещения определяются заранее.
А сектора и прочие извраты тут не нужны- попытайся вкурить что я выше написал
|
Не спорю, в случае с Blitz3D - это будет извратом. =)
|
|
|
05.01.2013, 05:11
|
#25
|
Разработчик
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений (для 36 пользователей)
|
Ответ: Удаление типа и ссылок на него.
Diablo1909, а ты знашыт меня на из врат толкаешь да?)
|
(Offline)
|
|
05.01.2013, 05:19
|
#26
|
|
Ответ: Удаление типа и ссылок на него.
CRASHER
Я тебя толкаю бросить этот недо-язык, и пересесть хотя бы на BlitzMAX. Там такой метод не будет извратом.
|
|
|
05.01.2013, 05:56
|
#27
|
Разработчик
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений (для 36 пользователей)
|
Ответ: Удаление типа и ссылок на него.
Diablo1909, не но ведь B3D для чего то же существует? Ведь есть же разница между ними, и что же в Бмаксе такого особенного чего нет в B3D? Хors с директом в B3D есть и вроде достатошно))
|
(Offline)
|
|
05.01.2013, 17:41
|
#29
|
Разработчик
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений (для 36 пользователей)
|
Ответ: Удаление типа и ссылок на него.
Diablo1909, мне кажется или на БМ мало кто сидит? Я какой пример ни качну с булки, все на B3D)))
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 20:09.
|