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

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

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

Ответ
 
Опции темы
Старый 10.10.2011, 23:44   #1
xmarat
Нуждающийся
 
Регистрация: 11.07.2011
Сообщений: 64
Написано 2 полезных сообщений
(для 2 пользователей)
Floating point exception

В общем игра вылетает с сообщением "Floating point exception", я так понимаю у меня получается число, в котором после запятой перебор с количеством цифр. Как можно такое решить? Может есть способ округления до 0.* или проблема в другом?
__________________
OS: Ubuntu Linux 11.04
CPU: Intel® Core™ 2 Quad Q9000 (2.0GHz, 1066MHz, 6Mb)
RAM: DDR2 SODIMM 4096 Мб
Video: NVIDIA® GeForce® GT240M 1024 Мб
(Offline)
 
Ответить с цитированием
Старый 11.10.2011, 00:10   #2
Reks888
Дэвелопер
 
Аватар для Reks888
 
Регистрация: 04.11.2009
Адрес: Украина, Днепропетровск
Сообщений: 1,480
Написано 662 полезных сообщений
(для 1,985 пользователей)
Ответ: Floating point exception

С помощью дебагера найди строку где происходит ошибка, посмотри какие значения имеют переменные в этот момент, вырежи этот кусок кода, сделай автономным и запости сюда
ЗЫ На ноль не делишь, а?
__________________
>type C:\MyProj\*
www.sypiac.weebly.com
>
(Offline)
 
Ответить с цитированием
Старый 11.10.2011, 00:32   #3
xmarat
Нуждающийся
 
Регистрация: 11.07.2011
Сообщений: 64
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Floating point exception

А как поступить если в формуле есть деление и в них иногда случаются ноли?
__________________
OS: Ubuntu Linux 11.04
CPU: Intel® Core™ 2 Quad Q9000 (2.0GHz, 1066MHz, 6Mb)
RAM: DDR2 SODIMM 4096 Мб
Video: NVIDIA® GeForce® GT240M 1024 Мб
(Offline)
 
Ответить с цитированием
Старый 11.10.2011, 00:40   #4
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Floating point exception

Вариантов несколько. Необходима конкретика (что ты моделируешь этой формулой)
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 11.10.2011, 01:02   #5
xmarat
Нуждающийся
 
Регистрация: 11.07.2011
Сообщений: 64
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Floating point exception

0.4 - (1 + ( (y - wy) / ( (y - 128) / 2) ) ) * 0.1
Суть заключается в том что объект движется сверху-вниз, и между объектом и конечной точкой находится тень, формула выше задает прозрачность тени, т.е. в начале пути прозрачность равна 0 и увеличивается пропорционально расстоянию между объектом и конечной точкой до отметки приблизительно равной 0.3 ... В общем по задумке когда wy=-128 то alpha=0, а когда wy=y то alpha = 0.3 ... Формула работает, но иногда игра вылетает...

P.s. y - высота конечной точки, wy - высота объекта, деление на ноль случается когда y=128, не хочется решать вопрос так: If not( y = 128 )...
__________________
OS: Ubuntu Linux 11.04
CPU: Intel® Core™ 2 Quad Q9000 (2.0GHz, 1066MHz, 6Mb)
RAM: DDR2 SODIMM 4096 Мб
Video: NVIDIA® GeForce® GT240M 1024 Мб
(Offline)
 
Ответить с цитированием
Старый 11.10.2011, 02:31   #6
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Floating point exception

y - 128
тут может быть ноль (при y == 12
(Offline)
 
Ответить с цитированием
Старый 11.10.2011, 09:15   #7
Reks888
Дэвелопер
 
Аватар для Reks888
 
Регистрация: 04.11.2009
Адрес: Украина, Днепропетровск
Сообщений: 1,480
Написано 662 полезных сообщений
(для 1,985 пользователей)
Ответ: Floating point exception

Не хочется, а надо:
If y=128 then ten=0 else ten=0.4 - (1 + ( (y - wy) / ( (y - 128) / 2) ) ) * 0.1
__________________
>type C:\MyProj\*
www.sypiac.weebly.com
>
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
xmarat (11.10.2011)
Старый 11.10.2011, 13:34   #8
xmarat
Нуждающийся
 
Регистрация: 11.07.2011
Сообщений: 64
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Floating point exception

Просто я подумал: может есть универсальная формула, при которой не пришлось бы ставить if?
__________________
OS: Ubuntu Linux 11.04
CPU: Intel® Core™ 2 Quad Q9000 (2.0GHz, 1066MHz, 6Mb)
RAM: DDR2 SODIMM 4096 Мб
Video: NVIDIA® GeForce® GT240M 1024 Мб
(Offline)
 
Ответить с цитированием
Старый 11.10.2011, 13:50   #9
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Floating point exception

В общем по задумке когда wy=-128 то alpha=0, а когда wy=y то alpha = 0.3
а когда y=-128?
Описание похоже не на формулу, а на алгоритм с if, детерминирующем приоритет условий
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 11.10.2011, 13:58   #10
xmarat
Нуждающийся
 
Регистрация: 11.07.2011
Сообщений: 64
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Floating point exception

а когда y=-128?
y - всегда больше ноля...
__________________
OS: Ubuntu Linux 11.04
CPU: Intel® Core™ 2 Quad Q9000 (2.0GHz, 1066MHz, 6Mb)
RAM: DDR2 SODIMM 4096 Мб
Video: NVIDIA® GeForce® GT240M 1024 Мб
(Offline)
 
Ответить с цитированием
Старый 11.10.2011, 18:19   #11
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Floating point exception

Один if - это очень мало, не стоит заморачиваться по такому поводу. На самом деле данное условие оптимизирует.
Потому что если значение будет выходит из пределов 0 или 1.0, то вычислять ничего не нужно, это будут лишние математические вычисления, поэтому можно смело использовать условия.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо moka за это полезное сообщение:
Reks888 (11.10.2011), xmarat (11.10.2011)
Старый 11.10.2011, 20:55   #12
xmarat
Нуждающийся
 
Регистрация: 11.07.2011
Сообщений: 64
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Floating point exception

Хорошо. Так и сделаю. Всем спасибо!
__________________
OS: Ubuntu Linux 11.04
CPU: Intel® Core™ 2 Quad Q9000 (2.0GHz, 1066MHz, 6Mb)
RAM: DDR2 SODIMM 4096 Мб
Video: NVIDIA® GeForce® GT240M 1024 Мб
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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