有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用Graphics2D缩放图像

在我正在制作的游戏中,我希望通电是空投。我有一个板条箱的图像,我想画得比我画的还要大。然后我希望图像随着时间的推移逐渐变小,这样看起来像是从空中掉下来的。我已经精心编制了这段代码,我认为它应该可以工作,但由于某些原因它不能工作

if(power.getPowerUp()){
   double crateX = (int) power.getX();
   double crateY = (int) power.getY();
   Image crate = power.getCrate();
   int crateW = crate.getWidth(null) + 100;
   int crateH = crate.getHeight(null) + 100;
   if(crateW > 64){
      g2d.drawImage(
         power.getCrate(), (int) crateX, (int) crateY, crateW, crateH, this );
      crateX += .5;
      crateX += .5;
      crateW -= 1;
      crateH -= 1;
   }
   else {
      g2d.drawImage(
         power.getCrate(), (int) crateX, (int) crateY, crateW, crateH, this );
   }
}

我在paintComponent(Graphics g)中有这个方法,我使用一个线程来重新绘制图形。为什么不起作用?这与我使用另一个类的值有关吗?我如何使它逐渐变小


共 (1) 个答案

  1. # 1 楼答案

    每次调用该方法时,您都在重新创建crateWcrateH变量。然后该方法进入if或else块,在进入if块之后,它永远不会进入else(您想要的)。换句话说,下次调用该方法时,宽度和高度是相同的