绘制2D图形

3

我想在Java中制作一个已经设计好的简单游戏。我只需要一种绘制精灵等元素的方法。它不必太复杂。你会推荐哪个第一选择?


我们在谈论Swing吗?我从一个(错误的)答案中推断出来,但实际上并不知道问题是关于什么的。 - kleopatra
如果您是游戏开发新手,我可以向您推荐这个教程:http://www.youtube.com/playlist?list=PLsc8wGybU2IZui4lAad9F8lFjdkn2ZdWD 该教程内容不涉及最终产品的开发,但会为您提供如何组织基本代码结构以及使用默认库所能实现的功能等方面的良好思路。 - d.raev
4个回答

4
我强烈建议您选择一个基于OpenGL的雪碧图系统,例如Slick2Dlibgdx。使用Java 2D图形绘制会导致雪碧图游戏速度过慢,且容易出现问题。我深有体会。

2

1

扩展JPanel是一个不错的开始:

    public class SpriteDrawer extends JPanel
    {
        public SpriteDrawer()
        {
            try
            {
                sprite = ImageIO.read(new File("..//images//sprite.PNG"));
            }catch(Exception e){e.printStackTrace();}

            frame = new JFrame("Sprite Drawer");
            frame.add(this);
            frame.setSize(400,400);
            frame.setVisible(true);
        }

        public void paint(Graphics g)
        {
            Graphics2D g2 = (Graphics2D)g;
            g2.drawImage(0,0,400,400);
        }

        private JFrame frame;
        private Image sprite;
    }

这是在JPanel中重写paint方法的一个很好的例子。我希望这正是你所寻找的,如果不是,请告诉我,我可以帮助你。


不,这不是一个好的例子:在Swing中,用于自定义绘制的重写方法是paintComponent(...)。 - kleopatra
你可以重写paint方法,它能正常工作。 - gsfd
-1代表坚持错误 - kleopatra
我可以按照自己的方式编程,而且它能够正常运行。我从来没有遇到过任何问题。 - gsfd
是的,当然,你可以自由地犯任何你坚持要犯的错误 ;) - kleopatra
显示剩余2条评论

1

你可能会发现Slick2D框架很有用 - 它专为简单的2D游戏设计,包括声音效果、输入处理等工具。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接