HGE教程翻译(4)

 

Tutorial 04 – 渲染纹理

 

首先我们声明渲染对象的句柄和配合使用的精灵。

 

hgeSprite*   tar;
     

   
     
   
HTARGET      target;
     

 

在一些事件期间,如视频模式选择,渲染对象的纹理句柄可能改变。所以我们在获得新的渲染目标的纹理时写GfxRestoreFunc函数。

 

bool GfxRestoreFunc()
     
{
     
  if(tar && target)
     
       tar->SetTexture(hge->Target_GetTexture(target));
     

   
     
   
  return false;
     
}
     

 

RenderFunc中我们首先渲染所有的素材到纹理,在Gfx_BeginScene中详细指定渲染对象。

 

  hge->Gfx_BeginScene(target);
     
  hge->Gfx_Clear(0);
     
  par->Render();
     
  spr->Render(x, y);
     
  hge->Gfx_EndScene();
     

 

接着渲染一些纹理的示例到屏幕。

 

  hge->Gfx_BeginScene();
     
  hge->Gfx_Clear(0);
     

   
     
   
  for(i=0;i<6;i++)
     
  {
     
    tar->SetColor(0xFFFFFF | (((5-i)*40+55)<<24));
     
    tar->RenderEx(i*100.0f, i*50.0f, i*M_PI/8, 1.0f-i*0.1f);
     
  }
     

   
     
   
  fnt->printf(5, 5 ,HGETEXT_LEFT, "dt:%.3f/nFPS:%d",
     
              hge->Timer_GetDelta(), hge->Timer_GetFPS());
     
  hge->Gfx_EndScene();
     

 

WinMain中配置自己的GfxRestoreFunc函数。

 

  hge->System_SetState(HGE_GFXRESTOREFUNC, GfxRestoreFunc);
     

 

HGE初始化后,我们创建渲染对象和一个精灵,用创建的纹理渲染时容易点。

 

    target=hge->Target_Create(512,512,false);
     

   
     
   
    tar=new hgeSprite(
     
           hge->Target_GetTexture(target),0,0,512,512);
     
    tar->SetBlendMode(
     
           BLEND_COLORMUL | BLEND_ALPHAADD | BLEND_NOZWRITE);
     

 

程序关闭时我们删除精灵以及对象。

 

    delete tar;
     
    hge->Target_Free(target);
     

 

结束标识和前面的教程一样。

你可能感兴趣的:(delete,Blend)