在Java中将球图像放到我的球对象上时遇到问题

时间:2012-10-20 08:59:26

标签: java swing graphics paintcomponent pong

嘿,我的问题是我如何在Java游戏Pong中将图片放到球对象上?下面是我目前的一个名为Ball的对象的代码,它扩展了一个抽象类Shape。

package Software;

import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

public class Ball extends Shape implements ActionListener {
    public Image tennisBall;

    public Ball() {
        try {
            tennisBall = ImageIO.read(new File("tennisBall.jpg"));
        } catch (IOException ex) {
            // handle exception...
        }
        setHeight(12);
        setWidth(12);
        speed = 5;
    }

    @Override
    public void draw(Graphics g) {
        // g.fillOval(getPositionX(), getPositionY(), (int)getWidth(), (int)getHeight());
        g.drawImage(tennisBall, getPositionX(), getPositionY(), (int)getWidth(), (int)getHeight(), null);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
    }
}

1 个答案:

答案 0 :(得分:0)

我在评论中读到了你的问题。如果您使用透明度,我会使用便携式网络图形(PNG)图像。

如果这是有用的,您可以在Java中创建新颜色,而不必导入图片。如果你想在屏幕上画一个略微透明的蓝色球,你可以这样做。

g.setColor(new Color(0, 0, 255, 175);
g.fillOval(xPosition, yPosition, diameter, diameter);

我创建了一个新的Color并将变量传递给它(int r,int g,int b,int alpha)。所以第一个整数是红色,第二个是绿色和第三个蓝色。但是alpha变量是颜色的不透明度(它的透明度)。然后你绘制“椭圆形”,但它有相同的对角线长度,所以它出来一个圆圈。