写文字

-------西昌.何雨锋 写文字

在3维场景中写文字:

1、只能写英文,但是可以指定英文大小、字体:
//定义:
ITVScreen2DText str2d1;
str2d1=CreateTVScreen2DText();
str2d1->TextureFont_Create("font1","宋体",16,tvfalse,tvfalse,tvfalse,tvtrue);
//循环中:
str2d1->ACTION_BeginText();
str2d1->TextureFont_DrawText("warning!the nuke weapon ready to fire!",170,170,global1->RGBA(255,255,255,1),"font1");
str2d1->ACTION_EndText();
//记得释放资源:
str2d1->Release();
str2d1=NULL;

2、可以显示中文,但不能指定字体、大小:
只用在循环中有:
  scene1->DrawText("实验制作",100,100,global1->RGBA(1,0,0,1));
-------------------------------------------------
在3维场景中显示一个始终朝向观看者的2维画面(而且该剪贴版可以被其他物体遮住):记得CS中的蹲坑者头上的画面吗?
//首先建立出一个mesh
ITVMesh frame1;
//然后再用场景1读取一个common.shader(做什么用哦?)
scene1->LoadShaders("common.shader");

//用场景1来建立一个剪贴板,并将其赋予给已有的mesh,但是里面那几个枚举常量居然不能用数字代替,也不能用D3D中已定义的常量,而只能将这常量强制转化成TV中的同义常量,让我晕死吧!createbillboard第一个变量是一个从global中得到的已有的图画,
frame1=scene1->CreateBillboard(global1->GetTex("wall1"),50,50,50,200,200,"coco",tvfalse,(enum TrueVision3D::CONST_D3DBLEND)D3DBLEND_ZERO,(enum TrueVision3D::CONST_D3DBLEND)D3DBLEND_ZERO,global1->RGBA(255,255,255,1),tvfalse);
//由于frame1本身是个mesh,那么在循环部分可以由scene1.renderallmesh就可以了,不用单独给出循环语句,最后在释放部分记得释放资源用frame1->destroy,而不是release,当然也可由scene统一释放。

3、写字体大小可以自定的中文方法:
ITVScreen2DText str2d1;
str2d1=CreateTVScreen2DText();
str2d1->NormalFont_Create("font1","宋体",16,tvfalse,tvfalse,tvfalse,tvtrue);
//循环中:
str2d1->ACTION_BeginText();
str2d1->NormalFont_DrawText("warning!the nuke weapon ready to fire!",170,170,global1->RGBA(255,255,255,1),"font1");
str2d1->ACTION_EndText();
//记得释放资源:
str2d1->Release();
str2d1=NULL;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值