8.4.3 使用补间
现在已经完成了Tween类的创建,接下来就展示该类的一些强大的能力。和前面一样,首先需要创建一个新状态,将其命名为TweenTestState。
这个状态需要将本书前面使用的笑脸纹理添加到项目中,并将其Copy To Output Directory属性设为Copy if newer。在窗体构造函数中,应该将笑脸纹理加载到TextureManager中。
_textureManager.LoadTexture("face", "face_alpha.tif");
在加载了纹理后,可以使用它在TweenTestState类中创建一个精灵。
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
}