程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> Irrlicht引擎使用2之中文顯示

Irrlicht引擎使用2之中文顯示

編輯:關於C語言

筆者環境:編譯環境:VS2008Irrlicht SDK:1.3版本
到這裡下載可以:http://irrlicht.sourceforge.net/downloads.html
FreeType: 2.2.1版
http://sourceforge.net/projects/freetype/files/
代碼如下:
Chinese.cpp:#include <irrlicht.h>
#include "TTFontManager.h"
#include "CGUITTFont.h"

using namespace irr;
using namespace irr::core;
using namespace irr::video;
using namespace irr::scene;
using namespace irr::gui;

#pragma comment( lib, "irrlicht.lib" )
#pragma comment( lib, "freetype221MT.lib" )

int main()
{
  //獲取設備對象,驅動類型dx9
  IrrlichtDevice *device = createDevice(EDT_DIRECT3D9, dimension2d<s32>(640, 480), 16, false, false, false, 0);
  if(!device)
    return 1;

  device->setWindowCaption(L"你好 世界!");//設置窗體標題


  IVideoDriver *driver=device->getVideoDriver();//與紋理有關
  ISceneManager *smgr=device->getSceneManager();//獲取場景管理器對象
  IGUIEnvironment *guienv=device->getGUIEnvironment();//獲取GUI環境對象(和界面相關)
  IGUIStaticText *guitxt=guienv->addStaticText(L"Hello World.",rect<int>(10,10,200,20),true);

  new TTFontManager( driver );
  TTFontManager *ttmgr=TTFontManager::GetSingletonPtr();
  IGUIFont *font=ttmgr->getFont("simsun.ttc",24);

  ISceneNode *cubeNode=smgr->addCubeSceneNode(100.0f);//添加立方體
  ITexture *tex=driver->getTexture("texture.jpg");//獲取貼圖紋理
  cubeNode->setMaterialTexture(0,tex);//為立方體設置貼圖紋理
  cubeNode->setMaterialFlag(EMF_LIGHTING,false);//設置貼圖與光源無關
  //cubeNode->setMaterialType(EMT_TRANSPARENT_ALPHA_CHANNEL);//設置半透明Alpha通道

  ICameraSceneNode *camera=smgr->addCameraSceneNode(0,vector3df(100,100,-100),vector3df(0,0,0));

  //游戲循環Game Loop
  while(device->run())
  {
    driver->beginScene(true,true,SColor(255,200,200,255));//[[Begin

    smgr->drawAll();//全部繪制
    guienv->drawAll();//繪制界面元素
    font->draw(L"這是一段中文,字體為宋體!",rect<int>(0,200,200,30),SColor(255,0,0,0));
    //font->draw(L"中文字體Chinese華文形楷--字體文件3M!", rect<s32>(200,340,800,600),SColor(255,255,255,0) );

    driver->endScene();//End]]
  }

  font->drop();//刪除字體對象
  delete ttmgr;//刪除字體管理器對象

  device->drop();//刪除設備對象
  return 0;
}
其他頭文件見附件。
截圖:

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved