Processing 正在处理中填充对象数组-所有对象都相同
我向你保证,我已经花了数小时在互联网上寻找解决方案,但我急需一双新的眼睛。我目前正在使用ArrayList,但尝试使用普通对象数组时也出现了同样的问题。在上下文中,我试图模拟一种流行病,并试图在社区边界内用随机位置填充“Person”类型的数组。目前的人员类别如下:Processing 正在处理中填充对象数组-所有对象都相同,processing,Processing,我向你保证,我已经花了数小时在互联网上寻找解决方案,但我急需一双新的眼睛。我目前正在使用ArrayList,但尝试使用普通对象数组时也出现了同样的问题。在上下文中,我试图模拟一种流行病,并试图在社区边界内用随机位置填充“Person”类型的数组。目前的人员类别如下: private PVector pos; class Person{ public Person(float x, float y){ pos = new PVector(x, y); } void sho
private PVector pos;
class Person{
public Person(float x, float y){
pos = new PVector(x, y);
}
void show(){
ellipse(pos.x, pos.y, 10, 10);
}
float xPos(){
return pos.x;
}
}
private float size;
private PVector origin;
private ArrayList<Person> personArr;
class Community{
public Community(float x, float y, float size_){
origin = new PVector(x, y);
size = size_;
personArr = new ArrayList<Person>();
}
void show(){
noFill();
rect(origin.x, origin.y, size, size);
showPersons();
}
void setupCommunity(){
for(int i = 0; i < initialPopulation; i++){
float x1 = random(origin.x, origin.x + size);
float y1 = random(origin.y, origin.y + size);
Person person = new Person(x1, y1);
personArr.add(person);
}
}
void showPersons(){
for(int i = 0; i < personArr.size(); i++){
personArr.get(i).show();
}
}
}
我的社区课程如下:
private PVector pos;
class Person{
public Person(float x, float y){
pos = new PVector(x, y);
}
void show(){
ellipse(pos.x, pos.y, 10, 10);
}
float xPos(){
return pos.x;
}
}
private float size;
private PVector origin;
private ArrayList<Person> personArr;
class Community{
public Community(float x, float y, float size_){
origin = new PVector(x, y);
size = size_;
personArr = new ArrayList<Person>();
}
void show(){
noFill();
rect(origin.x, origin.y, size, size);
showPersons();
}
void setupCommunity(){
for(int i = 0; i < initialPopulation; i++){
float x1 = random(origin.x, origin.x + size);
float y1 = random(origin.y, origin.y + size);
Person person = new Person(x1, y1);
personArr.add(person);
}
}
void showPersons(){
for(int i = 0; i < personArr.size(); i++){
personArr.get(i).show();
}
}
}
这样做的目的是在社区矩形中显示Persons数组中的所有人,这看起来就像一个人,因为他们都在同一位置绘制。我知道这一点,因为在调试时,我看到在社区设置中添加personArr时,随机位置是不同的,但每次添加到数组列表时,整个列表都填充了完全相同的人。这导致了由最后一个创建的人组成的整个列表。如果有人知道原因,我将不胜感激!我只需要用个人对象填充列表!谢谢你(爸爸){
largestPop=人口。获取(i);
}
}
//用户界面代码
冲程(0,0,0);
线(origin.x,origin.y,origin.x+(int)长度,origin.y);
填充(0);
文本大小(15);
文本(“+largestPop,origin.x-60,origin.y-长度);
文本(“+dataLength,origin.x+length,origin.y+25);
填充(0);
文本大小(15);
文本(“时间”,(浮动)(origin.x+length/2-length/10),origin.y+30);
文本(yLable,origin.x-100,(float)(origin.y-length/2));
//计算图形点
线(origin.x,origin.y,origin.x,origin.y-(int)长度);
双Y间期=长度/(最大Pop);
双间隔=长度/数据长度;
对于(int i=0;i