猫史档案馆


XHXIAIEIN

XHXIAIEIN

Lv.1

获赞:0收藏:0浏览:16作品收藏:0
回复帖子评论
上一页1 页 / 共 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