用Java导入图像

时间:2014-04-02 15:08:18

标签: java

我正在制作一个简单的乒乓球游戏,并希望在我的球拍上放置一个纹理,但我不知道如何将图像导入到我的游戏中。我尝试在第3个示例中使用here,但它不起作用:

Image myImage = getImage(getCodeBase(), "texture.png");
g.drawImage(myImage, 0, 0 , 10, 120, this);

g cannot be resolved

以下是一些代码:

public void run(){
Image myImage = getImage(getCodeBase(), "texture.png");
g.drawImage(myImage, 0, 0 , 10, 120, this);
GOval ball = makeBall();
add(ball);
GRect paddleLeft = makePaddle();
GRect paddleRight = makePaddle();
add(paddleLeft);
add(paddleRight);
bounce(ball, paddleLeft, paddleRight);

}

public static GRect makePaddle(){
    GRect result = new GRect(0,0,WIDTH,HEIGHT);
    result.setFilled(true);
    result.setColor(Color.BLACK);
    return result;
}

texture.png用于拨片

编辑:

我得到了纹理加载,但是我不能用它移动桨,我不知道为什么 WIDTH是paddle的宽度,getWidth() - 窗口。我想我用来移动球拍的代码应该适用于纹理,但它没有

使用image.sendToFront()玩家的球拍的纹理效果,但是AI不会

if(mouseY<getHeight()-HEIGHT){                                // Player
            paddleLeft.setLocation(WIDTH,mouseY);
            image.setLocation(WIDTH,mouseY);
            image.sendToFront();
        }
        else{
            paddleLeft.setLocation(WIDTH,getHeight()-HEIGHT);
            image.setLocation(WIDTH,getHeight()-HEIGHT);
            image.sendToFront();

        }
        if(ball.getY()<getHeight()-paddleRight.getHeight()){           // AI
            paddleRight.setLocation(getWidth()-2*WIDTH,ball.getY());
            image2.setLocation(getWidth()-2*WIDTH,ball.getY());
            image2.sendToFront();
        }
        else
            paddleRight.setLocation(getWidth()-2*WIDTH,getHeight()-paddleRight.getHeight());
            image2.setLocation(getWidth()-2*WIDTH,getHeight()-paddleRight.getHeight());
            image2.sendToFront();

1 个答案:

答案 0 :(得分:1)

您似乎正在使用http://cs.stanford.edu/people/eroberts/jtf/中的库(基于GRect类等)。

似乎你也应该能够使用GImage。所以代码大概看起来像

Image myImage = getImage(getCodeBase(), "texture.png");
//g.drawImage(myImage, 0, 0 , 10, 120, this);
GImage image = new GImage(myImage);
add(image);