UDN_CanvasHUD

HUD

工程项目

Info

classUDNGame extendsUTGame;

 

defaultproperties

{

   bUseClassicHUD=true     //UDK集成ScalForm后要使用Canvas,这个值就是True

   HUDType=class'CanvasHUD.UDNHUD'

}

 

HUD

DrawText::

classUDNHUD extendsHUD;

 

function DrawHUD()

{

   super.DrawHUD();

 

   //描画玩家名称。

   Canvas.DrawText(UTPlayerController(PlayerOwner).PlayerReplicationInfo.PlayerName);

}

 

defaultproperties

{

}

描绘结果:

由结果可以看出Canvas的工作方式。

用了默认的字体,颜色,字体大小,默认的2D屏幕坐标(0,0)位置。

项目扩展DrawText:

比如:理想中的玩家名字是红色,有更漂亮的字体,有字体大小和位置等。。。。。。

只要在DrawText函数前把它们设好就可以了。。。

classUDNHUD extendsHUD;

 

varFont PlayerFont;

 

function DrawHUD()

{

   localVector2D TextSize;

 

   super.DrawHUD();

 

   //描画玩家名称。

    Canvas.Font= PlayerFont;  //字体

   Canvas.SetDrawColorStruct(RedColor);    //颜色

   Canvas.SetPos(SizeX/2,SizeY - 64);   //位置

   Canvas.TextSize(UTPlayerController(PlayerOwner).PlayerReplicationInfo.PlayerName,TextSize.X, TextSize.Y);  //计算字体大小和缩放

   Canvas.DrawText(UTPlayerController(PlayerOwner).PlayerReplicationInfo.PlayerName);

}

 

defaultproperties

{

   PlayerFont=MultiFont'UI_Fonts_Final.menus.Fonts_Positec'

}

描绘结果

描画纹理

自带的2D纹理(粒子发射器图标),32X32大小,有Alpha通道,显于出图中类似于“十”的五个颜色不同的图案。

Icon

描画中间那个图案:

classUDNHUD extendsHUD;

 

varCanvasIconHealthIcon;

 

function DrawHUD()

{

   super.DrawHUD();

 

   Canvas.DrawIcon(HealthIcon,SizeX/2.0, 0.0, 10.0);

}

 

defaultproperties

{       //U和V的起点值按贴图左上角计算

   HealthIcon=(Texture=Texture2D'EditorResources.S_Emitter',U=10,V=10,UL=15,VL=15)

}

改变颜色

classUDNHUD extendsHUD;

 

varTexture2DDefaultTexture;

 

function DrawHUD()

{

   super.DrawHUD();

 

    Canvas.SetPos(SizeX/2-100,SizeY/2-100);   //位置

    Canvas.DrawTileStretched(DefaultTexture,200,200, 0, 0, 32, 32, ColorToLinearColor(GreenColor),false,false, 1.0);

}

 

defaultproperties

{

   DefaultTexture=Texture2D'EditorResources.S_Emitter'

}

多个元素画在同一位置,先画底层最后画上层。

更多参考:

udn.epicgames.com/Three/CanvasTechnicalGuideCH.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值