Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Terraria (Godot 4.6 同人重制)

一个用 Godot 4.6 打造的 2D 泰拉瑞亚式沙盒游戏,全部使用项目内解包出的 泰拉瑞亚真实贴图素材(Terraria/images/,共 1 万余张原版精灵图)。

运行

  • 用 Godot 4.6.x 打开本目录(D:\GoDot\Program\5\terraria),按 F5 运行。
  • 本机 Godot 编辑器路径:D:\GoDot\Godot_v4.6.3-stable_win64.exe

无头自动测试(验证游戏逻辑,全部通过后自动退出):

& 'D:\GoDot\Godot_v4.6.3-stable_win64.exe' --headless --path . -- --autotest --seed=1337

操作

按键 功能
A D / ← → 左右移动
Space / W 跳跃(按住自动连跳)
鼠标左键 挖掘(镐)/ 攻击(武器,指向鼠标)
鼠标右键 放置方块 / 放置火把
1~0 / 滚轮 切换快捷栏(滚轮已支持)
C 打开/关闭合成界面
B 打开/关闭背包(40 格,点击格子与当前快捷栏槽交换)
F 交互:开宝箱 / 与 NPC 对话
H 快捷使用治疗药水
J 快捷使用魔力水晶
F1 快进到夜晚(测试 Boss 用)
Esc 退出

游戏内容

开局即全物品:出生时玩家已拥有游戏内全部物品(武器/工具 ×1,方块/材料/弹药 ×999, 药水/水晶 ×99,金币 99 白金)。快捷栏默认为: 镐 → 斧 → 天顶剑 → 泰拉之刃 → 木弓 → 太空枪 → 火把 → 治疗药水 → 可疑眼球 → 木箭, 其余在背包(B 打开,点击与快捷栏交换)。出生点在初始小屋门口,可直接走出去。

程序化地图(确定性种子生成 + 区块动态加载)

  • 区块 32×32 地块,玩家周围按需生成、远处自动卸载,已挖掘/放置的方块持久保存
  • 地表生态:森林(出生点,含初始小屋)、沙漠、腐化之地、丛林、雪原、海滩
  • 地下分层:泥土层 → 洞穴层(随机洞穴、宝箱、火把)→ 地狱(灰烬、狱炎石、火小鬼)
  • 47 种邻接掩码的草皮过渡贴图(从原版草方块帧程序化合成,含斜坡倒角与侧边垂草), 石块/沙/木等 16 种实体方块;树木、宝箱、火把等装饰
  • 昼夜循环:太阳/月亮轨迹、星空、云层视差、夜晚怪物与陨星坠落

敌人

绿史莱姆、史莱姆之母、僵尸、恶魔之眼(夜晚)、骷髅(洞穴)、噬魂怪(腐化)、 火小鬼(地狱)、克苏鲁之仆从(Boss 召唤物)

Boss:克苏鲁之眼

夜晚使用「可疑眼球」召唤(快捷栏第 9 格,按 F1 可快进到夜晚;白天使用会有提示且不消耗)。 一阶段悬停 + 三连冲撞;血量低于 50% 进入二阶段(加速冲锋、召唤仆从)。 掉落大量魔金矿石、金币,概率掉落喵喵剑。

城镇 NPC

  • 向导(开局即有):给出游戏提示
  • 商人(第 2 天入住):出售木箭 / 火把 / 治疗药水
  • 护士(第 3 天入住):1 金币回满血量

武器

铜短剑(初始)、木剑、铁阔剑、附魔剑、星星之怒(召唤落星)、泰拉之刃(挥出剑光)、 喵喵剑、木弓 + 木箭、太空枪(消耗魔力)以及——

★ 天顶剑(Zenith)

使用后向鼠标位置射出 6 把旋转剑刃,沿贝塞尔曲线汇聚、贯穿一切敌人,伤害 190。 合成路线(按 C 打开合成台):

附魔剑 + 10 金锭 + 15 魔金矿 → 泰拉之刃
泰拉之刃 + 10 陨星 + 30 魔金矿 + 5 金锭 → 天顶剑

材料来源:附魔剑(地下宝箱)、金矿(深处矿脉)、魔金矿(Boss 掉落/腐化矿脉)、 陨星(夜晚坠落)。

目录结构

terraria/
├── project.godot          # 项目配置(输入映射、自动加载)
├── scenes/main.tscn       # 主场景
├── scripts/
│   ├── autoload/game.gd   # 全局状态、昼夜时间
│   ├── data/              # 物品库、方块库
│   ├── world/             # 世界生成器、区块、TileSet 构建、昼夜环境
│   ├── player/player.gd   # 玩家
│   ├── entities/          # 敌人、Boss、城镇 NPC
│   ├── items/             # 掉落物、投射物、陨星
│   └── ui/hud.gd          # HUD(血条/快捷栏/合成/对话)
├── assets_gen/            # Python 生成的地块图集、火把、宝箱、光晕等
├── Terraria/images/       # 泰拉瑞亚原版解包贴图(约 1.2 万张)
└── tools/                 # 资产分析/图集生成脚本(Python + Pillow)

重新生成地块图集

修改 tools/gen_tiles.py 后:

python tools/gen_tiles.py
# 然后用 Godot 重新导入:
& 'D:\GoDot\Godot_v4.6.3-stable_win64.exe' --headless --path . --import

实现要点

  • TileSet 运行时构建:从生成的 18px 间距图集(16px 内容 + 1px 边缘出血)构建 TileSetAtlasSource,texture_origin=(1,1) 使相邻方块重叠 1px,还原泰拉瑞亚 原版的贴图出血效果,消除方块间透明角缝隙。
  • 草皮过渡:47 种合法 8 邻域掩码(Godot minimal autotile 规则),由原版草方块 帧合成:顶草带、侧面垂草、45° 倒角。
  • 确定性生成:同一 --seed 得到完全相同的世界(FastNoiseLite + 哈希随机)。
  • 动态加载:每帧按距离优先级生成 4 个区块,超半径卸载,编辑操作全局持久。

About

使用deepseek-harness+deepseek-v4-pro生成的Godot版泰拉瑞亚

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages