Java中的可点击图像

时间:2011-12-30 13:56:45

标签: java image

我正在进行点击式逃脱游戏。我想知道,如果有一种简单的方法来制作可点击的图像?我将使用照片作为背景,也可以作为玩家必须收集的物品。那么,是否有一种简单的方法可以使项目可点击并在点击后消失(玩家收集它)。

感谢您的回答,如果我的解释很复杂,请说出来,我会尝试修复它。

6 个答案:

答案 0 :(得分:4)

为了制作游戏,我建议将所有逻辑降低一级。

  1. 创建一个包含游戏“级别”状态的数据结构。这个数据结构将从某种XML级别的配置文件中加载,我认为它应该包含:
    • 包含关卡背景(照片)的Image对象。
    • 所有项目的数组。每个项目都应该有Image,级别屏幕上的尺寸(X,Y,宽度,高度)和某种状态(可见,突出显示等)。
  2. 创建一个扩展Canvas的类。这将是包含和渲染整个游戏画面的组件(包含项目和背景照片)。
  3. 覆盖它的paint方法。在此绘制方法中,使用drawImage方法遍历您的关卡数据对象(在步骤1中指定)并绘制背景(空间)和各自坐标中的所有项目。如果该项目有visible = false - 请勿绘制它。如果它有selected = true - 在它周围画一些亮点或任何你想要的。
  4. 实施MouseListener。此侦听器应检查单击坐标是否在屏幕上某个“对象”的维度内(循环遍历所有可单击对象)。如果是 - 执行适当的操作(例如,为该项目增加分数并设置visible = false)并使用repaint更新您的画布。这将触发paint方法再次绘制画布上的所有更改。
  5. 使用MouseListener在您的画布上注册addMouseListener,将它们组合在一起。

答案 1 :(得分:1)

如果您使用的是Swing,只需设置JButton的图标即可。这将创建一个“可点击的图像”。

答案 2 :(得分:1)

有几种方法,最直接的方法是使用JButton并在其上设置图标。但您也可以将MouseListener添加到任何组件(如JPanel)并将图像设置为背景(覆盖绘制)。

答案 3 :(得分:0)

你可能会做这样的事情:绘制一个JPanel然后在它上面放置一堆JLabel,每个标签也将绘制它自己的图像。

如果您有特定的代码问题,我们可以提供更多帮助,但您的情况非常普遍。尝试使用java网站上的Swing示例,然后提出更具针对性的问题。

答案 4 :(得分:0)

您可以将图像设置为JButton对象作为背景。关键是你应该听鼠标点击事件,JButton是满足这一要求的首选。

答案 5 :(得分:0)

一个关于如何获得可点击图像的简单示例。有关Java Swing和awt的更多示例和解释,您可以查看官方java教程here

//a lable holding an image
JLabel label = new JLabel(new ImageIcon("MyImage));
//Add a mouse listener to get the click event
//
label.addMouseListener(new MouseAdapter(){
    public void mouseClicked(MouseEvent e) {
        System.out.println("Mouse clicked (# of clicks: "
                + e.getClickCount() + ")", e);
    }
});