用户:
萌新大佬查看: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';//设置视角为跟随
萌新大佬注明一下
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
评论
萌新大佬entity.player.iswx=true;
await entity.player.dialog({
type:'text',
title:'卫星视角',
content:'正在观看卫星视角'
});
entity.player.iswx=false;//关闭卫星视角
entity.player.cameraMode='follow';//设置视角为跟随
使用方法
点赞0
评论