Java can';不显示图像[画布]

Java can';不显示图像[画布],java,image,canvas,Java,Image,Canvas,我目前正在用Java制作一个游戏,我试图在屏幕上绘制一个图像,但什么也没有显示(只有一个黑屏,但没有错误):( 以下是导入图像的代码: public static Bitmap loadBitmap(String fileName) { try { BufferedImage img = ImageIO.read(Art.class.getResource(fileName)); int w = img.getWidth(); int h

我目前正在用Java制作一个游戏,我试图在屏幕上绘制一个图像,但什么也没有显示(只有一个黑屏,但没有错误):(

以下是导入图像的代码:

public static Bitmap loadBitmap(String fileName) {
    try {
        BufferedImage img = ImageIO.read(Art.class.getResource(fileName));

        int w = img.getWidth();
        int h = img.getHeight();

        Bitmap result = new Bitmap(w, h);
        img.getRGB(0, 0, w, h, result.pixels, 0, w);
        for (int I = 0; I < result.pixels.length; i++) {
            int in = result.pixels[i];
            int col = (in & 0xf) >> 2;
            if (in == 0xffff00ff) col = -1;
            result.pixels[i] = col;
        }
        return result;
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}
公共静态位图加载位图(字符串文件名){
试一试{
BuffereImage img=ImageIO.read(Art.class.getResource(fileName));
int w=img.getWidth();
inth=img.getHeight();
位图结果=新位图(w,h);
getRGB(0,0,w,h,result.pixels,0,w);
for(int I=0;I>2;
如果(in==0xffff00ff)列=-1;
结果.像素[i]=列;
}
返回结果;
}捕获(例外e){
抛出新的运行时异常(e);
}
}
和位图类:

public void draw(Bitmap bitmap, int xOffs, int yOffs)
{
    for(int y = 0; y < bitmap.height; y++)
    {
        int yPix = y + yOffs;       
        if(yPix < 0 || yPix >= height) continue;

        for(int x = 0; x < bitmap.width; x++)
        {
            int xPix = x + xOffs;
            if(xPix < 0 || xPix >= width) continue;

            int alpha = bitmap.pixels[x + y * bitmap.width];

            if(alpha > 0)
                pixels[xPix + yPix * width] = bitmap.pixels[x + y * bitmap.width];
        }
    }
}
public void draw(位图、int-xOffs、int-yOffs)
{
对于(int y=0;y=高度)继续;
用于(int x=0;x=宽度)继续;
int alpha=bitmap.pixels[x+y*bitmap.width];
如果(α>0)
像素[xPix+yPix*宽度]=位图。像素[x+y*位图。宽度];
}
}
}
并得出所有这些:

public void render(Game game)
{

    for(int y = 0; y < height; y++)
    {
        float yd = ((y + 0.5f) - height / 2.0f) / height;

        if(yd < 0) yd *= -1;

        float z = 10 / yd;

        for(int x = 0; x < width; x++)
        {
            float xd = (x - width / 2.0f) / height;

            xd *= z;
            int xx = (int) (xd) & 7;
            int yy = (int) (z + game.time * 0.1f) & 7;

            pixels[x + y * width] = Art.floors.pixels[xx + yy * 64];
        }
    }
}
公共无效渲染(游戏)
{
对于(int y=0;y

我没有错误!我真的不明白..这是由alpha或其他什么引起的错误吗?Ho和my image.png是用paint.net制作的64x64

你确定图像位于你认为的位置吗?尝试使用调试器单步执行,或者至少添加一些打印语句,以确定程序的执行与你的体验何时不同tations。否则,请发布一个,我们将从那里开始。但如果位置错误,则会出现输入错误?可能没有。然后,我再也看不到任何绘图代码,因此如果没有MCVE,很难告诉您发生了什么。我将为您提供工作区(仅6个类)你可以看到这里发生了什么,给我一点时间上传:请不要。我们没有时间调试整个项目。这就是为什么我们要求使用MCVE。