示例#1
0
 //计算两次鼠标与坦克的相对方向的偏移量
 private void CalDeri(ZF.TankInfo _tankInfo)
 {
     // 复制类
     deltaAngles.move  = _tankInfo.tankOrder.move;
     deltaAngles.steer = _tankInfo.tankOrder.steer;
     deltaAngles.shoot = _tankInfo.tankOrder.shoot;
     //计算与上一次的偏差
     deltaAngles.direction.x = _tankInfo.tankOrder.direction.x - lastMove.x;
     deltaAngles.direction.y = _tankInfo.tankOrder.direction.y - lastMove.y;
     deltaAngles.direction.z = _tankInfo.tankOrder.direction.z - lastMove.z;
     //更新上一次相对坦克方向
     lastMove.x = _tankInfo.tankOrder.direction.x;
     lastMove.y = _tankInfo.tankOrder.direction.y;
     lastMove.z = _tankInfo.tankOrder.direction.z;
 }
示例#2
0
 private void WriteData(ZF.IFetchTankInfo tank)
 {
     ZF.TankInfo tankInfo = tank.FetchTankInfo();
     // 记录鼠标指向的方向是否有位移
     // 计算鼠标偏移量
     CalDeri(tankInfo);
     // 间隔时间大于0.1s可以记录一次状态
     if (Time.time - statusTime > 0.06)
     {
         manager.StoreStatus(tankInfo);
         statusTime = Time.time;
     }
     // 间隔时间大于0.02s且存在有效操作时记录操作
     if (Time.time - operationTime > 0.02 && CanRecOpera(deltaAngles))
     {
         manager.StoreOperation(deltaAngles);
         operationTime = Time.time;
     }
 }