Blitz GameDevСтатьи

Заметки от Джимона

Автор:

Некоторые заметки.

 
Загрузка текстур   

Я заметил глюк в блице: версия 1.87 не хочет грузить текстуры с размером не кратным 2 на видеокартах geforce 6 series В общем, я написал функцию обхода этого:
video_card_type$="Geforce 6 series"

Function load_texture(file$,flags=1,frames=1)
;by jimon
Select video_card_type$
Case "Geforce 6 series"
        img=LoadImage(file$)
        tex=CreateTexture(ImageWidth(img),ImageHeight(img),flags,frames)
        CopyRect 0,0,ImageWidth(img),ImageHeight(img),0,0,ImageBuffer(img),TextureBuffer(tex)
        FreeImage img
        Return tex
Default
        Return LoadTexture(file$,flags)
End Select
End Function 

Потом установил 1.90 но там уже текстуры блиц грузит!!! Решил протестировать на скорость. 1.87 моя функция загрузила текстуру 873*519 за 55 мс , блиц не загрузил но что-то думал 33 мс. 1.90 моя функция также загрузила за 55 мс , а блиц думал целых 907 мс (!!!), но что-то загрузил.

В общем, желательно во всех програмах использовать ету функцию :), чтобы ваши игры нормально шли на новых видеокартах.

ps. у меня XFX 6600 GT и все идет с этим кодом
Как обойти ошибку деления на ноль ?   

a=b/c# 

Обязательно задать c тип float и ошибки не будет. Это происходит из-за неточностей в обработке сверхмалых чисел то, есть когда c#=0, то получается примерно так a=b/0.00000001

Вот так вот.
Ошибка в библиотеке ODE   

Найдена критическая ошибка в функции преобразовании углов поворота в матрицу поворота в arkon ode 0.5 wrapper. Пример ошибки :
space = ODE_dWorldCreate(1)

body = ODE_dBodyCreate()
geom = ODE_dCreateBox(space, 1, 1, 1, 1)
ODE_dGeomSetBody geom, body

ODE_dBodySetRotation(body, 45,155,0)
               
x#=ODE_dBodyGetPitch#(body)
y#=ODE_dBodyGetYaw#(body)
z#=ODE_dBodyGetRoll#(body)

Print "Start angles : 45 , 155 , 0"
Print "Ode angles : "+x+" , "+y+" , "+z
Print "Maybe ode_pitch=cos(start_yaw)*start_pitch" 

Автор: Jimon ()

7 октября 2006