游戏数学(30)

 

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

}

读书导航