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

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

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

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

Ответ
 
Опции темы
Старый 11.03.2010, 16:06   #16
Comment
Оператор ЭВМ
 
Регистрация: 16.09.2009
Сообщений: 23
Написано одно полезное сообщение
Ответ: Проблема с созданием банка

По видимому никто помочь не может...
(Offline)
 
Ответить с цитированием
Старый 11.03.2010, 16:12   #17
Knightmare
Дэвелопер
 
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений
(для 2,920 пользователей)
Ответ: Проблема с созданием банка

Ты не только С++ не знаешь, ты и B3D не знаешь. Зачем помогать человеку, который не может сам найти элементарные ошибки в коде? Все что ты сделал - это тупо скопипастил мой код написанный в браузере.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ABTOMAT (11.03.2010)
Старый 19.03.2010, 22:21   #18
activist
AnyKey`щик
 
Аватар для activist
 
Регистрация: 19.03.2010
Сообщений: 3
Написано 3 полезных сообщений
(для 10 пользователей)
Ответ: Проблема с созданием банка

Да товарищ 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: конкретный вопрос требует конкретного ответа!
(Offline)
 
Ответить с цитированием
Эти 5 пользователя(ей) сказали Спасибо activist за это полезное сообщение:
Arles (19.03.2010), Arton (03.04.2010), h1dd3n (25.03.2010), L.D.M.T. (20.03.2010), St_AnGer (17.02.2014)
Ответ


Опции темы

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

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


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


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