예제 #1
0
 public LTextureRegion(LTexture texture) {
   if (texture == null) {
     throw new IllegalArgumentException("texture cannot be null.");
   }
   this.texture = texture;
   setRegion(0, 0, texture.width(), texture.height());
 }
예제 #2
0
 public SpriteButton(
     LTexture texture,
     float scale,
     int width,
     int height,
     String clickse,
     Sound sound,
     String storage,
     String target,
     boolean countpage,
     String exp,
     ButtonFunc func,
     int size) {
   this.image = texture;
   this.scale = scale;
   this.sound = sound;
   if (image == null) {
     rectSrc = new RectBox(0, 0, width, height);
   } else {
     rectSrc = new RectBox(0, 0, image.getWidth() / size, image.getHeight());
   }
   this.width = width;
   this.height = height;
   this.setPos(0, 0);
   this.clickse = clickse;
   this.storage = storage;
   this.target = target;
   this.countpage = countpage;
   this.exp = exp;
   this.func = func;
 }
예제 #3
0
 public Picture(LTexture image, int x, int y) {
   if (image != null) {
     this.setImage(image);
     this.width = (int) image.width();
     this.height = (int) image.height();
   }
   this.setLocation(x, y);
   this.visible = true;
 }
예제 #4
0
 public SpriteBatchSheet(LTexture image, int hFrames, int vFrames, float r) {
   this.hFrames = hFrames;
   this.vFrames = vFrames;
   this.image = image;
   this.rate = r;
   this.spriteWidth = imgWidth = image.getWidth() / this.hFrames;
   this.spriteHeight = imgHeight = image.getHeight() / this.vFrames;
   this.frames = (hFrames * vFrames);
   this.spriteRect = new RectI.Range(0, 0, imgWidth, imgHeight);
   this.destRect = new RectI.Range();
 }
예제 #5
0
 public boolean equals(Picture p) {
   if (image.equals(p.image)) {
     return true;
   }
   if (this.width == p.width && this.height == p.height) {
     if (image.hashCode() == p.image.hashCode()) {
       return true;
     }
   }
   return false;
 }
예제 #6
0
 public void scroll(float xAmount, float yAmount) {
   if (xAmount != 0) {
     float width = (widthRatio - xOff) * texture.width();
     xOff = (xOff + xAmount) % 1;
     widthRatio = xOff + width / texture.width();
   }
   if (yAmount != 0) {
     float height = (heightRatio - yOff) * texture.height();
     yOff = (yOff + yAmount) % 1;
     heightRatio = yOff + height / texture.height();
   }
 }
예제 #7
0
 public void setRegion(int x, int y, int width, int height) {
   float invTexWidth = 1f;
   float invTexHeight = 1f;
   if (texture.isScale()) {
     invTexWidth = (1f / texture.width());
     invTexHeight = (1f / texture.height());
   } else {
     invTexWidth = (1f / texture.width()) * texture.widthRatio;
     invTexHeight = (1f / texture.height()) * texture.heightRatio;
   }
   setRegion(
       x * invTexWidth + texture.xOff,
       y * invTexHeight + texture.yOff,
       (x + width) * invTexWidth,
       (y + height) * invTexHeight);
 }
예제 #8
0
 @Override
 public void close() {
   if (image != null) {
     image.close();
     image = null;
   }
 }
예제 #9
0
 public void updateLayout(int vFrames, int hFrames) {
   if (vFrames < 1) {
     vFrames = 1;
   } else if (vFrames > 99) {
     vFrames = 99;
   }
   if (hFrames < 1) {
     hFrames = 1;
   } else if (hFrames > 99) {
     hFrames = 99;
   }
   this.hFrames = hFrames;
   this.vFrames = vFrames;
   spriteWidth = imgWidth = image.getWidth() / this.hFrames;
   spriteHeight = imgHeight = image.getHeight() / this.vFrames;
   frames = (hFrames * vFrames);
   spriteRect.right = spriteWidth;
   spriteRect.bottom = spriteHeight;
 }
