new Thread() {
public void run() {
while (true) {
//星星旋转
angleRotateCelestial += 0.08f;//0.08f
if (angleRotateCelestial >= 360) {
angleRotateCelestial = 0;
}
//方块旋转
angleRotateCube += 2f;//2f
if (angleRotateCube >= 360) {
angleRotateCube = 0;
}
//六角方块旋转
angleRotateCenter +=0.2f;//0.2f
if (angleRotateCenter >= 360) {
angleRotateCenter = 0;
}
//36个六角方块中随机旋转
for (int i = 0; i < X; i++) {
angleRotateSelf[i] += new Random().nextFloat() * 6;//6
if (angleRotateSelf[i] >= 360) {
angleRotateSelf[i] = 0;
}
}
switch (directionZ) {
case 0:
//近处旋转
if (-1f < offsetZ && offsetZ < 0) {//0
offsetZ += 0.006f;//0.006f
} else {
offsetZ +=0.08f;//0.08f
}
if (offsetZ > 0) {
directionZ = 1;//1
}
if (-25f < offsetZ && offsetZ < -13f) {
angleRotateZ += angleZSpan;
} else if (-13f <= offsetZ && offsetZ < -1f) {
angleRotateZ -= angleZSpan;
} else {
angleRotateZ = 0;
}
break;
//远处旋转
case 1:
offsetZ -= 0.08f;
if (offsetZ <= -25f) {
directionZ = 0;
}
if (-1f < offsetZ && offsetZ < 0) {
angleRotateZ = 0;
} else if (-13f <= offsetZ && offsetZ <= -1f) {
angleRotateZ -= angleZSpan;
} else {
angleRotateZ += angleZSpan;
}
break;
}
try {
Thread.sleep(10);//30
} catch (Exception e) {
// TODO: handle exception
}
}
}
}.start();