【发布时间】:2016-02-11 21:18:35
【问题描述】:
我正在做一个带有处理的小空间模拟。在游戏中,您可以放大和缩小太阳系。为了得到一个整洁的视差效果,我想放大背景中随机再生的星空。到目前为止,我一切正常,但星空正在放大到左上角。我知道我必须将星星的原点转换为 (width/2,height/2),但我不知道该怎么做。
代码如下:
int starCount = 1200;
float[] xStar = new float[starCount];
float[] yStar = new float[starCount];
float starSpread;
float zoom;
void setup() {
size(1600, 900);
frameRate(30);
calcStars();
zoom = 1;
}
void draw() {
background(#000000);
for(int i=0;i<starCount;i++){
fill(#fff7e6);
noStroke();
ellipse(xStar[i]*starSpread,yStar[i]*starSpread,1,1);
}
starSpread = 1+zoom*0.001;
}
void calcStars(){
for(int i=0;i<starCount;i++){
xStar[i] = -random(0-width);
}
for(int i=0;i<starCount;i++){
yStar[i] = -random(0-height);
}
}
void mousePressed(){
zoom = zoom - 1;
}
(点击鼠标“缩小”!)
所以,我有 2 个数组,在窗口中有 1200 个随机坐标。 “缩放”是一个简单的浮动,可以用滑块控制。此变量控制所有内容的传播。它乘以 0.001,对我的星星产生轻微的影响。
现在有人可以帮我按照我的意愿进行缩放吗?
提前致谢!
【问题讨论】:
-
这段代码不能为我编译——你是不是少了几个右括号?
-
哦,抱歉,我在浏览器实现方面遇到了一些问题。这会奏效。但是由于缺少库,滑块不在其中。 (编辑帖子)
-
/edit 单击鼠标多次将“缩小”以了解我的意思
标签: random processing center translate