编译错误:不是声明

时间:2014-09-22 23:56:10

标签: java netbeans

我正在制作一个基于文本的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)];  
            }
        }
    }



}

错误显示在第7行左右,我似乎无法找出问题

1 个答案:

答案 0 :(得分: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[...]从数组中获取数据后立即执行{{1}},但这与您提出的问题完全不同。