gpt4 book ai didi

java - 如何分别访问对象变量的所有不同实例?

转载 作者:行者123 更新时间:2023-12-01 22:47:41 26 4
gpt4 key购买 nike

我在初始化方法中生成 100 个椭圆作为粒子,然后我想将它们移动一定的量(比如说 x),进行 n 次迭代。我编写了以下代码片段来执行此操作。

private void drawNParticles(Graphics g)
{
ArrayList<Integer> list;
list = new ArrayList<Integer>(Collections.nCopies(n, 0));
for(int i=0;i<list.size();i++)
{
generateParticle(g);
}
}

private void generateParticle(Graphics g)
{
int radius = 4;
ArrayList<Integer> list= new ArrayList<Integer>();
list=positionParticles(particle_x,particle_y);
g.setColor(Color.RED);
g.fillOval(list.get(0),list.get(1), radius, radius);
}

private ArrayList<Integer> positionParticles(int x, int y)
{
int radius = 4;
ArrayList<Integer> list= new ArrayList<Integer>();
if(this.particle_counter==0)
{
x=randomInteger(2,678); // bounds of x between which the particles should be generated
y=randomInteger(2,448); // bounds of y between which the particles should be generated
x=x-(radius/2);
y=y-(radius/2);
if((x<251&&x>149)&&(y<266&&y>224))
{
x=0;
y=0;
positionParticles(x,y);
}
if((x<541&&x>499)&&(y<401&&y>299))
{
x=0;
y=0;
positionParticles(x,y);
}
this.particle_counter++;
}
else
{
setXPosition_particle(x);
setYPosition_particle(y);
}
list.add(x);
list.add(y);
return list;
}

public void setXPosition_particle(int x)
{
this.particle_x=x+5;
System.out.println("Particle_X:"+this.particle_x);
}

public void setYPosition_particle(int y)
{
particle_y=y+5;
System.out.println("Particle_Y:"+this.particle_y);
}

我想要的是每个粒子的位置应该增加 5。但是在输出中,每个粒子都获得相同的值。我的 JPanel 上出现一条对角线。我应该如何单独访问每个实例变量?

output image

最佳答案

为什么不创建一个 Particle 类并维护一个 List<Particule>

关于java - 如何分别访问对象变量的所有不同实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25108447/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com