Да товарищ
Khightmare! Ваше высокомерие поражает!!! Не все люди такие суперпупермегакрутые программисты как вы, и по видимому вы этим гордитесь?!
А по делу вот - исправленный код:
#include <windows.h>
#include <cstring>
#include <string>
#include <fstream>
#include <ctime>
#include "blitz3dsdk.h"
#include "Blitzpx.h"
#pragma warning( disable:4244 ) //disable float conversion warnings
#pragma warning( disable:4305 ) //disable double to float truncation warning
#pragma comment(lib, "blitz3dsdk.lib")
#pragma comment(lib, "phisics.lib")
using namespace std;
void* CreateBank(int size)
{
return new BYTE[size];
}
void FreeBank(void * bank)
{
delete bank;
}
void PokeFloat(void * bank, int offset, float value)
{
*(float*)((char*)bank + offset) = value;
}
int GetVertCount(int mesh)
{
int verticesCount = 0;
for(int i = 1; i <= bbCountSurfaces(mesh); i++)
{
int surf = bbGetSurface(mesh, i);
verticesCount += bbCountVertices(surf);
}
return verticesCount;
}
void* GetVertBank(int mesh)
{
void* bank = CreateBank(GetVertCount(mesh) * 12);
int offset = 0;
for(int i = 1; i <= bbCountSurfaces(mesh); i++)
{
int surface = bbGetSurface(mesh, i);
for(int j = 0; j < bbCountVertices(surface)-1; j++)
{
PokeFloat(bank, offset + 0, bbVertexX(surface, j));
PokeFloat(bank, offset + 4, bbVertexY(surface, j));
PokeFloat(bank, offset + 8, bbVertexZ(surface, j));
offset+=12;
}
}
return bank;
}
void GenSB(int &mesh, int &SB)
{
mesh = bbLoadMesh("obj.b3d");
bbFlipMesh(mesh);
int mvn = GetVertCount(mesh);
float* mvbank =(float*)GetVertBank(mesh);
SB=pxBodyCreateHull(mvbank, mvn-1, 1.0f);
bbFlipMesh(mesh);
FreeBank((void*)mvbank);
}
void main(void)
{
bbBeginBlitz3D();
bbGraphics3D(800,600,32,2);
int cam=bbCreateCamera();
bbPositionEntity(cam,0,10,-20);
int plane=bbCreatePlane();
bbEntityColor(plane,64,128,128);
int light=bbCreateLight();
pxCreateWorld(1,"");
pxSetGravity(0,-10,0);
int Obj;
int Body;
GenSB(Obj, Body);
pxBodySetPosition(Body,0,20,0);
while(!bbKeyHit(KEY_ESCAPE))
{
pxRenderPhysic(60,0);
bbPositionEntity(Obj,pxBodyGetPositionX(Body),pxBodyGetPositionY(Body),pxBodyGetPositionZ(Body));
bbRotateEntity(Obj,pxBodyGetRotationPitch(Body),pxBodyGetRotationYaw(Body),pxBodyGetRotationRoll(Body));
bbUpdateWorld();
bbRenderWorld();
bbFlip();
}
bbEndBlitz3D();
}
P.S: конкретный вопрос требует конкретного ответа!