扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 91|回复: 0

[转载发布] [ai笑传]之天体运行

[复制链接]
累计送礼:
0 个
累计收礼:
1 个
  • TA的每日心情
    开心
    5 天前
  • 签到天数: 193 天

    连续签到: 1 天

    [LV.7]常住居民III

    2608

    主题

    792

    回帖

    2万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    7
    卡币
    17654
    OK点
    16
    推广点
    0
    同能卷
    50
    积分
    21084

    灌水之王

    发表于 昨天 17: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. let temp = CelestialManager.getTemperature();
    5. // 获取当前光照 (W/m²)
    6. let lux = CelestialManager.getInsolation();
    复制代码


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


                本帖来自P1论坛作者清澈淌漾,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=498866  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2026-4-26 01:10 , Processed in 0.066071 second(s), 52 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表