用户:
无极玄天查看:0 回复:3 评论:0 创建时间:2022-09-03T09:47:26
方法:左键将方块变为红方块,右键变为白方块
当一个白方块周围3*3的范围内有3个红方块,改方块变为红方块
当一个红方块周围3*3有2或3个红方块时,改红方块不变,反之则变为白方块
代码:
let v=voxels.setVoxel;for(let e=0;e<=128;e++)for(let o=0;o<=128;o++)v(e,9,o,"white");world.onPress(({button:e,raycast:o})=>{const l=o.voxelIndex;"action0"===e?voxels.setVoxel(l.x,l.y,l.z,"red"):"action1"===e&&voxels.setVoxel(l.x,l.y,l.z,"white")}),world.onPlayerJoin(({entity:e})=>{e.player.cameraMode=Box3CameraMode.FPS,e.player.canFly=!0}),world.onChat(({entity:e,message:o})=>{if("喵"===o){for(let e=0;e<=128;e++)for(let o=0;o<=128;o++){let l=0;"105"==voxels.getVoxelId(e,9,o)?("105"==voxels.getVoxelId(e+1,9,o)&&(l+=1),"105"==voxels.getVoxelId(e-1,9,o)&&(l+=1),"105"==voxels.getVoxelId(e,9,o+1)&&(l+=1),"105"==voxels.getVoxelId(e,9,o-1)&&(l+=1),"105"==voxels.getVoxelId(e+1,9,o+1)&&(l+=1),"105"==voxels.getVoxelId(e-1,9,o-1)&&(l+=1),"105"==voxels.getVoxelId(e-1,9,o+1)&&(l+=1),"105"==voxels.getVoxelId(e+1,9,o-1)&&(l+=1),(l>=4||l<=1)&&v(e,9,o,"white")):"177"==voxels.getVoxelId(e,9,o)&&("105"==voxels.getVoxelId(e+1,9,o)&&(l+=1),"105"==voxels.getVoxelId(e-1,9,o)&&(l+=1),"105"==voxels.getVoxelId(e,9,o+1)&&(l+=1),"105"==voxels.getVoxelId(e,9,o-1)&&(l+=1),"105"==voxels.getVoxelId(e+1,9,o+1)&&(l+=1),"105"==voxels.getVoxelId(e-1,9,o-1)&&(l+=1),"105"==voxels.getVoxelId(e-1,9,o+1)&&(l+=1),"105"==voxels.getVoxelId(e+1,9,o-1)&&(l+=1),3==l&&v(e,9,o,"red"))}world.say("生命迭代完毕")}});