2015-12-06 89 views
2

所以我有一個像素數組來表示圖像。我目前正在嘗試從像素數組的元素中獲取x和y值,但我只能成功獲取x。從像素數組索引中獲取x和y

我當前的代碼:

public int[] draw(int[] pixels, int index, int xOffs, int yOffs) { 

    int x0 = index % width; 
    int y0 = (index * x0)/height; 

    for (int y = y0 * size; y < y0 * size + size; y++) { 
     int yPix = y + yOffs - (size * y0); 
     if (yPix < 0 || yPix >= Game.height) continue; 

     for (int x = x0 * size; x < x0 * size + size; x++) { 
      int xPix = x + xOffs - (size * x0); 
      if (xPix < 0 || xPix >= Game.width) continue; 

      int src = this.pixels[x + y * width]; 
      pixels[xPix + yPix * Game.width] = src; 
     } 
    } 
    return pixels; 
} 

X0返回正確的值,例如,如果指數爲4,那麼它會返回0 Y0總是返回0

基本上我想要實現的是一個使用像素操作的精靈表。 謝謝。

回答

0

我不是專家,但我認爲int y0 = (index * x0)/height;應該是int y0 = index/width;

PS。你爲什麼要將(y0 * size)加到y並在yPix中再次減去它,這似乎是不必要的,它也使你的代碼有點不可讀。