public TestSpriteClassSate(TextureManager textureManager) { _textureManager = textureManager; //接手纹理管理器 _testSprite.Texture = _textureManager.Get("Font"); //设定精灵的纹理 _testSprite.SetHeight(256 * 0.5f); //不知什么原因,不能从纹理处获取图片的高度 //而宽度在帮顶纹理时就能够获得 _testSprite2.Texture = _textureManager.Get("charactor1"); // _testSprite2.SetPosition(0, 100); _testSprite2.SetColor(new Color(1, 1, 1, 0.9f));// Alpha值会影响图片整个的透明度,非常实用,可以实现图像渐变的效果 _testSprite2.SetHeight(128); _testSprite3.Texture = _textureManager.Get("Font"); int g = _testSprite3.Texture.ID; _testSprite3.SetColor(new Color(1, 1, 1, 0.7f));// Alpha值会影响图片整个的透明度,非常实用,可以实现图像渐变的效果 _testSprite3.SetHeight(128); _testSprite4.Texture = _textureManager.Get("mbit1"); _testSprite4.SetColor(new Color(1, 1, 1, 0.5f));// Alpha值会影响图片整个的透明度,非常实用,可以实现图像渐变的效果 _testSprite4.SetHeight(128); _testSprite5.Texture = _textureManager.Get("mbit1"); _testSprite5.SetColor(new Color(1, 1, 1, 0.3f));// Alpha值会影响图片整个的透明度,非常实用,可以实现图像渐变的效果 _testSprite5.SetHeight(128); }
public ReiMu(TextureManager texturemanager) { this.texturemanager = texturemanager; name = "ReiMu"; Texture texture = texturemanager.Get("Player2"); sprite = new Sprite(); sprite.Texture = texture; sprite.SetWidth(32); sprite.SetHeight(48); sprite.SetColor(new Color(1, 1, 1, 0.2f)); multiSprite = new MultiSprite(sprite); RecTangleF[] rects = new RecTangleF[4]; for (int i = 0; i < 4; i++) { rects[i] = new RecTangleF(0 + i * 4 * per_256, 0, 4 * per_256 + i * 4 * per_256, 6 * per_256); } multiSprite.RegeditState(0, rects); //将此rectangleF注册到0号state rects = new RecTangleF[3]; for (int i = 0; i < 3; i++) { rects[i] = new RecTangleF(i * 4 * per_256, 6 * per_256, 4 * per_256 + i * 4 * per_256, 12 * per_256); } multiSprite.RegeditState(1, rects); //将此rectangleF注册到1号state (过渡移动) rects = new RecTangleF[4]; for (int i = 0; i < 4; i++) { rects[i] = new RecTangleF(12 * per_256 + i * 4 * per_256, 6 * per_256, 12 * per_256 + 4 * per_256 + i * 4 * per_256, 12 * per_256); } multiSprite.RegeditState(2, rects); //将此rectangleF注册到2号state (移动) rects = new RecTangleF[3]; for (int i = 0; i < 3; i++) { rects[i] = new RecTangleF(4 * per_256 + i * 4 * per_256, 6 * per_256, i * 4 * per_256, 12 * per_256); } multiSprite.RegeditState(3, rects); //将此rectangleF注册到3号state (过渡移动,右) rects = new RecTangleF[4]; for (int i = 0; i < 4; i++) { rects[i] = new RecTangleF(12 * per_256 + 4 * per_256 + i * 4 * per_256, 6 * per_256, 12 * per_256 + i * 4 * per_256, 12 * per_256); } multiSprite.RegeditState(4, rects); //将此rectangleF注册到4号state (移动) multiSprite.RegeditCollection(1, 2); //将1号动画连接到2号动画上 multiSprite.RegeditCollection(3, 4); //将3号动画连接到4号动画上 multiSprite.State = 0; //将状态切换为3号state InitComponents(); }
public Wriggle(TextureManager texturemanager) { name = "Wriggle"; Texture texture = texturemanager.Get("Wriggle"); sprite = new Sprite(); sprite.Texture = texture; sprite.SetWidth(32); sprite.SetHeight(42); sprite.SetColor(new Color(1, 1, 1, 0.2f)); multiSprite = new MultiSprite(sprite); float offset = 0.01f; RecTangleF[] rects = new RecTangleF[4]; for (int i = 0; i < 4; i++) { rects[i] = new RecTangleF(i * 8 * per_256, per_256, (i + 1) * 8 * per_256 - offset, 13 * per_256); } multiSprite.RegeditState(0, rects); //将此rectangleF注册到0号state rects = new RecTangleF[4]; for (int i = 0; i < 4; i++) { rects[i] = new RecTangleF(i * 8 * per_256, per_256, (i + 1) * 8 * per_256 - offset, 13 * per_256); } multiSprite.RegeditState(1, rects); //将此rectangleF注册到1号state (过渡移动) rects = new RecTangleF[4]; for (int i = 0; i < 4; i++) { rects[i] = new RecTangleF(i * 8 * per_256, per_256, (i + 1) * 8 * per_256 - offset, 13 * per_256); } multiSprite.RegeditState(2, rects); //将此rectangleF注册到2号state (移动) rects = new RecTangleF[4]; for (int i = 0; i < 4; i++) { rects[i] = new RecTangleF(i * 8 * per_256, per_256, (i + 1) * 8 * per_256 - offset, 13 * per_256); } multiSprite.RegeditState(3, rects); //将此rectangleF注册到3号state (过渡移动,右) rects = new RecTangleF[4]; for (int i = 0; i < 4; i++) { rects[i] = new RecTangleF(i * 8 * per_256, per_256, (i + 1) * 8 * per_256 - offset, 13 * per_256); } multiSprite.RegeditState(4, rects); //将此rectangleF注册到4号state (移动) multiSprite.RegeditCollection(1, 2); //将1号动画连接到2号动画上 multiSprite.RegeditCollection(3, 4); //将3号动画连接到4号动画上 multiSprite.State = 0; //将状态切换为3号state InitComponents(); }
// 坐标,文字,宽度, 透明值,间距,行数,每行长度 //从右到左(例如“ 1”,“ 11”,“ 111”,“ 1111”,“11111” ) public void DrawText2D2(Point position, string text, int width = 14, float Alpha = 1, int dw = 9, int rows = 1, int length = 20) { int len = text.Length; Sprite spr; for (int i = 0; i < len; i++) { spr = _textFont.GetAci(text.Substring(i, 1)); spr.SetWidth(width); spr.SetHeight(width); spr.SetPosition(new Vector(position.X - width / 2 - (len-1-i)* dw, position.Y - width / 2, 0)); spr.SetColor(new Color(1, 1, 1, Alpha)); _renderer.DrawSprite(spr); } }
public override void Render() { if (!disposing) { bulletbody.sprite.SetPosition(Position.X, Position.Y); Stage1State._renderer.DrawSprite(bulletbody.sprite, (float)Position.X, (float)Position.Y, 90); } else { RedEsc.SetPosition(Position.X, Position.Y); RedEsc.SetColor(new Color(1, 1, 1, _alpha * 0.5f)); Stage1State._renderer.DrawSprite(RedEsc, (float)Position.X, (float)Position.Y, angle + 90); } }
//从右到左(例如“ 1”,“ 11”,“ 111”,“ 1111”,“11111” ) public void DrawText2D2(Point position, string text, int width = 14, float Alpha = 1, int dw = 9, int rows = 1, int length = 20) // 坐标,文字,宽度, 透明值,间距,行数,每行长度 { int len = text.Length; Sprite spr; for (int i = 0; i < len; i++) { spr = _textFont.GetAci(text.Substring(i, 1)); spr.SetWidth(width); spr.SetHeight(width); spr.SetPosition(new Vector(position.X - width / 2 - (len - 1 - i) * dw, position.Y - width / 2, 0)); spr.SetColor(new Color(1, 1, 1, Alpha)); _renderer.DrawSprite(spr); } }
/// <summary> /// 提供一个分数参数,将其画下来 /// </summary> /// <param name="isc">Score参数</param> /// <param name="distance">数字间的距离</param> public void DrawNumber(Renderer _renderer, IScore isc, float distance) { float alpha = isc.alpha; Vector2D vct = new Vector2D(isc.Position.X, isc.Position.Y); string num = isc.Score.ToString(); char[] arr = num.ToArray <char>(); int length = arr.Length; int len2 = length / 2; for (int i = 0; i < length; i++) { Sprite sp = score_number.GetNumber(arr[i].ToString()); sp.SetPosition(vct.X + (i - len2) * distance, vct.Y); //数字居中显示 sp.SetColor(new Color(1, 1, 1, alpha * 0.5f)); _renderer.DrawSprite(sp); } }
public override void Render() { if (working) { float ag = Direction.getcurve(); bulletbody.sprite.SetPosition(Position.X, Position.Y); bulletbody.sprite.SetColor(new Color(1, 1, 1, 0.3f)); Stage1State._renderer.DrawSprite(bulletbody.sprite, (float)Position.X, (float)Position.Y, ag + 90); } else if (disposing) { BlueEsc.SetWidth(32 * (1 * (1 - _alpha) + 1)); BlueEsc.SetHeight(32 * (1 * (1 - _alpha) + 1)); BlueEsc.SetColor(new Color(1, 1, 1, _alpha * 0.6f)); BlueEsc.SetPosition(Position.X, Position.Y); Stage1State._renderer.DrawSprite(BlueEsc, (float)Position.X, (float)Position.Y, angle + 90); } }
public Wriggle(TextureManager texturemanager) { name = "Wriggle"; Texture texture = texturemanager.Get("Wriggle"); sprite = new Sprite(); sprite.Texture = texture; sprite.SetWidth(32); sprite.SetHeight(42); sprite.SetColor(new Color(1, 1, 1, 0.2f)); multiSprite = new MultiSprite(sprite); float offset = 0.01f; RecTangleF[] rects = new RecTangleF[4]; for (int i = 0; i < 4; i++) rects[i] = new RecTangleF(i * 8 * per_256, per_256, (i + 1) * 8 * per_256 - offset, 13 * per_256); multiSprite.RegeditState(0, rects); //将此rectangleF注册到0号state rects = new RecTangleF[4]; for (int i = 0; i < 4; i++) rects[i] = new RecTangleF(i * 8 * per_256, per_256, (i + 1) * 8 * per_256 - offset, 13 * per_256); multiSprite.RegeditState(1, rects); //将此rectangleF注册到1号state (过渡移动) rects = new RecTangleF[4]; for (int i = 0; i < 4; i++) rects[i] = new RecTangleF(i * 8 * per_256, per_256, (i + 1) * 8 * per_256 - offset, 13 * per_256); multiSprite.RegeditState(2, rects); //将此rectangleF注册到2号state (移动) rects = new RecTangleF[4]; for (int i = 0; i < 4; i++) rects[i] = new RecTangleF(i * 8 * per_256, per_256, (i + 1) * 8 * per_256 - offset, 13 * per_256); multiSprite.RegeditState(3, rects); //将此rectangleF注册到3号state (过渡移动,右) rects = new RecTangleF[4]; for (int i = 0; i < 4; i++) rects[i] = new RecTangleF(i * 8 * per_256, per_256, (i + 1) * 8 * per_256 - offset, 13 * per_256); multiSprite.RegeditState(4, rects); //将此rectangleF注册到4号state (移动) multiSprite.RegeditCollection(1, 2); //将1号动画连接到2号动画上 multiSprite.RegeditCollection(3, 4); //将3号动画连接到4号动画上 multiSprite.State = 0; //将状态切换为3号state InitComponents(); }
public ReiMu(TextureManager texturemanager) { this.texturemanager = texturemanager; name = "ReiMu"; Texture texture = texturemanager.Get("Player2"); sprite = new Sprite(); sprite.Texture = texture; sprite.SetWidth(32); sprite.SetHeight(48); sprite.SetColor(new Color(1, 1, 1, 0.2f)); multiSprite = new MultiSprite(sprite); RecTangleF[] rects = new RecTangleF[4]; for (int i = 0; i < 4; i++) rects[i] = new RecTangleF(0 + i * 4 * per_256, 0, 4 * per_256 + i * 4 * per_256, 6 * per_256); multiSprite.RegeditState(0, rects); //将此rectangleF注册到0号state rects = new RecTangleF[3]; for (int i = 0; i < 3; i++) rects[i] = new RecTangleF(i * 4 * per_256, 6 * per_256, 4 * per_256 + i * 4 * per_256, 12 * per_256); multiSprite.RegeditState(1, rects); //将此rectangleF注册到1号state (过渡移动) rects = new RecTangleF[4]; for (int i = 0; i < 4; i++) rects[i] = new RecTangleF(12 * per_256 + i * 4 * per_256, 6 * per_256, 12 * per_256 + 4 * per_256 + i * 4 * per_256, 12 * per_256); multiSprite.RegeditState(2, rects); //将此rectangleF注册到2号state (移动) rects = new RecTangleF[3]; for (int i = 0; i < 3; i++) rects[i] = new RecTangleF(4 * per_256 + i * 4 * per_256, 6 * per_256, i * 4 * per_256, 12 * per_256); multiSprite.RegeditState(3, rects); //将此rectangleF注册到3号state (过渡移动,右) rects = new RecTangleF[4]; for (int i = 0; i < 4; i++) rects[i] = new RecTangleF(12 * per_256 + 4 * per_256 + i * 4 * per_256, 6 * per_256, 12 * per_256 + i * 4 * per_256, 12 * per_256); multiSprite.RegeditState(4, rects); //将此rectangleF注册到4号state (移动) multiSprite.RegeditCollection(1, 2); //将1号动画连接到2号动画上 multiSprite.RegeditCollection(3, 4); //将3号动画连接到4号动画上 multiSprite.State = 0; //将状态切换为3号state InitComponents(); }