有没有一种方法可以使用java.swing来实现浮动损伤数?

我正在使用Java Swing创建游戏,并且发现需要图形显示当前发生的情况。当前显示使用JButton的网格来表示战场上的图块。是否可能使用定制的像素艺术GIF在JButton上显示浮动/消失的损坏数字?如果是这样,我将如何实施呢?

tonggexiaowu 回答:有没有一种方法可以使用java.swing来实现浮动损伤数?

几乎所有Swing组件都可以扩展以更改其表示形式。

创建一个扩展JButton的按钮类,并覆盖其paintComponent方法以显示所需的损坏。此方法会收到一个Graphic(实际上是Graphics2D的一个实例),如果该损坏为 active ,则可以在其上造成损害。

非常简单的示例:

public class DamageButton extends JButton {

    private String damage = null;

    public DamageButton(String text) {
        super(text);
    }

    public void setDamage(String damage) {
        this.damage = damage;
        System.out.println(damage);
        repaint();
    }

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        if (damage != null) {
            Graphics2D gg = (Graphics2D) g.create();
            try {
                gg.setColor(Color.RED);
                gg.drawString(damage,10,10);
            } finally {
                gg.dispose();
            }
        }
    }
}

创建一个新的Graphicsgg),这样g的设置就不会更改,也不需要恢复。

使用一些文本调用setDamage()使其显示在按钮上,或者使用null调用以取消效果。

可以轻松(或多或少)添加动画或其他效果。请注意,给定的Graphics2D的裁剪区域设置为按钮的尺寸。

本文链接:https://www.f2er.com/3112418.html

大家都在问