2014-09-22 123 views
0

我正在使用基於文本的RPG,並在處理該錯誤時遇到此錯誤。編譯錯誤:不是語句

package game; 

import java.awt.image.BufferedImage; 
import java.awt.image.DataBufferInt; 

/** 
* 
* @author Pyro 
*/ 
public class SpriteSheetLoader { 
    public int[] sheetPixels; 
    public int[] pixels; 
    int x, y, sheetWidth; 

    public SpriteSheetLoader(BufferedImage sheet){ 
     BufferedImage image = new BufferedImage(sheet.getWidth(), sheet.getHeight(), BufferedImage.TYPE_INT_ARGB); 
     image.getGraphics().drawImage(sheet, 0, 0, null); 

     sheetPixels = ((DataBufferInt)image.getRaster().getDataBuffer()).getData(); 

     sheetWidth = sheet.getWidth(); 

    } 

    public void grabTile(int tile, int width, int height) { 
     sheetPixels = new int[width * height]; 

     int xTile = tile % 16; 
     int yTile = tile % 16; 

     for (int y = 0; y < height; y++) { 
      for (int x = 0; x < width; x++) { 
       int value = pixels[(x + (y * width))] * sheetPixels[((x + (xTile * width)) + (y + (yTile * height)) * sheetWidth)]; 
      } 
     } 
    } 



} 

錯誤周圍七號線出現了,我似乎無法找出

+0

顯示的錯誤是什麼?我沒有看到在這段代碼中定義的'sheetPixels','pixels'或'sheetWidth',所以我不能告訴你這些是否有問題。 – mkobit 2014-09-22 23:58:18

+0

這是說,第七行不是一個聲明 – Pyrosix 2014-09-22 23:59:02

+0

該行沒有任務。看起來你只是在計算一個值。 – 2014-09-22 23:59:37

回答

0

你不這樣做你的代碼的任何轉讓的問題:

pixels[(x + (y * width))] * sheetPixels[((x + (xTile * width)) + (y + (yTile * height)) * sheetWidth)]; 

您需要用這裏的值做一些事情,我不確定你想做什麼(比如可能在數組中設置值),所以這裏只是一個例子。

int value = pixels[(x + (y * width))] * sheetPixels[((x + (xTile * width)) + (y + (yTile * height)) * sheetWidth)]; 

除了你的錯誤,你做sheetPixels = new int[width * height];後立即嘗試取出數據與sheetPixels[...]數組,但比你問一個完全不同的問題。