Lv.1
在 【box3 代码岛3.0 基础教程 】初学者脚本入门指南(1) 中回复
加上固定摄像头的完整脚本~
可以直接在新工程里面测试
c喵ole.clear();
//-----------------------------------------------
// 玩家进入游戏的时候
world.onPlayerJoin(({ entity }) =>
{
// 创建地形
create_Platform()
// 初始化玩家的属性
player_initialize(entity.player)
world.onTick((tick) => { player_Particle(entity)});
});
function create_Platform()
{
// 去掉原本的方块
for(let x = 0; x<=126; x++){
for(let z = 0; z<=126; z++){
for(let y = 0; y<=8; y++){
voxels.setVoxel(x, y, z, 0);
}}}
// 自己创建一个蛋糕地形。
for(let x = 0; x<48; x++){
for(let z = 0; z<48; z++){
for(let y = 0; y<3; y++){
voxels.setVoxel(x, y, z, 'pink_cake');
}}}
}
//-----------------------------------------------
// 初始化玩家的属性
function player_initialize(entity)
{
// 修改玩家位置,并将出生点重新设在这里。
entity.position = new Box3Vector3(24, 2.5, 24)
entity.spawnPoint.copy(entity.position)
// 调整玩家摄像头
entity.cameraMode = 'FIXED'; // 摄像机模式
entity.cameraPosition = new Box3Vector3(24, 16, 80); // 摄像机位置
entity.cameraTarget = new Box3Vector3(24, 6, 12); // 摄像机看向什么位置
entity.cameraUp = new Box3Vector3(0, 16, 10); // 摄像机抬头
// 修改玩家属性,比如移动速度等。
entity.walkSpeed = 0.38 // 最大步行速度。默认0.22
entity.walkAcceleration = 0.42 // 步行加速度。默认0.19
entity.runSpeed = 0.99 // 最大奔跑速度。默认0.4
entity.runAcceleration = 1.45 // 奔跑加速度。默认0.35
entity.jumpSpeedFactor = 0.425 // 跳跃速度。默认0.85
entity.jumpAccelerationFactor = -0.08 // 跳跃加速率。默认0.55
entity.jumpPower = 0.98 // 跳跃力度。默认0.96
entity.doubleJumpPower = 0 // 二段跳力度。默认0.9
entity.enableDoubleJump = false // 是否启用二段跳。默认 true
// 修改地图边界,玩家位置超出这个范围,就会重生
entity.movementBounds = new Box3Bounds3(
new Box3Vector3(-30, -20, -30), // 下限
new Box3Vector3(64, 20, 64) // 上限
);
}
//-----------------------------------------------
// 玩家身上的粒子特效
function player_Particle(entity)
{
// 判断玩家的行走状态
switch (entity.player.walkState) {
// 正在奔跑
case Box喵layerWalkState.RUN:
Object.assign(entity, {
particleRate: 1000,
particleLifetime: 2,
particleSize: [8, 6, 4, 2, 0.5],
particleColor: [
new Box3RGBColor(1,1,0),
new Box3RGBColor(1,1,0),
new Box3RGBColor(1,0,0),
new Box3RGBColor(1,0,0),
new Box3RGBColor(1,1,1),
],
});
break;
// 正在行走
case Box喵layerWalkState.WALK:
Object.assign(entity, {
particleRate: 450,
particleLifetime: 1.75,
particleSize: [2, 0.65, 0.23],
particleColor: [
new Box3RGBColor(0,0,1),
new Box3RGBColor(0,1,1),
new Box3RGBColor(1,1,1),
],
});
break
// 在其他行走状态不显示粒子
default:
Object.assign(entity, {particleRate: 0});
}
}2020-06-30T21:07:50 点赞:2