예제 #10
0
파일: Player.java 프로젝트: keppelcao/LGame
  public void paintResultCards(GLEx canvas) {
    RectF.Range src = new RectF.Range();
    RectF.Range des = new RectF.Range();
    int row;
    int col;

    for (int i = 0; i < cards.length; i++) {
      row = CardsManager.getImageRow(cards[i]);
      col = CardsManager.getImageCol(cards[i]);
      cardImage = Game.getImage(CardImage.cardImages[row][col]);
      Paint paint = new Paint();
      paint.setStyle(Style.STROKE);
      paint.setColor(LColor.black);
      paint.setStrokeWidth(1);
      // 当玩家是NPC时,竖向绘制,扑克牌全是背面
      if (paintDirection == CardsType.direction_Vertical) {
        src.set(0, 0, cardImage.getWidth(), cardImage.getHeight());
        des.set(
            (int) (left * Game.SCALE_HORIAONTAL),
            (int) ((top - 40 + i * 15) * Game.SCALE_VERTICAL),
            (int) ((left + 40) * Game.SCALE_HORIAONTAL),
            (int) ((top + 20 + i * 15) * Game.SCALE_VERTICAL));
        RectF.Range rectF = new RectF.Range(des);
        canvas.rect(rectF, 5, 5, paint);
        canvas.drawBitmap(cardImage, src, des, paint);

      } else {
        src.set(0, 0, cardImage.getWidth(), cardImage.getHeight());
        des.set(
            (int) ((left + 40 + i * 20) * Game.SCALE_HORIAONTAL),
            (int) (top * Game.SCALE_VERTICAL),
            (int) ((left + 80 + i * 20) * Game.SCALE_HORIAONTAL),
            (int) ((top + 60) * Game.SCALE_VERTICAL));
        RectF.Range rectF = new RectF.Range(des);
        canvas.rect(rectF, 5, 5, paint);
        canvas.drawBitmap(cardImage, src, des, paint);
      }
    }
  }
예제 #11
0
파일: BMFont.java 프로젝트: lwxcool/LGame
 public void close() {
   this.isClose = true;
   if (displayList != null) {
     displayList.close();
     displayList = null;
   }
   if (displays != null) {
     for (Display d : displays.values()) {
       if (d != null && d.cache != null) {
         d.cache.close();
         d.cache = null;
       }
     }
     displays.clear();
     displays = null;
   }
 }
예제 #12
0
 public void off() {
   int width = image.getWidth();
   rectSrc.setBounds(0, 0, width / 2, image.getHeight());
 }
예제 #13
0
 public void clear() {
   if (image != null) {
     image.close();
     image = null;
   }
 }
예제 #14
0
파일: Player.java 프로젝트: keppelcao/LGame
  // 绘制玩家手中的牌
  public void paint(GLEx canvas) {
    //	System.out.println("id:" + playerId);
    RectF.Range src = new RectF.Range();
    RectF.Range des = new RectF.Range();

    int row;
    int col;

    // 当玩家是NPC时,竖向绘制,扑克牌全是背面
    if (paintDirection == CardsType.direction_Vertical) {
      Paint paint = new Paint();
      paint.setStyle(Style.STROKE);
      paint.setColor(LColor.black);
      paint.setStrokeWidth(1);
      LTexture backImage = Game.getImage("card_bg");

      src.set(0, 0, backImage.getWidth(), backImage.getHeight());
      des.set(
          (int) (left * Game.SCALE_HORIAONTAL),
          (int) (top * Game.SCALE_VERTICAL),
          (int) ((left + 40) * Game.SCALE_HORIAONTAL),
          (int) ((top + 60) * Game.SCALE_VERTICAL));
      RectF.Range rectF = new RectF.Range(des);
      canvas.rect(rectF, 5, 5, paint);
      canvas.drawBitmap(backImage, src, des, paint);

      // 显示剩余牌数
      paint.setStyle(Style.FILL);
      paint.setColor(LColor.white);
      paint.setTextSize((int) (20 * Game.SCALE_HORIAONTAL));
      canvas.drawText(
          "" + cards.length,
          (int) (left * Game.SCALE_HORIAONTAL),
          (int) ((top + 80) * Game.SCALE_VERTICAL),
          paint);

    } else {
      Paint paint = new Paint();
      paint.setStyle(Style.STROKE);
      paint.setColor(LColor.black);
      paint.setStrokeWidth(1);
      for (int i = 0; i < cards.length; i++) {
        row = CardsManager.getImageRow(cards[i]);
        col = CardsManager.getImageCol(cards[i]);
        cardImage = Game.getImage(CardImage.cardImages[row][col]);
        int select = 0;
        if (cardsFlag[i]) {
          select = 10;
        }
        src.set(0, 0, cardImage.getWidth(), cardImage.getHeight());
        des.set(
            (int) ((left + i * 20) * Game.SCALE_HORIAONTAL),
            (int) ((top - select) * Game.SCALE_VERTICAL),
            (int) ((left + 40 + i * 20) * Game.SCALE_HORIAONTAL),
            (int) ((top - select + 60) * Game.SCALE_VERTICAL));
        RectF.Range rectF = new RectF.Range(des);
        canvas.rect(rectF, 5, 5, paint);
        canvas.drawBitmap(cardImage, src, des, paint);
      }
    }
  }
