#include <irrlicht.h>
#include <iostream>
#include <iscenenodeanimatorcamerafps.h>
using namespace irr;
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;
int main(int argc, char** argv)
{
video::E_DRIVER_TYPE driverType = video::EDT_OPENGL;
IrrlichtDevice* device = createDevice(driverType,
core::dimension2d<s32>(640, 480));
device->setWindowCaption(L"Hello World! - Irrlicht Engine Demo");
IVideoDriver* driver = device->getVideoDriver();
ISceneManager* smgr = device->getSceneManager();
IGUIEnvironment* guienv = device->getGUIEnvironment();
guienv->addStaticText(L"Game Demo in Progress.",
rect<int>(10,10,200,22), true);
device->getCursorControl()->setVisible(false);
scene::ITerrainSceneNode* terrain = smgr->addTerrainSceneNode("heightmap.bmp",0, -1, core::vector3df(0.f, 0.f, -500.f),core::vector3df(0.f, 0.f, 0.f),core::vector3df(40.f, 4.4f, 40.f),video::SColor ( 255, 255, 255, 255 ), 5,scene::ETPS_17,4);
terrain->setMaterialFlag(video::EMF_LIGHTING, false);
terrain->setMaterialTexture(0,
driver->getTexture("rockfinal.jpg"));
terrain->scaleTexture(100.0f, 100.0f);
SKeyMap keyMap[8];
keyMap[1].Action = EKA_MOVE_FORWARD; keyMap[1].KeyCode = KEY_KEY_W;
keyMap[2].Action = EKA_JUMP_UP; keyMap[2].KeyCode = KEY_SPACE;
keyMap[3].Action = EKA_MOVE_BACKWARD; keyMap[3].KeyCode = KEY_KEY_S;
keyMap[5].Action = EKA_STRAFE_LEFT; keyMap[5].KeyCode = KEY_KEY_A;
keyMap[7].Action = EKA_STRAFE_RIGHT; keyMap[7].KeyCode = KEY_KEY_D;
//Add and place camera
scene::ICameraSceneNode* camera =
smgr->addCameraSceneNodeFPS(0,100.0f,5.0f,-1, keyMap, 8);
camera->setPosition(core::vector3df(0,1000,0));
camera->setAspectRatio(16.0f/9.0f);
camera->setFarValue(100000.0f);
ILightSceneNode* light = smgr->addLightSceneNode( 0, core::vector3df(0,1000,0), video::SColorf(255.0f,255.0f,255.0f), 1.0f, 1);
while(device->run())
{ driver->beginScene(true, true, SColor(0,200,200,200));
smgr->drawAll();
guienv->drawAll();
driver->endScene();
}
device->drop();
return 0;
}
Friday, February 27, 2009
Tutorial One
Subscribe to:
Posts (Atom)