fix(game): 崩溃修复(卸载区块实体冻结)+ 立面光照、掉落可见、打击感、水下效果、空手拳头、血条左/饥饿右
- 崩溃(index out of range):实体所在区块卸载后失去碰撞支撑无限下坠到 负坐标,光查询越界 panic——WorldView 增 ChunkLoaded,未加载区块实体冻结; chunk 光查询加越界防御(双保险) - 立面光照:mesh 每面取**邻格**光照(原版光照模型)——此前用方块自身光照 (sky=0)导致悬崖/矿洞立面全黑(泥土竖向黑色根因) - 掉落可见:生成后 1 秒拾取延迟 + 图标加大到 0.45 - 打击感:攻击命中音(block.hit)+ 实体受击白闪(uTint)+ 手持挥动动画 - 水下效果:相机入水蓝色叠加(渲染.md §8 水体) - 空手显示肤色拳头(白羊毛 × 肤色 tint),持方块正常显示 - HUD 布局:血条左下、饥饿右下(经典布局)
This commit is contained in:
@@ -17,6 +17,7 @@ func (flatWorld) Solid(x, y, z int32) bool { return y < 63 }
|
||||
func (flatWorld) Block(x, y, z int32) block.State { return block.Air }
|
||||
func (flatWorld) SkyLight(x, y, z int32) uint8 { return 15 }
|
||||
func (flatWorld) BlockLight(x, y, z int32) uint8 { return 0 }
|
||||
func (flatWorld) ChunkLoaded(x, z int32) bool { return true }
|
||||
|
||||
// TestZombieChase 僵尸追玩家(僵尸与敌对生物.md §2)。
|
||||
func TestZombieChase(t *testing.T) {
|
||||
@@ -64,6 +65,8 @@ func TestAnimalWander(t *testing.T) {
|
||||
|
||||
// TestDropMerge 掉落物合并(实体系统.md §5)。
|
||||
func TestDropMerge(t *testing.T) {
|
||||
dropPickupDelay = 0 // 测试跳过拾取延迟
|
||||
defer func() { dropPickupDelay = time.Second }()
|
||||
m := NewManager()
|
||||
m.SpawnDrop("cobblestone", 5, 0.5, 64, 0.5)
|
||||
m.SpawnDrop("cobblestone", 5, 0.6, 64, 0.5) // 距离 <1 → 合并
|
||||
|
||||
Reference in New Issue
Block a user