コード例 #1
0
ファイル: LGradation.cs プロジェクト: keppelcao/LGame
		public void DrawWidth(GLEx g, int x, int y) {
			try {
				if (drawTexWidth == null) {
					LImage img = LImage.CreateImage(width, height, true);
					LGraphics gl = img.GetLGraphics();
					for (int i = 0; i < width; i++) {
						gl.SetColor(
								(start.GetRed() * (width - i)) / width
										+ (end.GetRed() * i) / width,
								(start.GetGreen() * (width - i)) / width
										+ (end.GetGreen() * i) / width,
								(start.GetBlue() * (width - i)) / width
										+ (end.GetBlue() * i) / width, alpha);
						gl.DrawLine(i, 0, i, height);
					}
					drawTexWidth = new LTexture(GLLoader.GetTextureData(img),
							Loon.Core.Graphics.Opengl.LTexture.Format.SPEED);
					gl.Dispose();
					gl = null;
				}
				g.DrawTexture(drawTexWidth, x, y);
			} catch (Exception) {
				for (int i = 0; i < width; i++) {
					g.SetColorValue(
							(start.GetRed() * (width - i)) / width
									+ (end.GetRed() * i) / width,
							(start.GetGreen() * (width - i)) / width
									+ (end.GetGreen() * i) / width,
							(start.GetBlue() * (width - i)) / width
									+ (end.GetBlue() * i) / width, alpha);
					g.DrawLine(i + x, y, i + x, y + height);
				}
			}
		}
コード例 #2
0
ファイル: LGradation.cs プロジェクト: keppelcao/LGame
		public void DrawHeight(GLEx g, int x, int y) {
			try {
				if (drawTexHeight == null) {
					LImage img = LImage.CreateImage(width, height, true);
					LGraphics gl = img.GetLGraphics();
					for (int i = 0; i < height; i++) {
						gl.SetColor(
								(start.GetRed() * (height - i)) / height
										+ (end.GetRed() * i) / height,
								(start.GetGreen() * (height - i)) / height
										+ (end.GetGreen() * i) / height,
								(start.GetBlue() * (height - i)) / height
										+ (end.GetBlue() * i) / height, alpha);
						gl.DrawLine(0, i, width, i);
					}
					drawTexHeight = new LTexture(GLLoader.GetTextureData(img),
							Loon.Core.Graphics.Opengl.LTexture.Format.SPEED);
					gl.Dispose();
					gl = null;
				}
				g.DrawTexture(drawTexHeight, x, y);
			} catch (Exception) {
				for (int i = 0; i < height; i++) {
					g.SetColorValue(
							(start.GetRed() * (height - i)) / height
									+ (end.GetRed() * i) / height,
							(start.GetGreen() * (height - i)) / height
									+ (end.GetGreen() * i) / height,
							(start.GetBlue() * (height - i)) / height
									+ (end.GetBlue() * i) / height, alpha);
					g.DrawLine(x, i + y, x + width, i + y);
				}
			}
		}
コード例 #3
0
ファイル: Cycle.cs プロジェクト: DONGChuan/LGame
		private  void Step(GLEx g, Progress e, int index, int frame,
				LColor color, float alpha) {
			switch (stepType) {
			case 0:
				g.FillOval(X() + e.x - blockHalfWidth, Y() + e.y - blockHalfHeight,
						blockWidth, blockHeight);
				break;
			case 1:
				g.FillRect(X() + e.x - blockHalfWidth, Y() + e.y - blockHalfHeight,
						blockWidth, blockHeight);
				break;
			case 2:
				if (last != null) {
					float[] xs = { X() + last.x, X() + e.x };
					float[] ys = { Y() + last.y, Y() + e.y };
					g.DrawPolygon(xs, ys, 2);
				}
				last = e;
				break;
			case 3:
				if (last != null) {
					g.DrawLine(X() + last.x, Y() + last.y, X() + e.x, Y() + e.y);
				}
				last = e;
				break;
			case 4:
				Step(g, e.x, e.y, e.progress, index, frame, color, alpha);
				break;
			}
		}