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); } } }
// 绘制 public void Draw(GLEx g) { if (!visible) { return; } alpha = startTime / 255f; g.SetAlpha(alpha); g.DrawTexture(texture, info.offsetX + x, info.offsetY + y, width, height); g.SetAlpha(1f); }
public virtual void CreateUI(GLEx g) { if (visible) { if (alpha > 0 && alpha < 1) { g.SetAlpha(alpha); } g.DrawTexture(image, X(), Y()); if (alpha > 0 && alpha < 1) { g.SetAlpha(1.0f); } } }
public void Draw(GLEx gl) { if (logo == null || finish) { return; } if (!logo.IsLoaded()) { this.logo.LoadTexture(); } if (centerX == 0 || centerY == 0) { this.centerX = (int)(LSystem.screenRect.width) / 2 - logo.GetWidth() / 2; this.centerY = (int)(LSystem.screenRect.height) / 2 - logo.GetHeight() / 2; } if (logo == null || !logo.IsLoaded()) { return; } alpha = (curFrame / curTime); if (inToOut) { curFrame++; if (curFrame == curTime) { alpha = 1f; inToOut = false; } } else if (!inToOut) { curFrame--; if (curFrame == 0) { alpha = 0f; finish = true; } } gl.Reset(true); gl.SetAlpha(alpha); gl.DrawTexture(logo, centerX, centerY); }
public override void CreateUI(GLEx g) { base.CreateUI(g); switch (type) { case 0: if (a1 == null) { a1 = Animation.GetDefaultAnimation("assets/s.png", 3, 48, 48, 100); } animation = a1; break; case 2: if (a2 == null) { a2 = Animation .GetDefaultAnimation("assets/s1.png", 48, 48, 100); } animation = a2; break; default: break; } if (animation == null) { return; } if (type == 0 || type == 2) { LTexture img = animation.GetSpriteImage(); if (img != null) { g.DrawTexture(img, X() + (GetWidth() - img.GetWidth()) / 2, Y() + (GetHeight() - img.GetHeight()) / 2); } } }
public void CreateUI(GLEx g) { if (!visible) { return; } image = animation.GetSpriteImage(); if (image == null) { return; } float width = (image.GetWidth() * scaleX); float height = (image.GetHeight() * scaleY); if (filterColor == null) { if (alpha > 0 && alpha < 1) { g.SetAlpha(alpha); } if (LTrans.TRANS_NONE == transform) { g.DrawTexture(image, X(), Y(), width, height, rotation); } else { g.DrawRegion(image, 0, 0, GetWidth(), GetHeight(), transform, X(), Y(), LGraphics.TOP | LGraphics.LEFT); } if (alpha > 0 && alpha < 1) { g.SetAlpha(1); } return; } else { if (alpha > 0 && alpha < 1) { g.SetAlpha(alpha); } if (LTrans.TRANS_NONE == transform) { g.DrawTexture(image, X(), Y(), width, height, rotation, filterColor); } else { g.DrawRegion(image, 0, 0, GetWidth(), GetHeight(), transform, X(), Y(), LGraphics.TOP | LGraphics.LEFT, filterColor); } if (alpha > 0 && alpha < 1) { g.SetAlpha(1); } return; } }
public override void Draw(GLEx g) { if (!running || !IsOnLoadComplete() || IsClose()) { return; } if (scrCG == null) { return; } if (scrCG.sleep == 0) { scrCG.Paint(g); DrawScreen(g); if (desktop != null) { desktop.CreateUI(g); } if (sprites != null) { sprites.CreateUI(g); } } else { scrCG.sleep--; if (color != null) { float alpha = (float)(scrCG.sleepMax - scrCG.sleep) / scrCG.sleepMax; if (alpha > 0 && alpha < 1.0) { if (scrCG.getBackgroundCG() != null) { g.DrawTexture(scrCG.getBackgroundCG(), 0, 0); } LColor c = g.GetColor(); g.SetColor(color.R, color.G, color.B, (byte)(alpha * 255)); g.FillRect(0, 0, GetWidth(), GetHeight()); g.SetColor(c); } else { LColor c = g.GetColor(); g.SetColor(color); g.FillRect(0, 0, GetWidth(), GetHeight()); g.SetColor(c); } } if (scrCG.sleep <= 0) { scrCG.sleep = 0; color = null; } g.SetAlpha(1.0f); } }
public void Draw(GLEx g, int x, int y, int sx, int sy, LColor[] color) { if (target.IsBatch()) { float nx = sx * tw; float ny = sy * th; target.Draw(x, y, tw, th, nx, ny, nx + tw, ny + th, color); } else { CheckImage(sx, sy); g.DrawTexture(subImages[sx][sy], x, y); } }
protected internal override void CreateCustomUI(GLEx g, int x, int y, int w, int h) { if (visible) { if (animation.GetSpriteImage() != null) { g.DrawTexture(animation.GetSpriteImage(), x, y); } if (x != 0 && y != 0) { g.Translate(x, y); Paint(g); g.Translate(-x, -y); } else { Paint(g); } } }
public void Draw(GLEx g, SpriteBatch batch, float offsetX, float offsetY) { bool useBatch = (batch != null); if (!dirty && lastOffsetX == offsetX && lastOffsetY == offsetY) { imgPack.GLCache(); if (playAnimation) { int[][] maps = field.GetMap(); for (int i = firstTileX; i < lastTileX; i++) { for (int j = firstTileY; j < lastTileY; j++) { if (i > -1 && j > -1 && i < field.width && j < field.height) { int id = maps[j][i]; foreach (Tile tile in arrays) { if (tile.isAnimation && tile.id == id) { if (useBatch) { batch.Draw( tile.animation.GetSpriteImage(), field.TilesToWidthPixels(i) + offsetX, field.TilesToHeightPixels(j) + offsetY, field.GetTileWidth(), field.GetTileHeight()); } else { g.DrawTexture( tile.animation.GetSpriteImage(), field.TilesToWidthPixels(i) + offsetX, field.TilesToHeightPixels(j) + offsetY, field.GetTileWidth(), field.GetTileHeight()); } } } } } } } } else { if (arrays.Count == 0) { throw new Exception("Not to add any tiles !"); } imgPack.GLBegin(); firstTileX = field.PixelsToTilesWidth(-offsetX); firstTileY = field.PixelsToTilesHeight(-offsetY); lastTileX = firstTileX + field.PixelsToTilesWidth(maxWidth) + 1; lastTileX = MathUtils.Min(lastTileX, field.width); lastTileY = firstTileY + field.PixelsToTilesHeight(maxHeight) + 1; lastTileY = MathUtils.Min(lastTileY, field.height); int[][] maps = field.GetMap(); for (int i = firstTileX; i < lastTileX; i++) { for (int j = firstTileY; j < lastTileY; j++) { if (i > -1 && j > -1 && i < field.width && j < field.height) { int id = maps[j][i]; foreach (Tile tile in arrays) { if (playAnimation) { if (tile.id == id) { if (tile.isAnimation) { if (useBatch) { batch.Draw( tile.animation .GetSpriteImage(), field.TilesToWidthPixels(i) + offsetX, field.TilesToHeightPixels(j) + offsetY, field .GetTileWidth(), field.GetTileHeight()); } else { g.DrawTexture( tile.animation .GetSpriteImage(), field.TilesToWidthPixels(i) + offsetX, field.TilesToHeightPixels(j) + offsetY, field .GetTileWidth(), field.GetTileHeight()); } } else { imgPack.Draw(tile.imgId, field.TilesToWidthPixels(i) + offsetX, field.TilesToHeightPixels(j) + offsetY, field.GetTileWidth(), field.GetTileHeight()); } } } else if (tile.id == id) { imgPack.Draw(tile.imgId, field.TilesToWidthPixels(i) + offsetX, field.TilesToHeightPixels(j) + offsetY, field.GetTileWidth(), field.GetTileHeight()); } } } } } imgPack.GLEnd(); lastOffsetX = offsetX; lastOffsetY = offsetY; dirty = false; } if (listener != null) { listener.Draw(g, offsetX, offsetY); } }
internal void draw(GLEx g) { g.DrawTexture(characterCG, moveX, y); }
public void CreateUI(GLEx g) { if (!visible) { return; } if (!complete) { if (alpha > 0 && alpha < 1) { g.SetAlpha(alpha); } g.DrawTexture(texture, X(), Y()); if (alpha > 0 && alpha < 1) { g.SetAlpha(1); } } }
public virtual void PaintObjects(GLEx g, int minX, int minY, int maxX, int maxY) { lock (objects) { IIterator it = objects.Iterator(); for (; it.HasNext(); ) { thing = (Actor)it.Next(); if (!thing.visible) { continue; } isListener = (thing.actorListener != null); if (isVSync) { if (isListener) { thing.actorListener.Update(elapsedTime); } thing.Update(elapsedTime); } RectBox rect = thing.GetRectBox(); actorX = minX + thing.GetX(); actorY = minY + thing.GetY(); actorWidth = rect.width; actorHeight = rect.height; if (actorX + actorWidth < minX || actorX > maxX || actorY + actorHeight < minY || actorY > maxY) { continue; } LTexture actorImage = thing.GetImage(); if (actorImage != null) { width = (actorImage.GetWidth() * thing.scaleX); height = (actorImage.GetHeight() * thing.scaleY); isBitmapFilter = (thing.filterColor != null); thing.SetLastPaintSeqNum(paintSeq++); angle = thing.GetRotation(); colorAlpha = thing.alpha; if (thing.isAnimation) { if (isBitmapFilter) { g.DrawTexture(actorImage, actorX, actorY, width, height, angle, thing.filterColor); } else { if (colorAlpha != 1f) { g.SetAlpha(colorAlpha); } g.DrawTexture(actorImage, actorX, actorY, width, height, angle); if (colorAlpha != 1f) { g.SetAlpha(1f); } } } else { int texId = actorImage.GetTextureID(); LTextureBatch batch = (LTextureBatch)textures .GetValue(texId); if (batch == null) { LTextureBatch pBatch = LTextureBatch .BindBatchCache(this, texId, actorImage); batch = pBatch; batch.GLBegin(); textures.Put(texId, batch); } batch.SetTexture(actorImage); if (isBitmapFilter) { batch.Draw(actorX, actorY, width, height, angle, thing.filterColor); } else { if (colorAlpha != 1f) { alphaColor.a = colorAlpha; } batch.Draw(actorX, actorY, width, height, angle, alphaColor); if (colorAlpha != 1f) { alphaColor.a = 1; } } } } if (thing.isConsumerDrawing) { if (actorX == 0 && actorY == 0) { thing.Draw(g); if (isListener) { thing.actorListener.Draw(g); } } else { g.Translate(actorX, actorY); thing.Draw(g); if (isListener) { thing.actorListener.Draw(g); } g.Translate(-actorX, -actorY); } } } int size = textures.Size(); if (size > 0) { for (int i = 0; i < size; i++) { LTextureBatch batch = (LTextureBatch)textures.Get(i); batch.GLEnd(); } textures.Clear(); } } }
public virtual void CreateUI(GLEx g) { if (isClose) { return; } if (!this.visible) { return; } int width = this.GetWidth(); int height = this.GetHeight(); if (rotation != 0) { float centerX = this.screenX + width / 2; float centerY = this.screenY + height / 2; g.Rotate(centerX, centerY, rotation); } else if (!(scaleX == 1f && scaleY == 1f)) { g.Scale(scaleX, scaleY); } else if (this.elastic) { g.SetClip(this.screenX, this.screenY, width, height); } if (alpha > 0.1d && alpha < 1.0d) { g.SetAlpha(alpha); if (background != null) { g.DrawTexture(background, this.screenX, this.screenY, width, height); } if (this.customRendering) { this.CreateCustomUI(g, this.screenX, this.screenY, width, height); } else { this.CreateUI(g, this.screenX, this.screenY, this, this.imageUI); } g.SetAlpha(1F); } else { if (background != null) { g.DrawTexture(background, this.screenX, this.screenY, width, height); } if (this.customRendering) { this.CreateCustomUI(g, this.screenX, this.screenY, width, height); } else { this.CreateUI(g, this.screenX, this.screenY, this, this.imageUI); } } if (rotation != 0 || !(scaleX == 1f && scaleY == 1f)) { g.Restore(); } else if (this.elastic) { g.ClearClip(); } }
protected internal override void CreateCustomUI(GLEx g, int x, int y, int w, int h) { if (!visible) { return; } LFont oldFont = g.GetFont(); g.SetFont(messageFont); print.Draw(g, fontColor); g.SetFont(oldFont); if (print.IsComplete() && animation != null) { if (animation.GetSpriteImage() != null) { g.SetAlpha(1.0F); UpdateIcon(); g.DrawTexture(animation.GetSpriteImage(), dx, dy); } } g.ResetColor(); }
private void DrawMessage(GLEx gl, LColor old) { if (!visible) { return; } if (strings == null) { return; } lock (showMessages) { this.size = showMessages.Length; this.fontSize = (isEnglish) ? strings.GetSize() / 2 : gl.GetFont() .GetSize(); this.fontHeight = strings.GetHeight(); this.tmp_left = isLeft ? 0 : (width - (fontSize * messageLength)) / 2 - (int)(fontSize * 1.5); this.left = tmp_left; this.index = offset = font = tmp_font = 0; this.fontSizeDouble = fontSize * 2; int hashCode = 1; hashCode = LSystem.Unite(hashCode, size); hashCode = LSystem.Unite(hashCode, left); hashCode = LSystem.Unite(hashCode, fontSize); hashCode = LSystem.Unite(hashCode, fontHeight); if (strings == null) { return; } if (hashCode == lazyHashCade) { strings.PostCharCache(); if (iconX != 0 && iconY != 0) { gl.DrawTexture(creeseIcon, iconX, iconY); } return; } strings.StartChar(); fontColor = old; for (int i = 0; i < size; i++) { text = showMessages[i]; if (text == '\0') { continue; } if (interceptCount < interceptMaxString) { interceptCount++; continue; } else { interceptMaxString = 0; interceptCount = 0; } if (showMessages[i] == 'n' && showMessages[(i > 0) ? i - 1 : 0] == '\\') { index = 0; left = tmp_left; offset++; continue; } else if (text == '\n') { index = 0; left = tmp_left; offset++; continue; } else if (text == '<') { LColor color = GetColor(showMessages[(i < size - 1) ? i + 1 : i]); if (color != null) { interceptMaxString = 1; fontColor = color; } continue; } else if (showMessages[(i > 0) ? i - 1 : i] == '<' && GetColor(text) != null) { continue; } else if (text == '/') { if (showMessages[(i < size - 1) ? i + 1 : i] == '>') { interceptMaxString = 1; fontColor = old; } continue; } else if (index > messageLength) { index = 0; left = tmp_left; offset++; newLine = false; } else if (text == '\\') { continue; } tmp_font = strings.CharWidth(text); if (System.Char.IsLetter(text)) { if (tmp_font < fontSize) { font = fontSize; } else { font = tmp_font; } } else { font = fontSize; } left += font; if (i != size - 1) { strings.AddChar(text, vector.x + left + leftOffset, (offset * fontHeight) + vector.y + fontSizeDouble + topOffset - font - 2, fontColor); } else if (!newLine && !onComplete) { iconX = vector.x + left + leftOffset + iconWidth ; iconY = (offset * fontHeight) + vector.y + fontSize + topOffset + strings.GetAscent(); if (iconX != 0 && iconY != 0) { gl.DrawTexture(creeseIcon, iconX, iconY); } } index++; } strings.StopChar(); strings.SaveCharCache(); lazyHashCade = hashCode; if (messageCount == next) { onComplete = true; } } }
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); } } }
public override void CreateUI(GLEx g, int x, int y, LComponent component, LTexture[] buttonImage) { if (visible) { g.SetAlpha(0.5f); g.DrawTexture(controlBase, x, y, baseWidth, baseHeight); g.DrawTexture(controlDot, x + centerX, y + centerY, dotWidth, dotHeight); g.SetAlpha(1f); } }
public override void CreateUI(GLEx g, int x, int y, LComponent component, LTexture[] buttonImage) { LButton button = (LButton) component; if (buttonImage != null) { if (!button.IsEnabled()) { g.DrawTexture(buttonImage[3], x, y); } else if (button.IsTouchPressed()) { g.DrawTexture(buttonImage[2], x, y); } else if (button.IsTouchOver()) { g.DrawTexture(buttonImage[1], x, y); } else { if (type == 1) { g.DrawTexture(buttonImage[0], x, y, LColor.gray); } else { g.DrawTexture(buttonImage[0], x, y); } } } if (text != null) { LFont old = g.GetFont(); g.SetFont(font); g.SetColor(fontColor); g.DrawString( text, x + button.GetOffsetLeft() + (button.GetWidth() - font.StringWidth(text)) / 2, y + button.GetOffsetTop() + (button.GetHeight() - font.GetLineHeight()) / 2 + font.GetLineHeight()); g.SetFont(old); g.ResetColor(); } }
public void Paint(GLEx g) { if (background != null) { if (shakeNumber > 0) { g.DrawTexture(background, shakeNumber / 2 - LSystem.random.Next(shakeNumber), shakeNumber / 2 - LSystem.random.Next(shakeNumber)); } else { g.DrawTexture(background, 0, 0); } } lock (charas) { for (int i = 0; i < charas.Size(); i++) { AVGChara chara = (AVGChara)charas.Get(i); if (chara == null || !chara.isVisible) { continue; } if (style) { if (chara.flag != -1) { if (chara.flag == ISprite_Constants.TYPE_FADE_IN) { chara.currentFrame--; if (chara.currentFrame == 0) { chara.opacity = 0; chara.flag = -1; chara.Dispose(); charas.Remove(chara); } } else { chara.currentFrame++; if (chara.currentFrame == chara.time) { chara.opacity = 0; chara.flag = -1; } } chara.opacity = (chara.currentFrame / chara.time) * 255; if (chara.opacity > 0) { g.SetAlpha(chara.opacity / 255); } } } if (chara.isAnimation) { AVGAnm animation = chara.anm; if (animation.load) { if (animation.loop && animation.startTime == -1) { animation.Start(0, loop); } Point.Point2i point = animation.GetPos(JavaRuntime .CurrentTimeMillis()); if (animation.alpha != 1f) { g.SetAlpha(animation.alpha); } g.DrawTexture(animation.texture, chara.x, chara.y, animation.width, animation.height, point.x, point.y, point.x + animation.imageWidth, point.y + animation.imageHeight, animation.angle, animation.color); if (animation.alpha != 1f) { g.SetAlpha(1f); } } } else { chara.Next(); chara.draw(g); } if (style) { if (chara.flag != -1 && chara.opacity > 0) { g.SetAlpha(1f); } } } } }
public virtual void CreateUI(GLEx g) { if (isClose) { return; } if (replaceLoading) { if (replaceDstScreen == null || !replaceDstScreen.IsOnLoadComplete()) { Repaint(g); } else if (replaceDstScreen.IsOnLoadComplete()) { if (isScreenFrom) { Repaint(g); if (replaceDstScreen.color != null) { g.SetColor(replaceDstScreen.color); g.FillRect(dstPos.X(), dstPos.Y(), GetWidth(), GetHeight()); g.ResetColor(); } if (replaceDstScreen.currentScreen != null) { g.DrawTexture(replaceDstScreen.currentScreen, dstPos.X(), dstPos.Y(), GetWidth(), GetHeight()); } if (dstPos.X() != 0 || dstPos.Y() != 0) { g.SetClip(dstPos.X(), dstPos.Y(), GetWidth(), GetHeight()); g.Translate(dstPos.X(), dstPos.Y()); } replaceDstScreen.CreateUI(g); if (dstPos.X() != 0 || dstPos.Y() != 0) { g.Translate(-dstPos.X(), -dstPos.Y()); g.ClearClip(); } } else { if (replaceDstScreen.color != null) { g.SetColor(replaceDstScreen.color); g.FillRect(0, 0, GetWidth(), GetHeight()); g.ResetColor(); } if (replaceDstScreen.currentScreen != null) { g.DrawTexture(replaceDstScreen.currentScreen, 0, 0, GetWidth(), GetHeight()); } replaceDstScreen.CreateUI(g); if (color != null) { g.SetColor(color); g.FillRect(dstPos.X(), dstPos.Y(), GetWidth(), GetHeight()); g.ResetColor(); } if (GetBackground() != null) { g.DrawTexture(currentScreen, dstPos.X(), dstPos.Y(), GetWidth(), GetHeight()); } if (dstPos.X() != 0 || dstPos.Y() != 0) { g.SetClip(dstPos.X(), dstPos.Y(), GetWidth(), GetHeight()); g.Translate(dstPos.X(), dstPos.Y()); } Repaint(g); if (dstPos.X() != 0 || dstPos.Y() != 0) { g.Translate(-dstPos.X(), -dstPos.Y()); g.ClearClip(); } } } } else { Repaint(g); } }
protected internal override void CreateCustomUI(GLEx g, int x, int y, int w, int h) { if (!visible) { return; } LColor oldColor = g.GetColor(); LFont oldFont = g.GetFont(); g.SetColor(fontColor); g.SetFont(messageFont); sizeFont = messageFont.GetSize(); doubleSizeFont = sizeFont * 2; if (doubleSizeFont == 0) { doubleSizeFont = 20; } messageLeft = (x + doubleSizeFont + sizeFont / 2) + tmpOffset + left + doubleSizeFont; // g.setAntiAlias(true); if (message != null) { messageTop = y + doubleSizeFont + top + 2; g.DrawString(message, messageLeft, messageTop); } else { messageTop = y + top + 2; } nTop = messageTop; if (selects != null) { nLeft = messageLeft - sizeFont / 4; for (int i = 0; i < selects.Length; i++) { nTop += 30; type = i + 1; isSelect = (type == ((selectFlag > 0) ? selectFlag : 1)); if ((buoyage != null) && isSelect) { g.SetAlpha(autoAlpha); g.DrawTexture(buoyage, nLeft, nTop - (int)(buoyage.GetHeight() / 1.5f)); g.SetAlpha(1.0F); } g.DrawString(selects[i], messageLeft, nTop); if ((cursor != null) && isSelect) { g.DrawTexture(cursor, nLeft, nTop - cursor.GetHeight() / 2, LColor.white); } } } // g.setAntiAlias(false); g.SetColor(oldColor); g.SetFont(oldFont); }