猫史档案馆


如何放置方块?(指的是在焦点放置,而不是坐标,教我获取焦点坐标也可以)

用户:ReijiReiji查看:9 回复:3 评论:9 创建时间:2020-10-31T14:45:38


求教学emotion_编程猫_搓头


回复

上一页1 页 / 共 1下一页
凉飘飘fly凉飘飘fly

岛2?岛3?说清楚啊

点赞0


评论


查理九世1查理九世1

想要吗?你得给我付50个金币!需要高级版切换的200个金币!在线等急。

点赞0


评论


查理九世1查理九世1

请付200个金币!

world.onPlayerJoin(({entity})=>{
    entity.player.fk=['grass','dirt','white','pumpkin','water','pumpkin_lantern','spiderweb','ledfloor01','macaroon','palace_lamp'];//这里是放置的方块
    entity.player.kf = 0;
    entity.player.canFly=true;
    entity.player.enableDamage = true;
    entity.player.showHealthBar = true;
    entity.player.cameraMode='fps'
})
world. onPress(({entity, button, raycast: { voxelIndex, normal} }) =>{//监听按下去
if (button == Box3ButtonType.ACTION1) { //如果是actionG,即电脑端的左键
voxels.setVoxel(voxelIndex.x, voxelIndex.y, voxelIndex.z,0); 
} else if (button == Box3ButtonType.ACTION0) { //如果是action1,对应电脑端右
let v = voxelIndex.add(normal); //用点击到的方块坐标加上法向量,得到邻边方块
if(entity.player.kf==0){
voxels.setVoxel(v.x, v.y, v.z, entity.player.fk[0]); //设置邻边方块为泥土,当然还可以自
}else if(entity.player.kf==1){
voxels.setVoxel(v.x, v.y, v.z, entity.player.fk[1]);
}else if(entity.player.kf==2){
voxels.setVoxel(v.x, v.y, v.z, entity.player.fk[2]);
}else if(entity.player.kf==3){
voxels.setVoxel(v.x, v.y, v.z, entity.player.fk[3]); 
}if(entity.player.kf==4){
voxels.setVoxel(v.x, v.y, v.z, entity.player.fk[4]);
}if(entity.player.kf==5){
voxels.setVoxel(v.x, v.y, v.z, entity.player.fk[5]);
}if(entity.player.kf==6){
voxels.setVoxel(v.x, v.y, v.z, entity.player.fk[6]);
}if(entity.player.kf==7){
voxels.setVoxel(v.x, v.y, v.z, entity.player.fk[7]);
}if(entity.player.kf==8){
voxels.setVoxel(v.x, v.y, v.z, entity.player.fk[8]);
}if(entity.player.kf==9){
voxels.setVoxel(v.x, v.y, v.z, entity.player.fk[9]);
}
}})
world.onPlayerJoin(({entity})=>{
entity.player.enable3DCursor=true;
})







//切换方块
// 先在场景中放置一个名称为 切换方块 的实体。
const npc = world.querySelector('#切换方块');
npc.enableInteract = true; // 允许进行互动
npc.interactRadius = 999;   // 实体的互动范围
npc.interactHint = npc.id; // 互动提示框显示实体的名称
npc.interactColor = new Box3RGBColor(1,0,1);  // 互动提示的文字颜色

// 玩家与实体进行交互时触发
npc.onInteract(async({entity}) => {
    const result = await entity.player.dialog({
        type: Box3DialogType.TEXT,   // 对话框的类型,TEXT是文本框。
        title: npc.id,               // 对话框标题为NPC名字,表示正在说话的是NPC

            type: Box3DialogType.SELECT,//对话类型是选项
        type: Box3DialogType.SELECT,
        title: "查理九世1出品",
        titleTextColor: new Box3RGBAColor(0, 0, 0, 1),
        titleBackgroundColor: new Box3RGBAColor(0.968, 0.702, 0.392, 1),
        content: `${entity.player.name},请选择你切换放置的方块`,
        options: ['喵地','泥土','白色','南瓜','水','南瓜灯','蜘蛛网','动态蓝灯','蛋糕','灯(古代版)'],   // 将提供玩家选择的选项放入数组里。
        contentTextColor:  new Box3RGBAColor(0, 0, 0, 1),
        contentBackgroundColor: new Box3RGBAColor(1, 1, 1, 1),
        lookEye: entity.position.add(entity.player.facingDirection.scale(5)),
        lookTarget: entity,
    });

    // 如果玩家点击了屏幕其他区域,取消了对话框。
    if(!result || result === null){ 
        entity.player.directMessage('你取消了切换方块');
        return; 
    }

    // 判断玩家选了什么选项。
    switch (result.index) {
        case 0:
            // 如果选择了第一项,即:'喵地'
            entity.player.kf=0;
            entity.player.directMessage('你切换了喵地方块');
            //应该是在这里后面加修改变量值
            

            break;
        case 1:
            // 如果选择了第二项,即:'泥土'
            entity.player.kf=1;
            entity.player.directMessage('你切换了泥土方块');
            break;
        case 2:
            // 如果选择了第三项,即:'白色'
            entity.player.kf=2;
            entity.player.directMessage('你切换了白色方块');
            //应该是在这里后面加修改变量值
            break;
        case 3:
            // 如果选择了第4项,即:'白色'
            entity.player.kf=3;
            entity.player.directMessage('你切换了南瓜方块');    
            break; 
        case 4:
            // 如果选择了第4项,即:'白色'
            entity.player.kf=4;
            entity.player.directMessage('你切换了水方块');     
            break;
        case 5:
            // 如果选择了第4项,即:'白色'
            entity.player.kf=5;
            entity.player.directMessage('你切换了南瓜灯方块');     
            break;
        case 6:
            // 如果选择了第4项,即:'白色'
            entity.player.kf=6;
            entity.player.directMessage('你切换了蜘蛛网方块');     
            break;  
        case 7:
            // 如果选择了第4项,即:'白色'
            entity.player.kf=7;
            entity.player.directMessage('你切换了动态蓝灯方块');     
            break;      
        case 8:
            // 如果选择了第4项,即:'白色'
            entity.player.kf=8;
            entity.player.directMessage('你切换了蛋糕方块');     
            break;        
        case 9:
            // 如果选择了第4项,即:'白色'
            entity.player.kf=9;
            entity.player.directMessage('你切换了灯方块');     
            break;        
            // 注意,使用 switch 分支的时候,不要漏了后面的 break; 
    }

});

点赞1


评论