当前位置: 首页 > 知识库问答 >
问题:

如何添加更多以不同速度移动的图像

任小云
2023-03-14

我试图使一个程序,将工作和功能像简单的赛马,但我不能设置不同的速度。就我所见,当计时器取不同的值时,例如:我有两张照片,一张有40个计时器,另一张有80个计时器,它们以相同的速度移动,但一张有80个计时器的照片会变短,或者更少的时钟,而这张有40个计时器的照片会变得更平滑。

public class AnimatedThing {

   public AnimatedThing() {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
                }

                JFrame frame = new JFrame("Trke");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setPreferredSize(new Dimension(400, 600));
                frame.setLayout(new BorderLayout());
                frame.pack();
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);

                frame.setLayout(new GridLayout(4, 1));
                frame.setBackground(Color.white);

                enemyRed enemyPink = new enemyPink(); // sub-panel 1
                frame.add(enemyPink);
                frame.setLocationRelativeTo(null);
            }
        });
    }
     public class enemyPink extends JPanel {

        private BufferedImage enemyPink;
        public enemyPink() {
            try {
                enemyPink = ImageIO.read(new File("C:\\Users\\SMRTNIK\\Documents\\NetBeansProjects\\Sistem elektronske biblioteke - SEB\\images\\enemy - pink.png"));
                Timer timer2 = new Timer(20, new ActionListener() {

                    @Override
                    public void actionPerformed(ActionEvent e) {
                        xPos += direction;
                        if (xPos + enemyPink.getWidth() > getWidth()) {
                        } else {
                            repaint();
                        }
                    }

                });
                timer2.setRepeats(true);
                timer2.setCoalesce(true);
                timer2.start();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }

        @Override
        public Dimension getPreferredSize() {
            return enemyPink == null ? super.getPreferredSize() : new Dimension(enemyPink.getWidth() * 4, enemyPink.getHeight());
        }

        @Override
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);
            g.drawImage(enemyPink, xPos, 0, this);
        }

    }

共有1个答案

澹台啸
2023-03-14

最好先阅读一下标准文档,然后看看如何做到这一点的教程。代码很混乱,我解不出来。我将发布一个链接:https://youtu.be/kmgo00avvew

 类似资料:
  • 在IOS SpriteKit中玩SKSprites,我基本上想让一个sprite随机移动某个方向一定距离,然后选择一个新的随机方向和距离。。非常简单,创建一个生成随机数的方法,然后创建动画,并在动画的完成块中调用相同的例程。 这确实有效,但也可以防止动画以相同的速度移动,因为动画都基于持续时间。。如果物体必须移动100,它将以1/2的速度移动,如果下一个随机命令它移动200。。。那我该怎么让它以一

  • 有没有一种方法你可以使视点宽度在移动700和保持1080在桌面 例如:meta name=“viewport”content=“width=700”(仅适用于移动端) meta name=“viewport”content=“width=1080”(仅适用于桌面)

  • 我有一些执行以下操作的Python(3.8)代码: 遍历给定路径的目录和子目录 查找所有.csv文件 查找文件名中带有“Pct”的所有.csv文件 联接路径和文件 读取 CSV 格式 将文件名添加到 df 将所有 dfs 放在一起 下面的代码可以工作,但需要很长时间(15分钟)才能摄取所有CSV - 有52,000个文件。这实际上可能不是很长一段时间,但我想尽可能地减少这种情况。 我目前的工作代码

  • 我目前有一个错误,我不明白如何解决它,事实是,我从昨天开始就一直在尝试,但我没有得到任何解决方案。有人能帮帮我吗? 文件:topics.php 文件:db.php 文件:edit.php 错误: 致命错误:未捕获错误:调用成员函数bind_param()在C:\xampp\htdocs\app\数据库\db.php:19堆栈跟踪:#0 C:\xampp\htdocs\app\数据库\db.php(

  • 在ListView上,您可以使用一个快速滚动条,它允许您拖动滚动条,以便轻松滚动到您希望的任何位置(使用fastScrollEnabled属性) 再加上“SectionIndexer”类和一些可选的属性,您可以在使用此滚动条时看到一个漂亮的弹出窗口(此处链接)。 这种东西显示在联系人应用程序上,这样你就可以很容易地滚动到特定的字母。 RecyclerView似乎没有这些。甚至连快速滚动都没有。 如

  • 对于我的JTable,我使用了DefaultListSelectionModel。有一个setSelectionInteral(int index0,int index1)和addSelectionInteral(int index0,int index1)。如果我有一个连续的选择或一个单一的选择,这些工作很好。如果我有很多单独的或不连续的选择呢?添加一千个单选是非常慢的。我应该使用另一个类来驱动