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

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

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

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

Закрытая тема
 
Опции темы
Старый 11.07.2007, 16:43   #31
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: Избежание погрешностей (AI)

Тебе уже подсказали в этой теме, смотри на 1 странице
Округляй.
(Offline)
 
Старый 11.07.2007, 21:38   #32
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
Re: Избежание погрешностей (AI)

видел я эту подсказку...только что именно округлять? Я так понимаю, что нужно округлять позицию ии, но я же не могу переставить просто перетащить объект куда нужно...хорошо. Не могли бы вы это на примере показать? Я же не просто так пишу...у меня трудности.
(Offline)
 
Старый 13.07.2007, 18:12   #33
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
Re: Избежание погрешностей (AI)

Наконец-то я с ноута, а не с телефона! Я только не понял что именно нужно округлять, что бы добиться того, что мне нужно
(Offline)
 
Старый 13.07.2007, 19:39   #34
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: Избежание погрешностей (AI)

Получаешь координату объекта, округляешь и двигаешь в округлённую позицию.
Тока не всегда нада округлять.
(Offline)
 
Старый 14.07.2007, 00:03   #35
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
Re: Избежание погрешностей (AI)

Сообщение от MoKa
Получаешь координату объекта, округляешь и двигаешь в округлённую позицию.
Тока не всегда нада округлять.
Получу я координату черех EntityX, EntityZ
Округлю ее по формул, которую мне тут любезно предоставили...мне не совсем ясно, как двигать этот самый объект к округленной позиции.
(Offline)
 
Старый 14.07.2007, 01:28   #36
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: Избежание погрешностей (AI)

PositionEntity Entity,int(EntityX(Entity)),int(EntityY(Entity)),i nt(EntityZ(Entity))
(Offline)
 
Старый 14.07.2007, 11:48   #37
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
Re: Избежание погрешностей (AI)

Сообщение от MoKa
PositionEntity Entity,int(EntityX(Entity)),int(EntityY(Entity)),i nt(EntityZ(Entity))
Это мне прописывать одним словом вместо всего!? Но ведь это жестко поставит объект куда нужно, а мне необъодимо плавное перемещение от точки а в точку Б а потом, если нужно поставить ИИ в точку с натуральным числом...
(Offline)
 
Старый 15.07.2007, 01:31   #38
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: Избежание погрешностей (AI)

Тока не всегда нада округлять.
А это уже при условии, когда нужно. Извени за грубость: Но тебе нужно больше эксперементов. Больше практики, лучше попробывать самому, чем вешаться на чужую шею. Извени, просто уже вопросы ну просто видно по ним, что ты просто не пробовал. Не бойся попробывать
(Offline)
 
Старый 15.07.2007, 12:09   #39
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
Re: Избежание погрешностей (AI)

Вообщем я себе уже представляю как можно это все организовать, но возникла загвоздка! Как я узнаю (выполню проверку) что имеет место быть погрешность?
Вот тут мне привели пример:
If Int(Position_X)-Position_X<.001 then Position_X=Int(Position_X)
Я не совсем понял, как этим кодом можно проверить, есть ли погрешность? Или я чего-то тут недогоняю
(Offline)
 
Старый 16.07.2007, 13:15   #40
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: Избежание погрешностей (AI)

If Int(Position_X)-Position_X<.001 then Position_X=Int(Position_X)
Уесли разница от целой координаты и не округлённой координаты, меньше .001, то округлять координату.

Мысли лучше всего приходят во время кодинга, когда пробуешь, так и быстрее и лучше всего
(Offline)
 
Старый 16.07.2007, 15:45   #41
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
Re: Избежание погрешностей (AI)

Сообщение от MoKa
Уесли разница от целой координаты и не округлённой координаты, меньше .001, то округлять координату.

Мысли лучше всего приходят во время кодинга, когда пробуешь, так и быстрее и лучше всего
так это и есть проверка! Тогда спрошу, а мне когда это проверять!? У меня есть подозрение, что проверять это нужно по таймеру)! Fant прав?
(Offline)
 
Старый 16.07.2007, 15:48   #42
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: Избежание погрешностей (AI)

Fant неправ
Проверяй это всегда, но шаг поставь может поменьше, например не .001 а .05, ну это от скорости перемещения челов зависит, чтобы шаг нубыл больше чем четверть средней скорости перемещения (эо если сокрость изменяется сглажено), а если не сглажено тогда шаг делай половину макс скорости.
(Offline)
 
Старый 16.07.2007, 22:51   #43
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
Re: Избежание погрешностей (AI)

Сообщение от MoKa
Fant неправ
Проверяй это всегда, но шаг поставь может поменьше, например не .001 а .05, ну это от скорости перемещения челов зависит, чтобы шаг нубыл больше чем четверть средней скорости перемещения (эо если сокрость изменяется сглажено), а если не сглажено тогда шаг делай половину макс скорости.
Что такое шаг?
(Offline)
 
Старый 16.07.2007, 23:24   #44
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
Re: Избежание погрешностей (AI)

Провел опыт:

If KeyDown(31) Then
If Int(EntityZ(en1\obj))-EntityZ(en1\obj)<.001 Then PositionEntity en1\obj,EntityX(en1\obj),5,Int(EntityZ(en1\obj))
End If
MoveEntity en1\obj,0,0,.1

Стабильно убирает сотые части, но так же стабильно держит .1 То есть делает погрешность в одну десятую
(Offline)
 
Старый 17.07.2007, 11:49   #45
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: Избежание погрешностей (AI)

Шаг, это число которое щас .001.
А погрешность т.к. ты двигаешь после стабилизации.
Сделай так:
MoveEntity en1\obj,0,0,.1
If KeyDown(31) Then
If Int(EntityZ(en1\obj))-EntityZ(en1\obj)<.001 Then PositionEntity en1\obj,EntityX(en1\obj),5,Int(EntityZ(en1\obj))
End If
(Offline)
 
Закрытая тема


Опции темы

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

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


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


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