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

标签 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) {
    }
}

最佳答案

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

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

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

我创建了一个新颜色并向其传递了变量(int r、int g、int b、int alpha)。因此,第一个整数是红色的量,第二个整数是绿色的量,第三个整数是蓝色的量。但 alpha 变量是颜色的不透明度(透明程度)。然后你画出“椭圆形”,但它有相同的对角线长度,所以它是一个圆形。

关于java - 在 Java 中将球图像放到我的球对象上时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12986893/

相关文章:

java - 从 JSONException 中恢复

java - 如何使用 Java 代码找出访问我的 Ubuntu 计算机的 WLAN 接口(interface)的 PC 的 IP 地址?

java - 为什么 Java 没有逻辑运算符 && 和 ||使用数组?

java - 如何使用 JSpinner 分别更改小时、分钟和秒?

ios - 使用 OpenGL ES 平滑改变线宽

c# - 如何在 C# 中读取和修改图像的颜色空间

c# - 游戏开发 - 避免闪烁

java - 从 swingWorker 处理框架

java - JButton 和 JField 标签/文本?

java - 自动隐藏任务栏和最大屏幕空间