Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果已绘制对象满足特定条件,如何删除该对象_Java_Paintcomponent - Fatal编程技术网

Java 如果已绘制对象满足特定条件,如何删除该对象

Java 如果已绘制对象满足特定条件,如何删除该对象,java,paintcomponent,Java,Paintcomponent,因此,我们将编写一个Biljard游戏i java,这是该项目的主要目标。然而,该项目分为三个步骤。首先,我们得到了一个桌子的外壳和两个球。当你模拟球时,它会画一张没有洞的桌子,球不会相互碰撞,也不会与墙碰撞。第一个练习是让它们碰撞 然而,现在我们将继续构建一个疾病游戏,其中桌子的摩擦为零,并且特定数量的球被模拟为健康或受污染。为了使这篇文章简短,主要的问题是移除已经死了的球。因此,当你运行项目时,会出现30个随机位置和速度的球。给定一定概率,在碰撞过程中,某些球被污染,并将以给定概率污染其他球

因此,我们将编写一个Biljard游戏i java,这是该项目的主要目标。然而,该项目分为三个步骤。首先,我们得到了一个桌子的外壳和两个球。当你模拟球时,它会画一张没有洞的桌子,球不会相互碰撞,也不会与墙碰撞。第一个练习是让它们碰撞

然而,现在我们将继续构建一个疾病游戏,其中桌子的摩擦为零,并且特定数量的球被模拟为健康或受污染。为了使这篇文章简短,主要的问题是移除已经死了的球。因此,当你运行项目时,会出现30个随机位置和速度的球。给定一定概率,在碰撞过程中,某些球被污染,并将以给定概率污染其他球。然后计时器启动,它们要么死亡,要么恢复。然而,当它们死亡时,球应该消失。我不能让这一切发生。现在我让他们把颜色改成黑色


如何停止已终止的球的绘制组件?我想让它们从桌子上消失…

你试过把球设为空吗

假设您有一个类Ball,它被实例化为

Ball b = new Ball(someArguments);
然后用画法画出球b

如果你在某一点上

b = null;
垃圾收集器应该删除对象并将其从内存中取出,并且绘制方法应该停止绘制它

干杯


幸运的是,在table类中绘制球的绘制组件。我有一个forloop,它从1循环到num_球,当前设置为30。我有一个killAndRemove方法,它将所有死球重新绘制为黑色,但我不想将其变为黑色,而是简单地移除状态为死球的球。所以我不能把一个球打到零。我说得对吗@Dat LuckeyI假设每个球都有一个布尔值。如果此bool设置为false,则killAndRemove方法可以将其从存储它的数组中删除。当for循环遍历该数组时,它将不再绘制球。因为我不知道你的代码,所以说起来并不容易。我曾经创建了一个视频游戏2d shooter,其中所有敌人都存储在一个ArrayList中,该ArrayList在draw方法中迭代。当一个敌人死亡时,我只需将其从列表中删除,它就从屏幕上消失了。但是,将对象设置为null可以确保它从RAM中删除…谢谢,我忘了告诉你:在我的视频游戏中,每个敌人都覆盖了draw方法,所以当它被删除时,它无法自行绘制,我不确定你是如何做到的。我建议您在ball类中覆盖paint方法。在主绘制方法中,然后执行ball[i]。绘制。希望这能对你有所帮助。虽然我完全理解你的意思,但我不知道所有的语法。现在,我在循环中创建了一个if条件,用于绘制球。所以现在当他们的身份死了,他们就停止画画。然而,你可以看到活着的球,撞到死去的鬼球哈哈!不管怎样,我会尽力落实你的建议。泰!哦,顺便说一句,我没有使用布尔值。简单地说,我有一个状态,它是一个私有的最终字符串DEAD=DEAD等等。因此,我可能需要使用其中的某些内容将它们从ArrayList中删除