Integração Newton e Irrlicht – Básico

Como eu ando vendo isso ultimamente, resolvi meio que traduzir um tutorial, na verdade fiz outro a partir daquele! hehehe

Bom, primeiramente, se não tiver, baixe a Irrlicht e a Newton.

Eu estou usando o Visual C++ 2008 Express Edition, mas nada impede de você utilizar outros compiladores…

Então, inicie um projeto, a primeira coisa a fazer, é adicionar as pastas de include adicionais da Irrlicht e da Newton, e adicionar também as bibliotecas estáticas (.LIB no VC, se for no mingw é .A). Vá em Project -> Project Properties, clique em C/C++ e na opção Additional Include Directories, coloce as pastas de Include da Irrlicht e da Newton, aqui na minha ficou assim: F:\NewtonSDK\sdk;”F:\irrlicht-1.4\include”. Depois em Linker->Input, no Additional Dependencies, coloque as bibliotecas estáticas, no meu: F:\irrlicht-1.4\lib\Win32-visualstudio\Irrlicht.lib F:\NewtonSDK\sdk\dll\Newton.lib.

Pronto, agora crie um arquivo Cpp, e coloque um esqueleto básico, mais ou menos assim:

#include <Irrlicht.h>
#pragma comment(lib, "Irrlicht.lib")

using namespace irr;
using namespace video;
using namespace core;
using namespace scene;

int main()
{

	IrrlichtDevice* device = createDevice(EDT_OPENGL);

	IVideoDriver* driver = device->getVideoDriver();
	ISceneManager* smgr = device->getSceneManager();

	ISceneNode* cube = smgr->addCubeSceneNode();
        cube->setPosition(vector3df(0,0,50));

	ICameraSceneNode* cam = smgr->addCameraSceneNodeFPS();

	while (device->run())
	{
		if (device->isWindowActive())
		{
			driver->beginScene(true, true, SColor(255,255,255,255));

			smgr->drawAll();

			driver->endScene();
		}
	}

	return 0;
}

Este exemplo vai conter uma câmera FPS e um cubo preto. Nada de interessante… hehehe

Agora vamos integrar a newton… Adicione o header da Newton:

#include <newton.h>

Na Newton nós temos o NewtonWorld, que é mais ou menos como o IrrlichtDevice para a Irrlicht. temos que inicializar:

NewtonWorld *nWorld = NewtonCreate(NULL, NULL);

E então no fim, desaloque o ponteiro, assim:

NewtonDestroy(nWorld);

Bom isso parece sem utilidade, sim está sem utilidade, porém se isso funcionou, a newton está pronta para o uso! Já está integrada, agora só falta começar a usar! hehehe

Código completo:

#include <Irrlicht.h>
#include <Newton.h>

#pragma comment(lib, "Irrlicht.lib")

using namespace irr;
using namespace video;
using namespace core;
using namespace scene;

int main()
{

	IrrlichtDevice* device = createDevice(EDT_OPENGL);

	NewtonWorld* nWorld = NewtonCreate(NULL, NULL);

	IVideoDriver* driver = device->getVideoDriver();
	ISceneManager* smgr = device->getSceneManager();

	ISceneNode* cube = smgr->addCubeSceneNode();

	ICameraSceneNode* cam = smgr->addCameraSceneNodeFPS();

	cube->setPosition(vector3df(0,0,50));

	while (device->run())
	{
		if (device->isWindowActive())
		{
			driver->beginScene(true, true, SColor(255,255,255,255));

			smgr->drawAll();

			driver->endScene();
		}
	}

	device->drop();
	NewtonDestroy(nWorld);

	return 0;

} 

Pretendo postar algum tutorial de como fazer alguma coisa útil com ela, claro, quando eu aprender! hehehe

Ahh, o tutorial que eu usei foi este aqui: The Beginning Of The Integration

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: