8.4.3 使用補間
現(xiàn)在已經(jīng)完成了Tween類的創(chuàng)建,接下來就展示該類的一些強大的能力。和前面一樣,首先需要創(chuàng)建一個新狀態(tài),將其命名為TweenTestState。
這個狀態(tài)需要將本書前面使用的笑臉紋理添加到項目中,并將其Copy To Output Directory屬性設為Copy if newer。在窗體構造函數(shù)中,應該將笑臉紋理加載到TextureManager中。
_textureManager.LoadTexture("face", "face_alpha.tif");
在加載了紋理后,可以使用它在TweenTestState類中創(chuàng)建一個精靈。
class TweenTestState : IGameObject
{
Sprite _faceSprite = new Sprite();
Renderer _renderer = new Renderer();
Tween _tween = new Tween(0, 256, 5);
public TweenTestState(TextureManager textureManager)
{
_faceSprite.Texture = textureManager.Get("face");
}
#region IGameObject Members
public void Process(double elapsedTime)
{
if (_tween.IsFinished() != true)
{
_tween.Process(elapsedTime);
_faceSprite.SetWidth((float)_tween.Value());
_faceSprite.SetHeight((float)_tween.Value());
}
}
public void Render()
{
Gl.glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
Gl.glClear(Gl.GL_COLOR_BUFFER_BIT);
_renderer.DrawSprite(_faceSprite);
_renderer.Render();
}
#endregion
}