예제 #15
0
 public void setImage(String fileName) {
   this.image = LTextures.loadTexture(fileName);
   this.width = (int) image.width();
   this.height = (int) image.height();
 }
예제 #16
0
 public int getRegionHeight() {
   float result = texture.height() * heightRatio - texture.height() * yOff;
   return (int) (result > 0 ? result : -result);
 }
예제 #17
0
 public int getOriginalImageHeight() {
   return image.getHeight();
 }
예제 #18
0
 public int getOriginalImageWidth() {
   return image.getWidth();
 }
예제 #19
0
 public void setRegion(LTexture texture) {
   this.texture = texture;
   setRegion(0, 0, texture.width(), texture.height());
 }
예제 #20
0
 public int getRegionWidth() {
   float result = texture.width() * widthRatio - texture.width() * xOff;
   return (int) (result > 0 ? result : -result);
 }
예제 #21
0
 public int getRegionY() {
   return (int) (yOff * texture.height());
 }
예제 #22
0
파일: BMFont.java 프로젝트: lwxcool/LGame
  private void drawBatchString(
      float tx, float ty, String text, LColor c, int startIndex, int endIndex) {

    if (isClose) {
      return;
    }

    if (displays.size > DEFAULT_MAX_CHAR) {
      displays.clear();
    }

    lazyHashCode = 1;

    if (c != null) {
      lazyHashCode = LSystem.unite(lazyHashCode, c.r);
      lazyHashCode = LSystem.unite(lazyHashCode, c.g);
      lazyHashCode = LSystem.unite(lazyHashCode, c.b);
      lazyHashCode = LSystem.unite(lazyHashCode, c.a);
    }

    String key = text + lazyHashCode;

    Display display = displays.get(key);

    if (display == null) {

      int x = 0, y = 0;

      displayList.glBegin();
      displayList.setBatchPos(tx, ty);

      if (c != null) {
        displayList.setImageColor(c);
      }

      CharDef lastCharDef = null;
      char[] data = text.toCharArray();
      for (int i = 0; i < data.length; i++) {
        int id = data[i];
        if (id == '\n') {
          x = 0;
          y += getLineHeight();
          continue;
        }
        if (id >= chars.length) {
          continue;
        }
        CharDef charDef = chars[id];
        if (charDef == null) {
          continue;
        }

        if (lastCharDef != null) {
          x += lastCharDef.getKerning(id);
        }
        lastCharDef = charDef;

        if ((i >= startIndex) && (i <= endIndex)) {
          charDef.draw(x, y);
        }

        x += charDef.advance;
      }

      if (c != null) {
        displayList.setImageColor(LColor.white);
      }

      displayList.glEnd();

      display = new Display();

      display.cache = displayList.newBatchCache();
      display.text = text;
      display.width = 0;
      display.height = 0;

      displays.put(key, display);

    } else if (display.cache != null) {
      display.cache.x = tx;
      display.cache.y = ty;
      displayList.postCache(display.cache);
    }
  }
예제 #23
0
 public void setImage(LTexture image) {
   this.image = image;
   this.width = (int) image.width();
   this.height = (int) image.height();
 }
예제 #24
0
 public void close() {
   if (texture != null) {
     texture.release();
   }
 }
