8.4.3 使用補(bǔ)間
現(xiàn)在已經(jīng)完成了Tween類(lèi)的創(chuàng)建,接下來(lái)就展示該類(lèi)的一些強(qiáng)大的能力。和前面一樣,首先需要?jiǎng)?chuàng)建一個(gè)新?tīng)顟B(tài),將其命名為T(mén)weenTestState。
這個(gè)狀態(tài)需要將本書(shū)前面使用的笑臉紋理添加到項(xiàng)目中,并將其Copy To Output Directory屬性設(shè)為Copy if newer。在窗體構(gòu)造函數(shù)中,應(yīng)該將笑臉紋理加載到TextureManager中。
_textureManager.LoadTexture("face", "face_alpha.tif");
在加載了紋理后,可以使用它在TweenTestState類(lèi)中創(chuàng)建一個(gè)精靈。
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
}