我正在制作一个简单的乒乓球游戏,并希望在我的球拍上放置一个纹理,但我不知道如何将图像导入到我的游戏中。我尝试在第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();
答案 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);