【发布时间】:2021-05-01 12:17:33
【问题描述】:
我重新发布此内容,因为我第一次发布此代码时代码不正确。我把这一切都归结为这一部分。看起来像这样。
但它应该看起来像这样。
任何帮助使窗户与建筑物对齐都会很棒,因为我对此很陌生。谢谢
int[] buildingHeights = new int[12];
int[] starXValues = new int[200];
int[] starYValues = new int[200];
void setup(){
size(600,450);
background(0);
}
void draw(){}
void drawAll(){
fill(255);
stroke(255);
drawSky();
drawBuildings();
}
void drawSky(){
stroke(255);
strokeWeight(1);
ellipse(500,-20,150,150);
for(int i = 0; i<starXValues.length; i++)
point(starXValues[i],starYValues[i]);
}
void drawBuildings(){
stroke(0);
for(int i = 0; i<buildingHeights.length;i++){
drawBuilding(i*50,height-buildingHeights[i]*50);
}
}
void drawBuilding(int x, int y){
fill(100);
rect(x,height,50,-y);
for(int i = 1; i < 7; i++){
for(int j = 1; j < height/y; j++){
int lights = (int)random(2);
if(lights==1)
fill(#ECFF27);
else
fill(255);
rect(x*i,y*i,5,10);
}
}
}
void randomize(){
for (int n = 0; n < starXValues.length; n++ )
starXValues[n] = (int)random(width);
for (int n = 0; n < starYValues.length; n++ )
starYValues[n] = (int)random(width);
for (int n = 0; n < buildingHeights.length; n++ )
buildingHeights[n] = (int)random(8);
}
void mousePressed(){
background(0);
randomize();
drawAll();
}
【问题讨论】:
-
图像看起来很有趣。确定窗口的大小(以像素为单位)。根据窗口和填充确定地板的高度(以像素为单位)。再次根据窗口和填充确定建筑物的宽度(以像素为单位)。绘制建筑物,为每个建筑物获取随机数量的楼层。绘制窗户,随机确定灯是否亮。
标签: java processing computer-science