猫史档案馆


卫星视角升级

用户:萌新大佬萌新大佬查看:0 回复:5 评论:0 创建时间:2023-05-20T20:39:40


不知道有没有人在256*256的图中用了吉吉的全图视角,但是如果过近就会看不见,过远就会因为特性而显示灰色的一片

所以我就带来了一个环绕卫星视角

希望大家喜欢

另外说明一下,这是我多年以前写的,有问题建议随时提出

var 喵=0;
var wz=0;
var j=0;
world.onTick(()=>{
    j++;
    if(j>360)j=j-360;//j指角度,每tick增加一度,大于360度时减掉360(相当于转了一圈)
    喵=Math.sin(j/180*Math.PI)*200+127.5;//计算方法详见下图
    wz=Math.cos(j/180*Math.PI)*200+127.5;
});
/*
            .
            |\
            |θ\     这里θ实际上就是转过的角度(也就是j)
            |  \
          z |   \  r=200
            |    \
            |     \
            |      \
            |_______\
                x
x=r·sin θ 
z=r·cos θ 
角度->弧度方法:弧度一圈2π,角度一圈360,换算公式:角度÷360×2π=弧度,化简得角度÷180×π=弧度
还要加127.5将圆心移到x:127.5,z:127.5的位置。
*/
world.onTick(()=>{
    world.querySelectorAll('player').forEach(entity=>{
        if(entity.player.is喵){//如果正在看卫星试图
            const lt=new Box3Vector3(127.5,8,127.5);//看向地图中央
            const le=new Box3Vector3(喵,100,wz);//从卫星位置看(喵,wz是啥看上面)
            const lu=new Box3Vector3(0,1,0);//正常视角
            entity.player.cameraMode=Box3CameraMode.FIXED;//固定相机
            entity.player.cameraPosition=le;//设置相机参数
            entity.player.cameraTarget=lt;
            entity.player.cameraUp=lu;
        }
    })
})

让玩家看卫星图就将entity.player.is喵设置为true

取消卫星时输入以下代码

entity.player.is喵=false;//关闭卫星视角
entity.player.cameraMode='follow';//设置视角为跟随


回复

上一页1 页 / 共 1下一页
骑士之刃骑士之刃

虽然没详细看,但是好像很牛,我dddddd

点赞0


评论


萌新大佬萌新大佬

注明一下

wx=Math.sin(j/180*Math.PI)*200+127.5;
wz=Math.cos(j/180*Math.PI)*200+127.5;
//这两句中的*200是卫星圆圈的半径
const le=new Box3Vectror3(wx,100,wz);
//这句中的100是相机的高度

点赞0


评论


小屑鹿小屑鹿

👀

点赞0


评论


萌新大佬萌新大佬

entity.player.iswx=true;
await entity.player.dialog({
    type:'text',
    title:'卫星视角',
    content:'正在观看卫星视角'
});
entity.player.iswx=false;//关闭卫星视角
entity.player.cameraMode='follow';//设置视角为跟随

使用方法

点赞0


评论


22why22why

👀

点赞0


评论