HGE教程翻译(4)

    技术2022-05-19  22

    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);

     

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


    最新回复(0)