예제 #25
0
	@Override
	public void Draw(SpriteBatch batch) {
		if (isInitialised) {
			super.Draw(batch);
			if (!super.isPaused) {
				float num = 0f;
				if (this.tagSelected != null) {
					num = 0.6f;
				}
				batch.draw(super.maskTexture, 0f, 0f,
						Global.Pool.getColor(1f, 1f, 1f, num));
				if (Help.profession == Help.Profession.BattleEngineer) {
					batch.draw(t2DBattleEngineer, 60f, 90f);
				} else if (Help.profession == Help.Profession.Rifleman) {
					batch.draw(t2DRifleman, 60f, 90f, LColor.white);
				}
				Vector2f v = Screen.myFont.getOrigin("" + Help.AvailSkillPoint);
				batch.drawString(Screen.myFont, "" + Help.AvailSkillPoint,
						740f, 450f, LColor.wheat, 0f, v.x, v.y, 1f);
				v = Screen.ariel14.getOrigin("" + Help.numSkill1);
				batch.drawString(Screen.ariel14, "" + Help.numSkill1,
						this.pTagAAGun.sub(30f, 5f), LColor.wheat, 0f, v, 1f);
				v = Screen.ariel14.getOrigin("" + Help.numSkill2);
				batch.drawString(Screen.ariel14, "" + Help.numSkill2,
						this.pTagAim.sub(30f, 5f), LColor.wheat, 0f, v, 1f);
				v = Screen.ariel14.getOrigin("" + Help.numSkill3);
				batch.drawString(Screen.ariel14, "" + Help.numSkill3,
						this.pTagLearning.sub(30f, 5f), LColor.wheat, 0f, v, 1f);
				v = Screen.ariel14.getOrigin("" + Help.numSkill4);
				batch.drawString(Screen.ariel14, "" + Help.numSkill4,
						this.pTagGunner.sub(30f, 5f), LColor.wheat, 0f, v, 1f);
				if (Help.profession == Help.Profession.BattleEngineer) {
					v = Screen.ariel14.getOrigin("" + Help.numSkill5);
					batch.drawString(Screen.ariel14, "" + Help.numSkill5,
							this.pTagOverRepair.sub(30f, 5f), LColor.wheat, 0f,
							v, 1f);
					v = Screen.ariel14.getOrigin("" + Help.numSkill6);
					batch.drawString(Screen.ariel14, "" + Help.numSkill6,
							this.pTagFieldRepair.sub(30f, 5f), LColor.wheat,
							0f, v, 1f);
				} else if (Help.profession == Help.Profession.Rifleman) {
					v = Screen.ariel14.getOrigin("" + Help.numSkill7);
					batch.drawString(Screen.ariel14, "" + Help.numSkill7,
							this.pTagReloading.sub(30f, 5f), LColor.wheat, 0f,
							v, 1f);
					v = Screen.ariel14.getOrigin("" + Help.numSkill8);
					batch.drawString(Screen.ariel14, "" + Help.numSkill8,
							this.pTagExtendedMag.sub(30f, 5f), LColor.wheat,
							0f, v, 1f);
				} else if (Help.profession == Help.Profession.Commander) {
					v = Screen.ariel14.getOrigin("" + Help.numSkill9);
					batch.drawString(Screen.ariel14, "" + Help.numSkill9,
							this.pTagArtillery.sub(30f, 5f), LColor.wheat, 0f,
							v, 1f);
					v = Screen.ariel14.getOrigin("" + Help.numSkill10);
					batch.drawString(Screen.ariel14, "" + Help.numSkill10,
							this.pTagBoost.sub(30f, 5f), LColor.wheat, 0f, v,
							1f);
				}
				for (Button button : super.buttonList) {
					if (!button.isPrerequisiteMet) {
						RectBox sourceRectangle = null;
						batch.draw(maskSkill, button.position, sourceRectangle,
								LColor.white, 0f, button.origin, 1f,
								SpriteEffects.None);
					}
				}
				if (this.tagSelected != null) {
					batch.draw(t2DSkillDetail, 397f, 240f, null, LColor.white,
							0f, (t2DSkillDetail.getWidth() / 2),
							(t2DSkillDetail.getHeight() / 2), 1f,
							SpriteEffects.None);
					batch.draw(this.tagSelected.texture, 210f, 190f,
							LColor.white);
					batch.drawString(Screen.myFont,
							this.tagSelected.description, 200f, 130f,
							LColor.wheat);
					batch.drawString(Screen.ariel14,
							this.tagSelected.subDescription, 320f, 190f,
							LColor.wheat);
					batch.drawString(Screen.ariel14,
							this.tagSelected.reqDescription, 320f, 275f,
							LColor.wheat);
					this.buttonCancel.Draw(batch);
					if (this.isDetailShowing) {
						this.buttonConfirm.Draw(batch);
					} else {
						batch.draw(t2DPreReqNotMet, 220f, 270f, null,
								Global.Pool.getColor(1f, 1f, 1f, 0.7f),
								MathUtils.toDegrees(-0.3926991f), 0f, 0f, 1f,
								SpriteEffects.None);
					}
				}
			}
		}
	}
예제 #26
0
 public int getRegionX() {
   return (int) (xOff * texture.width());
 }