- UID
- 54752
- UCC
-
- 声望
-
- 好评
-
- 贡献
-
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2013-2-27 23:39:38
|
显示全部楼层
风中的黑骑士 发表于 2013-2-27 21:25
maxStructSpace = 25.5 在map_generation.as里面,但是我见到过26的啊,不过改到100后进游戏确实是100了, ...
真情回馈呀
帮你找出陨石(小行星)的程序段了
// {{{ Asteroid belt
System@ RS_makeAsteroidBelt(Galaxy@ glx, vector pos) {
// Create the system
System@ sys;
sysDesc.Position = pos;
sysDesc.AutoStar = false;
float maxRad = randomf(3.f, 8.f) * RS_orbitRadiusFactor;
sysDesc.StartRadius = 3.f * maxRad;
@sys = @glx.createSystem(sysDesc);
// Create the asteroids制造陨石(小行星)
asteroid_desc.clear();
asteroid_desc.setFloat(strOrbMass, 0.1f); //Slow down the orbit
uint rocks = rand(40, 60) * round(maxRad / RS_orbitRadiusFactor);;
float radius; //自定义大小
for(uint i = 0; i < rocks; ++i) {
if (i == 0)
radius = 140.f;
else if (i % 10 == 0)
radius = randomf(30.f, 90.f);
else
radius = randomf(6.f, 30.f);
float oreVal = randomf(25000.f, 26000.f) * radius * radius;
asteroid_desc.setFloat(strMass, oreVal);
asteroid_desc.setFloat(strRadius, radius);
asteroid_desc.setFloat(strOrbYaw, randomf(twoPi));
asteroid_desc.setFloat(strOrbEcc, randomf(0.9f,1.1f));
asteroid_desc.setFloat(strOrbPitch, randomf(twoPi));
if (i == 0) {
asteroid_desc.setFloat(strOrbRad, 0.01f);
asteroid_desc.setFloat(strOrbMass, 0.0001f); //Slow down the orbit
asteroid_desc.setFloat(strOrbDays, 0.f);
}
else {
asteroid_desc.setFloat(strOrbRad, 160.f + randomf(1.2f) * (maxRad - 160.f)); //貌似数量函数.....,有待测试
asteroid_desc.setFloat(strOrbMass, 0.1f); //Slow down the orbit
asteroid_desc.setFloat(strOrbDays, randomf(3.f, 6.f));
}
Object@ asteroid = sys.makeOddity(asteroid_desc);
if (i == 0)
asteroid.setGlobalVisibility(true);
State@ ore = asteroid.getState(strOre);
ore.max = oreVal;
ore.val = oreVal;
State@ hp = asteroid.getState(strDmg);
hp.val = 0;
hp.max = oreVal;
}
return sys;
}
// }}}
红色数字部分需要花时间测试,如果你测试出哪个是关键数字,请也告诉我一声哈~ |
|