2017-01-21 65 views
0

我有一個形象,我在不同的類進口加載可變數量的圖像:具有可變數量的參數應用的同時

static ImageIcon grassSprite1 = new ImageIcon("Images/Sprite/grass.png"); 
static Image grass1 = grassSprite1.getImage(); 

我想現在要做的就是畫這個圖片上我創建了一個JFrame,它看起來像這樣:

drawImages(Graphics g){ 
    Graphics2D sprite = (Graphics2D) g; 

    sprite.drawImage(GetSpriteImage.grass1, posX1, posY1, null); 
    sprite.drawImage(GetSpriteImage.grass1, posX2, posY2, null); 
    sprite.drawImage(GetSpriteImage.grass1, posX3, posY3, null); 
    sprite.drawImage(GetSpriteImage.grass1, posX4, posY4, null); 
    //draw the Image alot of times on multiple coordinates 
} 

是否有可能創建一個請求動態參數數量的類?

我正在尋找這樣的事情:

//Pseudocode 

MultipleImages{ 

    public multipleImages(Image spriteImage, int int x1, int y1, int x2, int y2, ..., int xn, int yn){ 

     for (i = 1, i < (number of x and y coordinates), i++){ 

      drawImage(spriteImage, xi, yi) 
      //draws Image with coordinates 
      //x1, y1 
      //x2, y2 
      //... 
      //xn, yn 

     } 
} 

,我可以創建這樣一個實例關:

multipleImages grass = new multipleImages(x1, y1, x2, y2, x3, y3, x4, y4, ..., xn, yn) 

爲 「N =任何博物號」 的工作。

回答

0

您可以改爲將int數組作爲參數。這將允許您按照自己的想法獲得(實際上)儘可能多的整數。

public multipleImages(Image spriteImage, int[] coords) { 
    for (i = 0, i < coords.length, i+=2) { 
     drawImage(spriteImage, coords[i], coords[i+1]); 
    } 
} 

雖然你應該也檢查以確保該數組有偶數個元素,並以其他方式處理它。

0

是的,可以用動態數量的參數創建方法(構造函數)。查看任意數量的參數here。您可以使用這樣的構造達到預期的效果:

public Points(Point... points) 
{ 
    //Use points as array. 
    points[0].x; 
    //... 
} 

這個類的對象可以以這種方式被實例化:

Points points = new Points(new Point(0, 0), new Point(1, 1)); 
相關問題