Java游戏-使用线程使敌人在X,Y点移动

Java游戏-使用线程使敌人在X,Y点移动,java,multithreading,multidimensional-array,Java,Multithreading,Multidimensional Array,大家好 我有以下声明和任务,我想知道如何将我的图像制作成一个带有图标的JLabel-敌人单位移动。这个标签叫做敌人。我已经实现了Runnable和下面的代码——开关案例位于重写的Run方法中。还请准确地指出放置/运行每个方法/实例/线程的位置。稍后我将实现多个单独的线程来同时执行操作,但首先我需要清除这个问题。这是在Windows-NETBeans上为Windows项目开发的,而不是为手持设备开发的 static Point EnemyLocation; // This throws an e

大家好

我有以下声明和任务,我想知道如何将我的图像制作成一个带有图标的JLabel-敌人单位移动。这个标签叫做敌人。我已经实现了Runnable和下面的代码——开关案例位于重写的Run方法中。还请准确地指出放置/运行每个方法/实例/线程的位置。稍后我将实现多个单独的线程来同时执行操作,但首先我需要清除这个问题。这是在Windows-NETBeans上为Windows项目开发的,而不是为手持设备开发的

static Point EnemyLocation;

// This throws an error - Might it be due to putting an implementable
// overridden method in a thread? 

Thread moveTheEnemy = new Thread(run());

public Window() 
{
    initComponents();
    EnemyLocation = new Point(
        (int)(Enemy.getLocation().getX() + Enemy.getWidth()/2 - 7),
        (int)(Enemy.getLocation().getY() - 3 + Enemy.getHeight()/2)
    );
}

// How do i go about running this run method in that thread?
// And Can i Run it on a button click? Simply indicating
// ThreadName.start in the Button wont start the actions.

@Override
public void run(){

    boolean stop = false;

    // A Method is to be added here to flag for when the stop
    // will change... Dont worry  about this part... I need
    // the Cases below to work.

    while (stop == false) 
    {            

        for (int i = 0; i < 1; i++) 
        {
            Random rand = new Random();
            int a = rand.nextInt(4);

            switch (a) {
                case 0:
                    EnemyLocation.setLocation(
                        EnemyLocation.x + 4, EnemyLocation.y);
                    break;
                case 1:
                    EnemyLocation.setLocation(
                        EnemyLocation.x - 4, EnemyLocation.y);
                    break;
                case 2:
                    EnemyLocation.setLocation(
                        EnemyLocation.x, EnemyLocation.y + 4);
                    break;
                case 3:
                    EnemyLocation.setLocation(
                        EnemyLocation.x, EnemyLocation.y - 4);
                    break;
                default:
                    EnemyLocation.setLocation(
                        EnemyLocation.y + 4, EnemyLocation.y);

                    //It comes down to this Exception Each time...
                    throw new AssertionError("Failure to attempt Move");
            }
        }
    }  
}
e、 g.告诉您如何在doc中的第三个示例中的线程中运行runnable。您只需将Runnable赋予线程构造函数并启动线程。然而,我建议在花太多时间在一个没有意义的项目上之前,先学习java基础知识,阅读一些游戏编程方面的文献。
编辑:事实上,无意义的项目似乎太令人讨厌了。我的意思是,如果你不懂基础知识,你的代码/问题告诉我,你不会成功完成。但是,我可能错了。

如果代码与您编写的代码相同,比AssertionError将抛出25%的情况下,不管其他一切-兰德。nextInt4返回0,1,2或3。是的,对不起,我是java新手,但感谢你的输入,你真正的问题是什么?你如何使一个敌人的标签上的图片作为图标移动在JFrame4可能的重复,如果这个项目是给30人完成im不是应该责备的人,而是应该责备给予它的人。我很想在更大的游戏上工作。。。如果你想发现它更有趣-这是一个更大的项目中的一小部分,我必须解决阿波罗的圆圈。。。确定声波来自何处,以检测敌人的移动等。我对Java也是新手,所以我在这里问这个问题。请不要在这件事上提供无用的意见。。。我可以给出整个项目,并直接要求为我做。你的代码包含了太多的基本错误和问题——变量范围、编码约定、错误的静态声明,因此建议你先学习一些编程基础知识,这是唯一合适的。否则,据说解决一个问题会让你直接进入下一个问题。祝你好运。正如我提到的,我是java新手。。。基础随时间而来。我现在没有时间。我有编程基础,java对我来说是另一个世界。再一次-如何使标签移动>>>?。在jlabel实例上设置位置点p