Project1

标题: [ai笑传]之天体运行 [打印本页]

作者: 清澈淌漾    时间: 2026-4-25 17:49
标题: [ai笑传]之天体运行
本帖最后由 清澈淌漾 于 2026-4-25 18:31 编辑



一、 插件基础配置
安装插件:将 Limpid_CelestialSystem.js 放入 js/plugins 目录。
参数设置 (defaultBodies):
插件内置了太阳系核心天体(太阳、月球、八大行星)。
每个天体包含:mass(质量)、radius(半径)、x(轨道距离 AU)、vy(轨道速度标量)、obliquity(轴倾角)。
物理规则:插件基于 N-Body 模拟,月球会绕地球转,地球绕太阳转。
-----------------------------------------------------------------------------
二、 插件指令 (Plugin Commands)
在事件中使用“插件指令”来控制模拟器:
1. 呼出观测界面 (openSkyScene)
用途:打开实时星空地图。
内容:显示当前天体在天空中的位置、方位角、高度角,以及当前地点的光照和温度。

2. 设置观测点 (setObserver)
参数:
bodyName: 观测者所在的星球(如:地球)。
lat / lon: 纬度和经度。
效果:纬度会直接影响不同天体在天空中的高度(例如在北极点,极星永远在头顶)。

3. 设置时间流速 (setSpeed)
参数:speed (默认 60)。
效果:每秒钟流逝的游戏分钟数。若想实现实时系统,设为 1;若想让昼夜交替变快,设为 60 或更高。
-----------------------------------------------------------------------------
三、 战斗系统接入 (伤害公式)
插件定义了全局函数 celestialAlt('天体名称'),返回值为 0.0 到 1.0。
1.0:该天体处于玩家正上方(能量最强)。
0.0:该天体在地平线下(不可见)。

月亮之力        (a.mat * 4) * (1 + celestialAlt('月球'))        月亮越高伤害越高,最高 2 倍。
烈阳风暴        (a.mat * 10) * celestialAlt('太阳')        纯日光技能。晚上的伤害为 0。
木星加持        a.atk + (a.mat * celestialAlt('木星'))        根据木星高度提供额外的魔法伤害。


四、 脚本 (Script) 调用指南
如果你在“条件分支 -> 脚本”或“并列处理”中使用,请参考以下代码:
RUBY 代码复制
  1. // 获取太阳当前高度
  2. let sunAlt = celestialAlt('太阳');
  3.  
  4. // 获取当前温度
  5. let temp = CelestialManager.getTemperature();
  6.  
  7. // 获取当前光照 (W/m²)
  8. let lux = CelestialManager.getInsolation();


自动昼夜色调平滑过渡
RUBY 代码复制
  1. // 计算强度 (0.0 - 1.0)
  2. let intensity = Math.max(0, celestialAlt('太阳'));
  3.  
  4. // 映射色调:[红, 绿, 蓝, 灰]
  5. // 白天为 [0, 0, 0, 0],夜晚为 [-120, -120, -40, 100]
  6. let r = -120 * (1 - intensity);
  7. let g = -120 * (1 - intensity);
  8. let b = -40 * (1 - intensity);
  9. let gray = 100 * (1 - intensity);
  10. $gameScreen.startTint([r, g, b, gray], 60);



2是极坐标版

Limpid_CelestialSystem.zip

4.75 KB, 下载次数: 1

售价: 5 星屑  [记录]

Limpid_CelestialSystem2.zip

5.05 KB, 下载次数: 2

售价: 5 星屑  [记录]






欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1