所以基本上我有一个课程,我的程序,它正在为我的动画构建雨元素。我想知道如何使用数组从这个类创建50个对象,但同时交替对象中的数据。
void setup()
{
size (400,400);
noStroke();
rain = new Rain(20,random(0,10),3,15);
rain2 = new Rain(random(15,35), random(70,110),3,15);
}
void draw()
{
background(0);
rain.colour(125,155,100);
rain.display();
rain2.colour(125,155,100);
rain2.display();
}
这就是我用来制造2个雨滴的方法;正如我所说,如何让数组创建多个对象但是在构造函数中随机化数据?
这是构造函数引起你的疑惑,是的,我对类和java本身很新。
答案 0 :(得分:1)
使用其构造函数时,可以创建类的实例。您可以将实例存储在数组中。
所以你真的遇到了两个问题:创建50个类的实例,并将这些实例添加到数组中。
您可以使用 for循环解决第一个问题,并使用数组解决第二个问题:
Rain[] rainDrops = new Rain[50];
for(int i = 0; i < 50; i ++){
Rain rain = new Rain(random(100), random(100),3,15);
rainDrops[i] = rain;
}
请注意,您可能会将传递的值基于循环变量 random()
上的i
函数,具体取决于您想要发生的事情。
然后,您可以循环遍历该数组以绘制数组中的每个实例:
for(Rain r : rainDrops){
r.display();
}
如果您不想提前指定实例数,也可以使用 ArrayList 。
the Processing reference中的更多信息:
答案 1 :(得分:0)
50个对象:
Rain obj[]=new Rain[50];
void setup() {
循环迭代:for(int i; ...):exercise
构造
public class Rain {
public Rain(int a, int b, int c, int d)
{
// Do your random ... : exercice
}
画出:
void draw()
{
// iterate : exercice
答案 2 :(得分:0)
创建一个arraylist,然后使用随机生成的Rain对象填充列表。之后,遍历arraylist进行着色并显示它们。
ArrayList<Rain> rainObjects;
void setup()
{
size (400,400);
noStroke();
rainObjects = new ArrayList<Rain>();
for (int i=0; i<numberOfRainObjectsYouWant; i++)
{
// Create Rain object with random parameters
Rain rain = new Rain(/* Random parameters using the random() method */);
rainObjects.add(rain);
}
}
void draw()
{
background(0);
for (Rain rain : rainObjects)
{
rain.colour(125,155,100);
rain.display();
}
}