@anov/3d-ability 0.0.142 → 0.0.143
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/business/Animation/motion/index.js +56 -35
- package/dist/business/Animation/motion/index.js.map +1 -1
- package/dist/business/Animation/type.js +2 -2
- package/dist/business/Area/Fence/FenceBase.js +187 -146
- package/dist/business/Area/Fence/FenceBase.js.map +1 -1
- package/dist/business/Area/Fence/fence_base_01.js +112 -120
- package/dist/business/Area/Fence/fence_base_01.js.map +1 -1
- package/dist/business/Area/Fence/fence_feeting_01.js +130 -218
- package/dist/business/Area/Fence/fence_feeting_01.js.map +1 -1
- package/dist/business/Area/Fence/fence_roll_01.js +130 -140
- package/dist/business/Area/Fence/fence_roll_01.js.map +1 -1
- package/dist/business/Area/FillArea/FillAreaBase.js +126 -87
- package/dist/business/Area/FillArea/FillAreaBase.js.map +1 -1
- package/dist/business/Area/FillArea/fillArea_face_01.js +98 -72
- package/dist/business/Area/FillArea/fillArea_face_01.js.map +1 -1
- package/dist/business/Area/FillArea/fillArea_line_01.js +94 -66
- package/dist/business/Area/FillArea/fillArea_line_01.js.map +1 -1
- package/dist/business/Area/index.js +483 -267
- package/dist/business/Area/index.js.map +1 -1
- package/dist/business/Area/tool.js +26 -14
- package/dist/business/Area/tool.js.map +1 -1
- package/dist/business/Base/ObjectLayer.js +46 -21
- package/dist/business/Base/ObjectLayer.js.map +1 -1
- package/dist/business/Batch/index.js +234 -189
- package/dist/business/Batch/index.js.map +1 -1
- package/dist/business/Box/index.js +81 -52
- package/dist/business/Box/index.js.map +1 -1
- package/dist/business/Cylinder/index.js +79 -51
- package/dist/business/Cylinder/index.js.map +1 -1
- package/dist/business/Flyline/bubble/CircleBubble.js +9 -1
- package/dist/business/Flyline/bubble/CircleBubble.js.map +1 -1
- package/dist/business/Flyline/bubble/index.js +21 -7
- package/dist/business/Flyline/bubble/index.js.map +1 -1
- package/dist/business/Flyline/index.js +162 -96
- package/dist/business/Flyline/index.js.map +1 -1
- package/dist/business/Flyline/line/ArcLine.js +291 -208
- package/dist/business/Flyline/line/ArcLine.js.map +1 -1
- package/dist/business/Flyline/line/index.js +22 -8
- package/dist/business/Flyline/line/index.js.map +1 -1
- package/dist/business/HeatMap/HeatMap.js +467 -380
- package/dist/business/HeatMap/HeatMap.js.map +1 -1
- package/dist/business/HeatMap/core.js +525 -405
- package/dist/business/HeatMap/core.js.map +1 -1
- package/dist/business/HeatMap/shader.js +3 -69
- package/dist/business/HeatMap/shader.js.map +1 -1
- package/dist/business/InfoPanel/index.js +242 -201
- package/dist/business/InfoPanel/index.js.map +1 -1
- package/dist/business/Line/index.js +88 -55
- package/dist/business/Line/index.js.map +1 -1
- package/dist/business/Mark/KeyframeAnimation.js +176 -145
- package/dist/business/Mark/KeyframeAnimation.js.map +1 -1
- package/dist/business/Mark/index.js +294 -196
- package/dist/business/Mark/index.js.map +1 -1
- package/dist/business/Mark/shader/tanhao.js +3 -36
- package/dist/business/Mark/shader/tanhao.js.map +1 -1
- package/dist/business/Mark/type.js +1 -1
- package/dist/business/MaterialSwitch/MaterialSwitchSystem.js +551 -377
- package/dist/business/MaterialSwitch/MaterialSwitchSystem.js.map +1 -1
- package/dist/business/MaterialSwitch/inject.js +58 -92
- package/dist/business/MaterialSwitch/inject.js.map +1 -1
- package/dist/business/MaterialSwitch/shader/finalFade.js +2 -74
- package/dist/business/MaterialSwitch/shader/finalFade.js.map +1 -1
- package/dist/business/MaterialSwitch/shader/ground.js +16 -95
- package/dist/business/MaterialSwitch/shader/ground.js.map +1 -1
- package/dist/business/MaterialSwitch/shader/groundBase64.js +3 -9
- package/dist/business/MaterialSwitch/shader/groundBase64.js.map +1 -1
- package/dist/business/MaterialSwitch/shader/realFade.js +9 -48
- package/dist/business/MaterialSwitch/shader/realFade.js.map +1 -1
- package/dist/business/Plane/index.js +78 -51
- package/dist/business/Plane/index.js.map +1 -1
- package/dist/business/Poi/index.js +336 -248
- package/dist/business/Poi/index.js.map +1 -1
- package/dist/business/Poi/link/Cylinder.js +89 -56
- package/dist/business/Poi/link/Cylinder.js.map +1 -1
- package/dist/business/Poi/link/Pyramid.js +165 -104
- package/dist/business/Poi/link/Pyramid.js.map +1 -1
- package/dist/business/Poi/link/index.js +114 -54
- package/dist/business/Poi/link/index.js.map +1 -1
- package/dist/business/Poi/panel/index.js +373 -315
- package/dist/business/Poi/panel/index.js.map +1 -1
- package/dist/business/Poi/panel/utils.js +10 -5
- package/dist/business/Poi/panel/utils.js.map +1 -1
- package/dist/business/Poi/particle/DoubleCircle.js +107 -71
- package/dist/business/Poi/particle/DoubleCircle.js.map +1 -1
- package/dist/business/Poi/particle/DynamicCircle.js +111 -75
- package/dist/business/Poi/particle/DynamicCircle.js.map +1 -1
- package/dist/business/Poi/particle/SingleCircle.js +98 -62
- package/dist/business/Poi/particle/SingleCircle.js.map +1 -1
- package/dist/business/Poi/particle/index.js +117 -49
- package/dist/business/Poi/particle/index.js.map +1 -1
- package/dist/business/Poi/shader/circle.js +3 -31
- package/dist/business/Poi/shader/circle.js.map +1 -1
- package/dist/business/Poi/shader/cylinder.js +3 -37
- package/dist/business/Poi/shader/cylinder.js.map +1 -1
- package/dist/business/Poi/shader/doubleCircle.js +3 -55
- package/dist/business/Poi/shader/doubleCircle.js.map +1 -1
- package/dist/business/Poi/shader/dynamicCircle.js +3 -67
- package/dist/business/Poi/shader/dynamicCircle.js.map +1 -1
- package/dist/business/Poi/title/Border.js +27 -7
- package/dist/business/Poi/title/Border.js.map +1 -1
- package/dist/business/Poi/title/Ellipse.js +27 -7
- package/dist/business/Poi/title/Ellipse.js.map +1 -1
- package/dist/business/Poi/title/index.js +292 -208
- package/dist/business/Poi/title/index.js.map +1 -1
- package/dist/business/Poi/tools.js +17 -18
- package/dist/business/Poi/tools.js.map +1 -1
- package/dist/business/Sphere/index.js +72 -47
- package/dist/business/Sphere/index.js.map +1 -1
- package/dist/business/Spline/index.js +245 -190
- package/dist/business/Spline/index.js.map +1 -1
- package/dist/business/SplitBuilding/index.js +536 -327
- package/dist/business/SplitBuilding/index.js.map +1 -1
- package/dist/business/SplitBuilding/type.js +2 -2
- package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js +275 -218
- package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js.map +1 -1
- package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js +177 -132
- package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js.map +1 -1
- package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js +1 -51
- package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js.map +1 -1
- package/dist/business/TrafficComponents/StreamerTraffic/vertexShader.js +1 -6
- package/dist/business/TrafficComponents/StreamerTraffic/vertexShader.js.map +1 -1
- package/dist/business/TrafficComponents/base.js +55 -32
- package/dist/business/TrafficComponents/base.js.map +1 -1
- package/dist/business/TrafficComponents/utils.js +24 -25
- package/dist/business/TrafficComponents/utils.js.map +1 -1
- package/dist/business/Utils/Curve.js +56 -40
- package/dist/business/Utils/Curve.js.map +1 -1
- package/dist/business/Utils/constant.js +1 -1
- package/dist/business/Utils/constant.js.map +1 -1
- package/dist/business/Utils/defineProps.js +14 -13
- package/dist/business/Utils/defineProps.js.map +1 -1
- package/dist/business/Utils/round-curve.js +153 -127
- package/dist/business/Utils/round-curve.js.map +1 -1
- package/dist/business/VideoPanel/index.js +319 -258
- package/dist/business/VideoPanel/index.js.map +1 -1
- package/dist/business/Water/index.js +108 -78
- package/dist/business/Water/index.js.map +1 -1
- package/dist/business/Water/types.js +1 -1
- package/dist/business/Water/types.js.map +1 -1
- package/dist/core/Camera/PerspectiveCamera/CameraExpand.js +449 -383
- package/dist/core/Camera/PerspectiveCamera/CameraExpand.js.map +1 -1
- package/dist/core/Camera/PerspectiveCamera/FollowOrbitControls.js +142 -107
- package/dist/core/Camera/PerspectiveCamera/FollowOrbitControls.js.map +1 -1
- package/dist/core/Controls/FirstViewControl/index.js +96 -84
- package/dist/core/Controls/FirstViewControl/index.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/action/input.js +98 -77
- package/dist/core/Controls/ThirdViewControl/action/input.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/config/constants.js +1 -1
- package/dist/core/Controls/ThirdViewControl/config/constants.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/index.js +28 -19
- package/dist/core/Controls/ThirdViewControl/index.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/player/animation.js +155 -126
- package/dist/core/Controls/ThirdViewControl/player/animation.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/player/camera.js +63 -47
- package/dist/core/Controls/ThirdViewControl/player/camera.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/player/control.js +49 -39
- package/dist/core/Controls/ThirdViewControl/player/control.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/player.js +91 -66
- package/dist/core/Controls/ThirdViewControl/player.js.map +1 -1
- package/dist/core/Controls/base.js +30 -14
- package/dist/core/Controls/base.js.map +1 -1
- package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.js +131 -92
- package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.js.map +1 -1
- package/dist/core/Debug/PerformanceInfo/Performance.js +47 -22
- package/dist/core/Debug/PerformanceInfo/Performance.js.map +1 -1
- package/dist/core/Light/PointLight/PointLightExt.js +21 -4
- package/dist/core/Light/PointLight/PointLightExt.js.map +1 -1
- package/dist/core/Material/FinirMaterial/FinirMaterial.js +57 -37
- package/dist/core/Material/FinirMaterial/FinirMaterial.js.map +1 -1
- package/dist/core/Material/PristineGridMaterial/PristineGridMaterial.js +153 -116
- package/dist/core/Material/PristineGridMaterial/PristineGridMaterial.js.map +1 -1
- package/dist/core/Material/PristineGridMaterial/shader/fragment.js +1 -95
- package/dist/core/Material/PristineGridMaterial/shader/fragment.js.map +1 -1
- package/dist/core/Material/PristineGridMaterial/shader/vertex.js +1 -26
- package/dist/core/Material/PristineGridMaterial/shader/vertex.js.map +1 -1
- package/dist/core/Material/SurfaceMaterial/index.js +172 -76
- package/dist/core/Material/SurfaceMaterial/index.js.map +1 -1
- package/dist/core/Material/decorators.js +11 -6
- package/dist/core/Material/decorators.js.map +1 -1
- package/dist/core/PostEffects/addACESFilmicToneMappingPass.js +12 -16
- package/dist/core/PostEffects/addACESFilmicToneMappingPass.js.map +1 -1
- package/dist/core/PostEffects/addBrightnessContrastPass.js +13 -17
- package/dist/core/PostEffects/addBrightnessContrastPass.js.map +1 -1
- package/dist/core/PostEffects/bloomPass.js +10 -17
- package/dist/core/PostEffects/bloomPass.js.map +1 -1
- package/dist/core/PostEffects/bloomSelect.js +43 -60
- package/dist/core/PostEffects/bloomSelect.js.map +1 -1
- package/dist/core/PostEffects/colorifyPass.js +13 -17
- package/dist/core/PostEffects/colorifyPass.js.map +1 -1
- package/dist/core/PostEffects/index.js +22 -28
- package/dist/core/PostEffects/index.js.map +1 -1
- package/dist/core/PostEffects/outlinePass.js +50 -37
- package/dist/core/PostEffects/outlinePass.js.map +1 -1
- package/dist/core/PostEffects/postprocessing.js +12 -14
- package/dist/core/PostEffects/postprocessing.js.map +1 -1
- package/dist/core/PostEffects/saoPass.js +10 -15
- package/dist/core/PostEffects/saoPass.js.map +1 -1
- package/dist/core/PostEffects/shader/colorify.js +3 -22
- package/dist/core/PostEffects/shader/colorify.js.map +1 -1
- package/dist/core/PostEffects/shader/gammaCorrectionShader.js +3 -27
- package/dist/core/PostEffects/shader/gammaCorrectionShader.js.map +1 -1
- package/dist/core/PostEffects/shader/mapping.js +3 -66
- package/dist/core/PostEffects/shader/mapping.js.map +1 -1
- package/dist/core/PostEffects/shader/thermalMaging.js +3 -28
- package/dist/core/PostEffects/shader/thermalMaging.js.map +1 -1
- package/dist/core/SceneEffect/grow/grow.js +101 -85
- package/dist/core/SceneEffect/grow/grow.js.map +1 -1
- package/dist/core/SceneEffect/grow/style_down.js +77 -60
- package/dist/core/SceneEffect/grow/style_down.js.map +1 -1
- package/dist/core/SceneEffect/grow/style_up.js +81 -64
- package/dist/core/SceneEffect/grow/style_up.js.map +1 -1
- package/dist/core/SceneEffect/grow/type.js +2 -2
- package/dist/core/SceneEffect/grow/type.js.map +1 -1
- package/dist/core/WeatherSystem/DynamicWeatherSystem.js +76 -51
- package/dist/core/WeatherSystem/DynamicWeatherSystem.js.map +1 -1
- package/dist/core/WeatherSystem/hdr/index.js +105 -69
- package/dist/core/WeatherSystem/hdr/index.js.map +1 -1
- package/dist/core/WeatherSystem/index.js +124 -77
- package/dist/core/WeatherSystem/index.js.map +1 -1
- package/dist/core/WeatherSystem/objects/fog/index.js +80 -52
- package/dist/core/WeatherSystem/objects/fog/index.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/index.js +84 -72
- package/dist/core/WeatherSystem/objects/rain/index.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/lineRain.js +118 -88
- package/dist/core/WeatherSystem/objects/rain/lineRain.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/plane.js +146 -116
- package/dist/core/WeatherSystem/objects/rain/plane.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/point.js +148 -100
- package/dist/core/WeatherSystem/objects/rain/point.js.map +1 -1
- package/dist/core/WeatherSystem/objects/sky/cloud.js +104 -71
- package/dist/core/WeatherSystem/objects/sky/cloud.js.map +1 -1
- package/dist/core/WeatherSystem/objects/sky/index.js +84 -66
- package/dist/core/WeatherSystem/objects/sky/index.js.map +1 -1
- package/dist/core/WeatherSystem/objects/sky/outline.js +45 -25
- package/dist/core/WeatherSystem/objects/sky/outline.js.map +1 -1
- package/dist/core/WeatherSystem/shaders/cloud.js +3 -74
- package/dist/core/WeatherSystem/shaders/cloud.js.map +1 -1
- package/dist/core/WeatherSystem/shaders/fog.js +3 -103
- package/dist/core/WeatherSystem/shaders/fog.js.map +1 -1
- package/dist/core/WeatherSystem/shaders/rain.js +7 -206
- package/dist/core/WeatherSystem/shaders/rain.js.map +1 -1
- package/dist/core/WeatherSystem/shaders/sky.js +3 -87
- package/dist/core/WeatherSystem/shaders/sky.js.map +1 -1
- package/dist/core/WeatherSystem/sky/index.js +135 -104
- package/dist/core/WeatherSystem/sky/index.js.map +1 -1
- package/dist/core/WeatherSystem/utils/constant.js +38 -44
- package/dist/core/WeatherSystem/utils/constant.js.map +1 -1
- package/dist/core/WeatherSystem/utils/math.js +25 -18
- package/dist/core/WeatherSystem/utils/math.js.map +1 -1
- package/dist/core/WeatherSystem/utils/type.js +1 -1
- package/dist/core/WeatherSystem/utils/type.js.map +1 -1
- package/dist/core/WeatherSystem/weather/index.js +141 -96
- package/dist/core/WeatherSystem/weather/index.js.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,17 +1,22 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
3
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
4
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
1
5
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" ==
|
|
3
|
-
function _toPrimitive(t, r) { if ("object" !=
|
|
6
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
7
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
4
8
|
import StateMachine from 'javascript-state-machine';
|
|
5
9
|
|
|
6
10
|
// @ts-ignore
|
|
7
11
|
import StateMachineHistory from 'javascript-state-machine/lib/history';
|
|
8
12
|
import * as THREE from '@anov/3d-core';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
var MAX_FSM_HISTORY = 2;
|
|
14
|
+
var Character_animation = /*#__PURE__*/function () {
|
|
15
|
+
function Character_animation(_ref) {
|
|
16
|
+
var _this = this;
|
|
17
|
+
var animations = _ref.animations,
|
|
18
|
+
input = _ref.input;
|
|
19
|
+
_classCallCheck(this, Character_animation);
|
|
15
20
|
_defineProperty(this, "animations", void 0);
|
|
16
21
|
_defineProperty(this, "input", void 0);
|
|
17
22
|
_defineProperty(this, "preventAction", false);
|
|
@@ -38,13 +43,23 @@ export default class Character_animation {
|
|
|
38
43
|
}, {
|
|
39
44
|
name: 'trans',
|
|
40
45
|
from: '*',
|
|
41
|
-
to: s
|
|
46
|
+
to: function to(s) {
|
|
47
|
+
return s;
|
|
48
|
+
}
|
|
42
49
|
}],
|
|
43
50
|
methods: {
|
|
44
|
-
onPunch: ()
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
51
|
+
onPunch: function onPunch() {
|
|
52
|
+
return _this.handlePunch('hit');
|
|
53
|
+
},
|
|
54
|
+
onPunchSecond: function onPunchSecond() {
|
|
55
|
+
return _this.handlePunch('hitSecond');
|
|
56
|
+
},
|
|
57
|
+
onTrans: function onTrans() {
|
|
58
|
+
return _this.handleTrans();
|
|
59
|
+
},
|
|
60
|
+
onRoll: function onRoll() {
|
|
61
|
+
return _this.handleRoll();
|
|
62
|
+
}
|
|
48
63
|
},
|
|
49
64
|
// @ts-ignore
|
|
50
65
|
plugins: [new StateMachineHistory({
|
|
@@ -53,126 +68,140 @@ export default class Character_animation {
|
|
|
53
68
|
});
|
|
54
69
|
this.fsm.trans('idle');
|
|
55
70
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
71
|
+
_createClass(Character_animation, [{
|
|
72
|
+
key: "handleAnimation",
|
|
73
|
+
value: function handleAnimation() {
|
|
74
|
+
var keys = this.input.keys;
|
|
60
75
|
|
|
61
|
-
|
|
76
|
+
// used to have run left right
|
|
62
77
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
this.fsm.trans('idle');
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
handleLeftClick() {
|
|
84
|
-
const {
|
|
85
|
-
stateKey
|
|
86
|
-
} = this.getAction();
|
|
87
|
-
this.attackStack += this.attackStack !== 3 ? 1 : 0;
|
|
88
|
-
if (stateKey === 'hit') this.fsm.punchSecond();else this.fsm.punch();
|
|
89
|
-
setTimeout(() => {
|
|
90
|
-
this.attackStack -= this.attackStack !== 0 ? 1 : 0;
|
|
91
|
-
}, 1000);
|
|
92
|
-
}
|
|
93
|
-
handleRoll() {
|
|
94
|
-
this.preventAction = true;
|
|
95
|
-
const {
|
|
96
|
-
stateAction,
|
|
97
|
-
prevStateAction
|
|
98
|
-
} = this.getAction();
|
|
99
|
-
if (stateAction) {
|
|
100
|
-
const mixer = stateAction.getMixer();
|
|
101
|
-
stateAction.reset();
|
|
102
|
-
stateAction.enabled = true;
|
|
103
|
-
stateAction.clampWhenFinished = true;
|
|
104
|
-
stateAction.loop = THREE.LoopOnce;
|
|
105
|
-
stateAction.crossFadeFrom(prevStateAction, 0.1, true);
|
|
106
|
-
const onComplete = () => {
|
|
107
|
-
this.preventAction = false;
|
|
108
|
-
|
|
109
|
-
// fix error when holding space
|
|
78
|
+
if (this.preventAction) return;
|
|
79
|
+
if (keys.leftClick || this.attackStack > 0) {
|
|
80
|
+
this.handleLeftClick();
|
|
81
|
+
} else if (keys.space) {
|
|
82
|
+
this.fsm.trans('roll');
|
|
83
|
+
} else if (keys.left) {
|
|
84
|
+
// this.fsm.trans("leftRun");
|
|
85
|
+
this.fsm.trans('running');
|
|
86
|
+
} else if (keys.right) {
|
|
87
|
+
// this.fsm.trans("rightRun");
|
|
88
|
+
this.fsm.trans('running');
|
|
89
|
+
} else if (keys.forward) {
|
|
90
|
+
this.fsm.trans('running');
|
|
91
|
+
} else if (keys.backward) {
|
|
92
|
+
// this.fsm.trans("runningBack");
|
|
93
|
+
this.fsm.trans('running');
|
|
94
|
+
} else {
|
|
110
95
|
this.fsm.trans('idle');
|
|
111
|
-
|
|
112
|
-
};
|
|
113
|
-
mixer.addEventListener('finished', onComplete);
|
|
114
|
-
stateAction.play();
|
|
96
|
+
}
|
|
115
97
|
}
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
stateKey
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
stateAction.reset();
|
|
128
|
-
stateAction.clampWhenFinished = true;
|
|
129
|
-
stateAction.loop = THREE.LoopOnce;
|
|
130
|
-
stateAction.crossFadeFrom(prevStateAction, 0.1, true);
|
|
131
|
-
const onComplete = () => {
|
|
132
|
-
this.preventAction = false;
|
|
133
|
-
this.attackStack -= this.attackStack !== 0 ? 1 : 0;
|
|
134
|
-
mixer.removeEventListener('finished', onComplete);
|
|
135
|
-
};
|
|
136
|
-
mixer.addEventListener('finished', onComplete);
|
|
137
|
-
stateAction.play();
|
|
98
|
+
}, {
|
|
99
|
+
key: "handleLeftClick",
|
|
100
|
+
value: function handleLeftClick() {
|
|
101
|
+
var _this2 = this;
|
|
102
|
+
var _this$getAction = this.getAction(),
|
|
103
|
+
stateKey = _this$getAction.stateKey;
|
|
104
|
+
this.attackStack += this.attackStack !== 3 ? 1 : 0;
|
|
105
|
+
if (stateKey === 'hit') this.fsm.punchSecond();else this.fsm.punch();
|
|
106
|
+
setTimeout(function () {
|
|
107
|
+
_this2.attackStack -= _this2.attackStack !== 0 ? 1 : 0;
|
|
108
|
+
}, 1000);
|
|
138
109
|
}
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
if (prevStateKey !== stateKey && !stateAction.isRunning()) {
|
|
151
|
-
stateAction.time = 0.0;
|
|
110
|
+
}, {
|
|
111
|
+
key: "handleRoll",
|
|
112
|
+
value: function handleRoll() {
|
|
113
|
+
var _this3 = this;
|
|
114
|
+
this.preventAction = true;
|
|
115
|
+
var _this$getAction2 = this.getAction(),
|
|
116
|
+
stateAction = _this$getAction2.stateAction,
|
|
117
|
+
prevStateAction = _this$getAction2.prevStateAction;
|
|
118
|
+
if (stateAction) {
|
|
119
|
+
var mixer = stateAction.getMixer();
|
|
120
|
+
stateAction.reset();
|
|
152
121
|
stateAction.enabled = true;
|
|
153
|
-
stateAction.
|
|
154
|
-
stateAction.
|
|
155
|
-
stateAction.crossFadeFrom(prevStateAction,
|
|
122
|
+
stateAction.clampWhenFinished = true;
|
|
123
|
+
stateAction.loop = THREE.LoopOnce;
|
|
124
|
+
stateAction.crossFadeFrom(prevStateAction, 0.1, true);
|
|
125
|
+
var onComplete = function onComplete() {
|
|
126
|
+
_this3.preventAction = false;
|
|
127
|
+
|
|
128
|
+
// fix error when holding space
|
|
129
|
+
_this3.fsm.trans('idle');
|
|
130
|
+
mixer.removeEventListener('finished', onComplete);
|
|
131
|
+
};
|
|
132
|
+
mixer.addEventListener('finished', onComplete);
|
|
156
133
|
stateAction.play();
|
|
157
134
|
}
|
|
158
|
-
} else {
|
|
159
|
-
stateAction === null || stateAction === void 0 || stateAction.play();
|
|
160
135
|
}
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
prevStateAction
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
136
|
+
}, {
|
|
137
|
+
key: "handlePunch",
|
|
138
|
+
value: function handlePunch(state) {
|
|
139
|
+
var _this4 = this;
|
|
140
|
+
this.preventAction = true;
|
|
141
|
+
var _this$getAction3 = this.getAction(state),
|
|
142
|
+
stateAction = _this$getAction3.stateAction,
|
|
143
|
+
prevStateAction = _this$getAction3.prevStateAction,
|
|
144
|
+
prevStateKey = _this$getAction3.prevStateKey,
|
|
145
|
+
stateKey = _this$getAction3.stateKey;
|
|
146
|
+
if (stateAction && prevStateAction) {
|
|
147
|
+
var mixer = stateAction.getMixer();
|
|
148
|
+
stateAction.reset();
|
|
149
|
+
stateAction.clampWhenFinished = true;
|
|
150
|
+
stateAction.loop = THREE.LoopOnce;
|
|
151
|
+
stateAction.crossFadeFrom(prevStateAction, 0.1, true);
|
|
152
|
+
var onComplete = function onComplete() {
|
|
153
|
+
_this4.preventAction = false;
|
|
154
|
+
_this4.attackStack -= _this4.attackStack !== 0 ? 1 : 0;
|
|
155
|
+
mixer.removeEventListener('finished', onComplete);
|
|
156
|
+
};
|
|
157
|
+
mixer.addEventListener('finished', onComplete);
|
|
158
|
+
stateAction.play();
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}, {
|
|
162
|
+
key: "handleTrans",
|
|
163
|
+
value: function handleTrans() {
|
|
164
|
+
var _this$getAction4 = this.getAction(),
|
|
165
|
+
stateKey = _this$getAction4.stateKey,
|
|
166
|
+
stateAction = _this$getAction4.stateAction,
|
|
167
|
+
prevStateKey = _this$getAction4.prevStateKey,
|
|
168
|
+
prevStateAction = _this$getAction4.prevStateAction;
|
|
169
|
+
var crossNumber = 0.3;
|
|
170
|
+
if (prevStateKey === 'running' && prevStateAction) crossNumber = 0.2;
|
|
171
|
+
if (prevStateAction && stateAction) {
|
|
172
|
+
if (prevStateKey !== stateKey && !stateAction.isRunning()) {
|
|
173
|
+
stateAction.time = 0.0;
|
|
174
|
+
stateAction.enabled = true;
|
|
175
|
+
stateAction.setEffectiveTimeScale(1.0);
|
|
176
|
+
stateAction.setEffectiveWeight(1.0);
|
|
177
|
+
stateAction.crossFadeFrom(prevStateAction, crossNumber, true);
|
|
178
|
+
stateAction.play();
|
|
179
|
+
}
|
|
180
|
+
} else {
|
|
181
|
+
stateAction === null || stateAction === void 0 || stateAction.play();
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}, {
|
|
185
|
+
key: "getAction",
|
|
186
|
+
value: function getAction(state) {
|
|
187
|
+
var stateKey = state || this.fsm.state;
|
|
188
|
+
var stateAction = this.animations[stateKey];
|
|
189
|
+
var prevStateKey = this.fsm.history[this.fsm.history.length - MAX_FSM_HISTORY];
|
|
190
|
+
var prevStateAction = this.animations[prevStateKey];
|
|
191
|
+
return {
|
|
192
|
+
stateKey: stateKey,
|
|
193
|
+
stateAction: stateAction,
|
|
194
|
+
prevStateKey: prevStateKey,
|
|
195
|
+
prevStateAction: prevStateAction
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
}, {
|
|
199
|
+
key: "update",
|
|
200
|
+
value: function update(deltaT) {
|
|
201
|
+
this.handleAnimation();
|
|
202
|
+
}
|
|
203
|
+
}]);
|
|
204
|
+
return Character_animation;
|
|
205
|
+
}();
|
|
206
|
+
export { Character_animation as default };
|
|
178
207
|
//# sourceMappingURL=animation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StateMachine","StateMachineHistory","THREE","MAX_FSM_HISTORY","Character_animation","constructor","animations","input","_defineProperty","fsm","init","transitions","name","from","to","s","methods","onPunch","handlePunch","onPunchSecond","onTrans","handleTrans","onRoll","handleRoll","plugins","max","trans","handleAnimation","keys","preventAction","leftClick","attackStack","handleLeftClick","space","left","right","forward","backward","stateKey","getAction","punchSecond","punch","setTimeout","stateAction","prevStateAction","mixer","getMixer","reset","enabled","clampWhenFinished","loop","LoopOnce","crossFadeFrom","onComplete","removeEventListener","addEventListener","play","state","prevStateKey","crossNumber","isRunning","time","setEffectiveTimeScale","setEffectiveWeight","history","length","update","deltaT"],"sources":["../../../../../src/core/Controls/ThirdViewControl/player/animation.ts"],"sourcesContent":["import StateMachine from 'javascript-state-machine'\n\n// @ts-ignore\nimport StateMachineHistory from 'javascript-state-machine/lib/history'\nimport * as THREE from '@anov/3d-core'\nimport type { AnimationAction } from '@anov/3d-core'\nimport type BasicCharacterControllerInput from '../action/input'\nimport type { CharacterAnimationType } from '../type'\n\ninterface PropsType {\n animations: CharacterAnimationType\n input: BasicCharacterControllerInput\n}\n\nconst MAX_FSM_HISTORY = 2\n\nexport default class Character_animation {\n animations: CharacterAnimationType\n input: BasicCharacterControllerInput\n preventAction = false\n fsm: any\n attackStack = 0\n\n constructor({ animations, input }: PropsType) {\n this.input = input\n this.animations = animations\n\n // @ts-ignore\n this.fsm = new StateMachine({\n init: 'idle',\n transitions: [\n { name: 'punch', from: '*', to: 'hit' },\n { name: 'punchSecond', from: '*', to: 'hitSecond' },\n { name: 'roll', from: '*', to: 'roll' },\n { name: 'trans', from: '*', to: (s: string) => s },\n ],\n methods: {\n onPunch: () => this.handlePunch('hit'),\n onPunchSecond: () => this.handlePunch('hitSecond'),\n onTrans: () => this.handleTrans(),\n onRoll: () => this.handleRoll(),\n },\n // @ts-ignore\n plugins: [new StateMachineHistory({ max: MAX_FSM_HISTORY })],\n })\n\n this.fsm.trans('idle')\n }\n\n handleAnimation() {\n const { keys } = this.input\n\n // used to have run left right\n\n if (this.preventAction)\n return\n if (keys.leftClick || this.attackStack > 0) {\n this.handleLeftClick()\n }\n else if (keys.space) {\n this.fsm.trans('roll')\n }\n else if (keys.left) {\n // this.fsm.trans(\"leftRun\");\n this.fsm.trans('running')\n }\n else if (keys.right) {\n // this.fsm.trans(\"rightRun\");\n this.fsm.trans('running')\n }\n else if (keys.forward) {\n this.fsm.trans('running')\n }\n else if (keys.backward) {\n // this.fsm.trans(\"runningBack\");\n this.fsm.trans('running')\n }\n else {\n this.fsm.trans('idle')\n }\n }\n\n handleLeftClick() {\n const { stateKey } = this.getAction()\n this.attackStack += this.attackStack !== 3 ? 1 : 0\n\n if (stateKey === 'hit')\n this.fsm.punchSecond()\n else this.fsm.punch()\n\n setTimeout(() => {\n this.attackStack -= this.attackStack !== 0 ? 1 : 0\n }, 1000)\n }\n\n handleRoll() {\n this.preventAction = true\n const { stateAction, prevStateAction } = this.getAction()\n\n if (stateAction) {\n const mixer = stateAction.getMixer()\n\n stateAction.reset()\n stateAction.enabled = true\n stateAction.clampWhenFinished = true\n stateAction.loop = THREE.LoopOnce\n\n stateAction.crossFadeFrom(prevStateAction as AnimationAction, 0.1, true)\n\n const onComplete = () => {\n this.preventAction = false\n\n // fix error when holding space\n this.fsm.trans('idle')\n\n mixer.removeEventListener('finished', onComplete)\n }\n\n mixer.addEventListener('finished', onComplete)\n\n stateAction.play()\n }\n }\n\n handlePunch(state: 'hit' | 'hitSecond') {\n this.preventAction = true\n const { stateAction, prevStateAction, prevStateKey, stateKey }\n = this.getAction(state)\n\n if (stateAction && prevStateAction) {\n const mixer = stateAction.getMixer()\n\n stateAction.reset()\n stateAction.clampWhenFinished = true\n stateAction.loop = THREE.LoopOnce\n\n stateAction.crossFadeFrom(prevStateAction as AnimationAction, 0.1, true)\n\n const onComplete = () => {\n this.preventAction = false\n\n this.attackStack -= this.attackStack !== 0 ? 1 : 0\n mixer.removeEventListener('finished', onComplete)\n }\n\n mixer.addEventListener('finished', onComplete)\n\n stateAction.play()\n }\n }\n\n handleTrans() {\n const { stateKey, stateAction, prevStateKey, prevStateAction }\n = this.getAction()\n\n let crossNumber = 0.3\n\n if (prevStateKey === 'running' && prevStateAction)\n crossNumber = 0.2\n\n if (prevStateAction && stateAction) {\n if (prevStateKey !== stateKey && !stateAction.isRunning()) {\n stateAction.time = 0.0\n stateAction.enabled = true\n stateAction.setEffectiveTimeScale(1.0)\n stateAction.setEffectiveWeight(1.0)\n\n stateAction.crossFadeFrom(\n prevStateAction as AnimationAction,\n crossNumber,\n true,\n )\n stateAction.play()\n }\n }\n else {\n stateAction?.play()\n }\n }\n\n getAction(state?: keyof typeof this.animations) {\n const stateKey: keyof typeof this.animations = state || this.fsm.state\n const stateAction = this.animations[stateKey]\n\n const prevStateKey: keyof typeof this.animations\n = this.fsm.history[this.fsm.history.length - MAX_FSM_HISTORY]\n const prevStateAction = this.animations[prevStateKey]\n\n return {\n stateKey,\n stateAction,\n prevStateKey,\n prevStateAction,\n }\n }\n\n update(deltaT: number) {\n this.handleAnimation()\n }\n}\n"],"mappings":";;;AAAA,OAAOA,YAAY,MAAM,0BAA0B;;AAEnD;AACA,OAAOC,mBAAmB,MAAM,sCAAsC;AACtE,OAAO,KAAKC,KAAK,MAAM,eAAe;AAUtC,MAAMC,eAAe,GAAG,CAAC;AAEzB,eAAe,MAAMC,mBAAmB,CAAC;EAOvCC,WAAWA,CAAC;IAAEC,UAAU;IAAEC;EAAiB,CAAC,EAAE;IAAAC,eAAA;IAAAA,eAAA;IAAAA,eAAA,wBAJ9B,KAAK;IAAAA,eAAA;IAAAA,eAAA,sBAEP,CAAC;IAGb,IAAI,CAACD,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACD,UAAU,GAAGA,UAAU;;IAE5B;IACA,IAAI,CAACG,GAAG,GAAG,IAAIT,YAAY,CAAC;MAC1BU,IAAI,EAAE,MAAM;MACZC,WAAW,EAAE,CACX;QAAEC,IAAI,EAAE,OAAO;QAAEC,IAAI,EAAE,GAAG;QAAEC,EAAE,EAAE;MAAM,CAAC,EACvC;QAAEF,IAAI,EAAE,aAAa;QAAEC,IAAI,EAAE,GAAG;QAAEC,EAAE,EAAE;MAAY,CAAC,EACnD;QAAEF,IAAI,EAAE,MAAM;QAAEC,IAAI,EAAE,GAAG;QAAEC,EAAE,EAAE;MAAO,CAAC,EACvC;QAAEF,IAAI,EAAE,OAAO;QAAEC,IAAI,EAAE,GAAG;QAAEC,EAAE,EAAGC,CAAS,IAAKA;MAAE,CAAC,CACnD;MACDC,OAAO,EAAE;QACPC,OAAO,EAAEA,CAAA,KAAM,IAAI,CAACC,WAAW,CAAC,KAAK,CAAC;QACtCC,aAAa,EAAEA,CAAA,KAAM,IAAI,CAACD,WAAW,CAAC,WAAW,CAAC;QAClDE,OAAO,EAAEA,CAAA,KAAM,IAAI,CAACC,WAAW,CAAC,CAAC;QACjCC,MAAM,EAAEA,CAAA,KAAM,IAAI,CAACC,UAAU,CAAC;MAChC,CAAC;MACD;MACAC,OAAO,EAAE,CAAC,IAAIvB,mBAAmB,CAAC;QAAEwB,GAAG,EAAEtB;MAAgB,CAAC,CAAC;IAC7D,CAAC,CAAC;IAEF,IAAI,CAACM,GAAG,CAACiB,KAAK,CAAC,MAAM,CAAC;EACxB;EAEAC,eAAeA,CAAA,EAAG;IAChB,MAAM;MAAEC;IAAK,CAAC,GAAG,IAAI,CAACrB,KAAK;;IAE3B;;IAEA,IAAI,IAAI,CAACsB,aAAa,EACpB;IACF,IAAID,IAAI,CAACE,SAAS,IAAI,IAAI,CAACC,WAAW,GAAG,CAAC,EAAE;MAC1C,IAAI,CAACC,eAAe,CAAC,CAAC;IACxB,CAAC,MACI,IAAIJ,IAAI,CAACK,KAAK,EAAE;MACnB,IAAI,CAACxB,GAAG,CAACiB,KAAK,CAAC,MAAM,CAAC;IACxB,CAAC,MACI,IAAIE,IAAI,CAACM,IAAI,EAAE;MAClB;MACA,IAAI,CAACzB,GAAG,CAACiB,KAAK,CAAC,SAAS,CAAC;IAC3B,CAAC,MACI,IAAIE,IAAI,CAACO,KAAK,EAAE;MACnB;MACA,IAAI,CAAC1B,GAAG,CAACiB,KAAK,CAAC,SAAS,CAAC;IAC3B,CAAC,MACI,IAAIE,IAAI,CAACQ,OAAO,EAAE;MACrB,IAAI,CAAC3B,GAAG,CAACiB,KAAK,CAAC,SAAS,CAAC;IAC3B,CAAC,MACI,IAAIE,IAAI,CAACS,QAAQ,EAAE;MACtB;MACA,IAAI,CAAC5B,GAAG,CAACiB,KAAK,CAAC,SAAS,CAAC;IAC3B,CAAC,MACI;MACH,IAAI,CAACjB,GAAG,CAACiB,KAAK,CAAC,MAAM,CAAC;IACxB;EACF;EAEAM,eAAeA,CAAA,EAAG;IAChB,MAAM;MAAEM;IAAS,CAAC,GAAG,IAAI,CAACC,SAAS,CAAC,CAAC;IACrC,IAAI,CAACR,WAAW,IAAI,IAAI,CAACA,WAAW,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;IAElD,IAAIO,QAAQ,KAAK,KAAK,EACpB,IAAI,CAAC7B,GAAG,CAAC+B,WAAW,CAAC,CAAC,MACnB,IAAI,CAAC/B,GAAG,CAACgC,KAAK,CAAC,CAAC;IAErBC,UAAU,CAAC,MAAM;MACf,IAAI,CAACX,WAAW,IAAI,IAAI,CAACA,WAAW,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;IACpD,CAAC,EAAE,IAAI,CAAC;EACV;EAEAR,UAAUA,CAAA,EAAG;IACX,IAAI,CAACM,aAAa,GAAG,IAAI;IACzB,MAAM;MAAEc,WAAW;MAAEC;IAAgB,CAAC,GAAG,IAAI,CAACL,SAAS,CAAC,CAAC;IAEzD,IAAII,WAAW,EAAE;MACf,MAAME,KAAK,GAAGF,WAAW,CAACG,QAAQ,CAAC,CAAC;MAEpCH,WAAW,CAACI,KAAK,CAAC,CAAC;MACnBJ,WAAW,CAACK,OAAO,GAAG,IAAI;MAC1BL,WAAW,CAACM,iBAAiB,GAAG,IAAI;MACpCN,WAAW,CAACO,IAAI,GAAGhD,KAAK,CAACiD,QAAQ;MAEjCR,WAAW,CAACS,aAAa,CAACR,eAAe,EAAqB,GAAG,EAAE,IAAI,CAAC;MAExE,MAAMS,UAAU,GAAGA,CAAA,KAAM;QACvB,IAAI,CAACxB,aAAa,GAAG,KAAK;;QAE1B;QACA,IAAI,CAACpB,GAAG,CAACiB,KAAK,CAAC,MAAM,CAAC;QAEtBmB,KAAK,CAACS,mBAAmB,CAAC,UAAU,EAAED,UAAU,CAAC;MACnD,CAAC;MAEDR,KAAK,CAACU,gBAAgB,CAAC,UAAU,EAAEF,UAAU,CAAC;MAE9CV,WAAW,CAACa,IAAI,CAAC,CAAC;IACpB;EACF;EAEAtC,WAAWA,CAACuC,KAA0B,EAAE;IACtC,IAAI,CAAC5B,aAAa,GAAG,IAAI;IACzB,MAAM;MAAEc,WAAW;MAAEC,eAAe;MAAEc,YAAY;MAAEpB;IAAS,CAAC,GACpD,IAAI,CAACC,SAAS,CAACkB,KAAK,CAAC;IAE/B,IAAId,WAAW,IAAIC,eAAe,EAAE;MAClC,MAAMC,KAAK,GAAGF,WAAW,CAACG,QAAQ,CAAC,CAAC;MAEpCH,WAAW,CAACI,KAAK,CAAC,CAAC;MACnBJ,WAAW,CAACM,iBAAiB,GAAG,IAAI;MACpCN,WAAW,CAACO,IAAI,GAAGhD,KAAK,CAACiD,QAAQ;MAEjCR,WAAW,CAACS,aAAa,CAACR,eAAe,EAAqB,GAAG,EAAE,IAAI,CAAC;MAExE,MAAMS,UAAU,GAAGA,CAAA,KAAM;QACvB,IAAI,CAACxB,aAAa,GAAG,KAAK;QAE1B,IAAI,CAACE,WAAW,IAAI,IAAI,CAACA,WAAW,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;QAClDc,KAAK,CAACS,mBAAmB,CAAC,UAAU,EAAED,UAAU,CAAC;MACnD,CAAC;MAEDR,KAAK,CAACU,gBAAgB,CAAC,UAAU,EAAEF,UAAU,CAAC;MAE9CV,WAAW,CAACa,IAAI,CAAC,CAAC;IACpB;EACF;EAEAnC,WAAWA,CAAA,EAAG;IACZ,MAAM;MAAEiB,QAAQ;MAAEK,WAAW;MAAEe,YAAY;MAAEd;IAAgB,CAAC,GACpD,IAAI,CAACL,SAAS,CAAC,CAAC;IAE1B,IAAIoB,WAAW,GAAG,GAAG;IAErB,IAAID,YAAY,KAAK,SAAS,IAAId,eAAe,EAC/Ce,WAAW,GAAG,GAAG;IAEnB,IAAIf,eAAe,IAAID,WAAW,EAAE;MAClC,IAAIe,YAAY,KAAKpB,QAAQ,IAAI,CAACK,WAAW,CAACiB,SAAS,CAAC,CAAC,EAAE;QACzDjB,WAAW,CAACkB,IAAI,GAAG,GAAG;QACtBlB,WAAW,CAACK,OAAO,GAAG,IAAI;QAC1BL,WAAW,CAACmB,qBAAqB,CAAC,GAAG,CAAC;QACtCnB,WAAW,CAACoB,kBAAkB,CAAC,GAAG,CAAC;QAEnCpB,WAAW,CAACS,aAAa,CACvBR,eAAe,EACfe,WAAW,EACX,IACF,CAAC;QACDhB,WAAW,CAACa,IAAI,CAAC,CAAC;MACpB;IACF,CAAC,MACI;MACHb,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAEa,IAAI,CAAC,CAAC;IACrB;EACF;EAEAjB,SAASA,CAACkB,KAAoC,EAAE;IAC9C,MAAMnB,QAAsC,GAAGmB,KAAK,IAAI,IAAI,CAAChD,GAAG,CAACgD,KAAK;IACtE,MAAMd,WAAW,GAAG,IAAI,CAACrC,UAAU,CAACgC,QAAQ,CAAC;IAE7C,MAAMoB,YAA0C,GACtC,IAAI,CAACjD,GAAG,CAACuD,OAAO,CAAC,IAAI,CAACvD,GAAG,CAACuD,OAAO,CAACC,MAAM,GAAG9D,eAAe,CAAC;IACrE,MAAMyC,eAAe,GAAG,IAAI,CAACtC,UAAU,CAACoD,YAAY,CAAC;IAErD,OAAO;MACLpB,QAAQ;MACRK,WAAW;MACXe,YAAY;MACZd;IACF,CAAC;EACH;EAEAsB,MAAMA,CAACC,MAAc,EAAE;IACrB,IAAI,CAACxC,eAAe,CAAC,CAAC;EACxB;AACF"}
|
|
1
|
+
{"version":3,"names":["StateMachine","StateMachineHistory","THREE","MAX_FSM_HISTORY","Character_animation","_ref","_this","animations","input","_classCallCheck","_defineProperty","fsm","init","transitions","name","from","to","s","methods","onPunch","handlePunch","onPunchSecond","onTrans","handleTrans","onRoll","handleRoll","plugins","max","trans","_createClass","key","value","handleAnimation","keys","preventAction","leftClick","attackStack","handleLeftClick","space","left","right","forward","backward","_this2","_this$getAction","getAction","stateKey","punchSecond","punch","setTimeout","_this3","_this$getAction2","stateAction","prevStateAction","mixer","getMixer","reset","enabled","clampWhenFinished","loop","LoopOnce","crossFadeFrom","onComplete","removeEventListener","addEventListener","play","state","_this4","_this$getAction3","prevStateKey","_this$getAction4","crossNumber","isRunning","time","setEffectiveTimeScale","setEffectiveWeight","history","length","update","deltaT","default"],"sources":["../../../../../src/core/Controls/ThirdViewControl/player/animation.ts"],"sourcesContent":["import StateMachine from 'javascript-state-machine'\n\n// @ts-ignore\nimport StateMachineHistory from 'javascript-state-machine/lib/history'\nimport * as THREE from '@anov/3d-core'\nimport type { AnimationAction } from '@anov/3d-core'\nimport type BasicCharacterControllerInput from '../action/input'\nimport type { CharacterAnimationType } from '../type'\n\ninterface PropsType {\n animations: CharacterAnimationType\n input: BasicCharacterControllerInput\n}\n\nconst MAX_FSM_HISTORY = 2\n\nexport default class Character_animation {\n animations: CharacterAnimationType\n input: BasicCharacterControllerInput\n preventAction = false\n fsm: any\n attackStack = 0\n\n constructor({ animations, input }: PropsType) {\n this.input = input\n this.animations = animations\n\n // @ts-ignore\n this.fsm = new StateMachine({\n init: 'idle',\n transitions: [\n { name: 'punch', from: '*', to: 'hit' },\n { name: 'punchSecond', from: '*', to: 'hitSecond' },\n { name: 'roll', from: '*', to: 'roll' },\n { name: 'trans', from: '*', to: (s: string) => s },\n ],\n methods: {\n onPunch: () => this.handlePunch('hit'),\n onPunchSecond: () => this.handlePunch('hitSecond'),\n onTrans: () => this.handleTrans(),\n onRoll: () => this.handleRoll(),\n },\n // @ts-ignore\n plugins: [new StateMachineHistory({ max: MAX_FSM_HISTORY })],\n })\n\n this.fsm.trans('idle')\n }\n\n handleAnimation() {\n const { keys } = this.input\n\n // used to have run left right\n\n if (this.preventAction)\n return\n if (keys.leftClick || this.attackStack > 0) {\n this.handleLeftClick()\n }\n else if (keys.space) {\n this.fsm.trans('roll')\n }\n else if (keys.left) {\n // this.fsm.trans(\"leftRun\");\n this.fsm.trans('running')\n }\n else if (keys.right) {\n // this.fsm.trans(\"rightRun\");\n this.fsm.trans('running')\n }\n else if (keys.forward) {\n this.fsm.trans('running')\n }\n else if (keys.backward) {\n // this.fsm.trans(\"runningBack\");\n this.fsm.trans('running')\n }\n else {\n this.fsm.trans('idle')\n }\n }\n\n handleLeftClick() {\n const { stateKey } = this.getAction()\n this.attackStack += this.attackStack !== 3 ? 1 : 0\n\n if (stateKey === 'hit')\n this.fsm.punchSecond()\n else this.fsm.punch()\n\n setTimeout(() => {\n this.attackStack -= this.attackStack !== 0 ? 1 : 0\n }, 1000)\n }\n\n handleRoll() {\n this.preventAction = true\n const { stateAction, prevStateAction } = this.getAction()\n\n if (stateAction) {\n const mixer = stateAction.getMixer()\n\n stateAction.reset()\n stateAction.enabled = true\n stateAction.clampWhenFinished = true\n stateAction.loop = THREE.LoopOnce\n\n stateAction.crossFadeFrom(prevStateAction as AnimationAction, 0.1, true)\n\n const onComplete = () => {\n this.preventAction = false\n\n // fix error when holding space\n this.fsm.trans('idle')\n\n mixer.removeEventListener('finished', onComplete)\n }\n\n mixer.addEventListener('finished', onComplete)\n\n stateAction.play()\n }\n }\n\n handlePunch(state: 'hit' | 'hitSecond') {\n this.preventAction = true\n const { stateAction, prevStateAction, prevStateKey, stateKey }\n = this.getAction(state)\n\n if (stateAction && prevStateAction) {\n const mixer = stateAction.getMixer()\n\n stateAction.reset()\n stateAction.clampWhenFinished = true\n stateAction.loop = THREE.LoopOnce\n\n stateAction.crossFadeFrom(prevStateAction as AnimationAction, 0.1, true)\n\n const onComplete = () => {\n this.preventAction = false\n\n this.attackStack -= this.attackStack !== 0 ? 1 : 0\n mixer.removeEventListener('finished', onComplete)\n }\n\n mixer.addEventListener('finished', onComplete)\n\n stateAction.play()\n }\n }\n\n handleTrans() {\n const { stateKey, stateAction, prevStateKey, prevStateAction }\n = this.getAction()\n\n let crossNumber = 0.3\n\n if (prevStateKey === 'running' && prevStateAction)\n crossNumber = 0.2\n\n if (prevStateAction && stateAction) {\n if (prevStateKey !== stateKey && !stateAction.isRunning()) {\n stateAction.time = 0.0\n stateAction.enabled = true\n stateAction.setEffectiveTimeScale(1.0)\n stateAction.setEffectiveWeight(1.0)\n\n stateAction.crossFadeFrom(\n prevStateAction as AnimationAction,\n crossNumber,\n true,\n )\n stateAction.play()\n }\n }\n else {\n stateAction?.play()\n }\n }\n\n getAction(state?: keyof typeof this.animations) {\n const stateKey: keyof typeof this.animations = state || this.fsm.state\n const stateAction = this.animations[stateKey]\n\n const prevStateKey: keyof typeof this.animations\n = this.fsm.history[this.fsm.history.length - MAX_FSM_HISTORY]\n const prevStateAction = this.animations[prevStateKey]\n\n return {\n stateKey,\n stateAction,\n prevStateKey,\n prevStateAction,\n }\n }\n\n update(deltaT: number) {\n this.handleAnimation()\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,14 +1,18 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
3
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
4
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
1
5
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" ==
|
|
3
|
-
function _toPrimitive(t, r) { if ("object" !=
|
|
6
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
7
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
4
8
|
import { BoxGeometry, Mesh, Vector3, use } from '@anov/3d-core';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
character,
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
var Camera_movement = /*#__PURE__*/function () {
|
|
10
|
+
function Camera_movement(_ref) {
|
|
11
|
+
var character = _ref.character,
|
|
12
|
+
camera = _ref.camera,
|
|
13
|
+
characterRotateBox = _ref.characterRotateBox,
|
|
14
|
+
player = _ref.player;
|
|
15
|
+
_classCallCheck(this, Camera_movement);
|
|
12
16
|
_defineProperty(this, "camera", void 0);
|
|
13
17
|
_defineProperty(this, "character", void 0);
|
|
14
18
|
_defineProperty(this, "currentPosition", void 0);
|
|
@@ -24,47 +28,59 @@ export default class Camera_movement {
|
|
|
24
28
|
this.currentPosition = new Vector3();
|
|
25
29
|
this.currentLookat = new Vector3();
|
|
26
30
|
this.control = use.useScene().orbitControls;
|
|
27
|
-
|
|
31
|
+
var view = new Mesh(new BoxGeometry(1, 1, 1));
|
|
28
32
|
this.character.add(view);
|
|
29
33
|
view.position.add(new Vector3(0, 5, -15));
|
|
30
34
|
this.view = view;
|
|
31
35
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
updateCharacter() {
|
|
42
|
-
const cameraPosition = new Vector3();
|
|
43
|
-
this.camera.getWorldPosition(cameraPosition);
|
|
44
|
-
const characterPosition = new Vector3();
|
|
45
|
-
this.character.getWorldPosition(characterPosition);
|
|
46
|
-
const direction = new Vector3();
|
|
47
|
-
direction.subVectors(cameraPosition, characterPosition);
|
|
48
|
-
direction.y = 0;
|
|
49
|
-
const angle = Math.atan2(direction.x, direction.z);
|
|
50
|
-
this.character.rotation.y = angle + Math.PI;
|
|
51
|
-
this.characterRotateBox.rotation.y = angle + Math.PI;
|
|
52
|
-
}
|
|
53
|
-
updateCamera() {
|
|
54
|
-
const position = new Vector3();
|
|
55
|
-
this.view.getWorldPosition(position);
|
|
56
|
-
const idealLookat = this.calculateIdealLookat();
|
|
57
|
-
this.control.target = idealLookat;
|
|
58
|
-
this.control.object.position.copy(position);
|
|
59
|
-
}
|
|
60
|
-
updateNewPosition() {
|
|
61
|
-
if (this.view && this.view.position) {
|
|
62
|
-
this.updateCharacter();
|
|
63
|
-
this.updateCamera();
|
|
36
|
+
_createClass(Camera_movement, [{
|
|
37
|
+
key: "calculateIdealLookat",
|
|
38
|
+
value: function calculateIdealLookat() {
|
|
39
|
+
var _this$character$posit = this.character.position,
|
|
40
|
+
x = _this$character$posit.x,
|
|
41
|
+
y = _this$character$posit.y,
|
|
42
|
+
z = _this$character$posit.z;
|
|
43
|
+
var idealLookat = new Vector3(x, this.character.position.y + 3.4, z);
|
|
44
|
+
return idealLookat;
|
|
64
45
|
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
46
|
+
}, {
|
|
47
|
+
key: "updateCharacter",
|
|
48
|
+
value: function updateCharacter() {
|
|
49
|
+
var cameraPosition = new Vector3();
|
|
50
|
+
this.camera.getWorldPosition(cameraPosition);
|
|
51
|
+
var characterPosition = new Vector3();
|
|
52
|
+
this.character.getWorldPosition(characterPosition);
|
|
53
|
+
var direction = new Vector3();
|
|
54
|
+
direction.subVectors(cameraPosition, characterPosition);
|
|
55
|
+
direction.y = 0;
|
|
56
|
+
var angle = Math.atan2(direction.x, direction.z);
|
|
57
|
+
this.character.rotation.y = angle + Math.PI;
|
|
58
|
+
this.characterRotateBox.rotation.y = angle + Math.PI;
|
|
59
|
+
}
|
|
60
|
+
}, {
|
|
61
|
+
key: "updateCamera",
|
|
62
|
+
value: function updateCamera() {
|
|
63
|
+
var position = new Vector3();
|
|
64
|
+
this.view.getWorldPosition(position);
|
|
65
|
+
var idealLookat = this.calculateIdealLookat();
|
|
66
|
+
this.control.target = idealLookat;
|
|
67
|
+
this.control.object.position.copy(position);
|
|
68
|
+
}
|
|
69
|
+
}, {
|
|
70
|
+
key: "updateNewPosition",
|
|
71
|
+
value: function updateNewPosition() {
|
|
72
|
+
if (this.view && this.view.position) {
|
|
73
|
+
this.updateCharacter();
|
|
74
|
+
this.updateCamera();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}, {
|
|
78
|
+
key: "update",
|
|
79
|
+
value: function update(deltaT) {
|
|
80
|
+
this.updateNewPosition();
|
|
81
|
+
}
|
|
82
|
+
}]);
|
|
83
|
+
return Camera_movement;
|
|
84
|
+
}();
|
|
85
|
+
export { Camera_movement as default };
|
|
70
86
|
//# sourceMappingURL=camera.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BoxGeometry","Mesh","Vector3","use","Camera_movement","
|
|
1
|
+
{"version":3,"names":["BoxGeometry","Mesh","Vector3","use","Camera_movement","_ref","character","camera","characterRotateBox","player","_classCallCheck","_defineProperty","currentPosition","currentLookat","control","useScene","orbitControls","view","add","position","_createClass","key","value","calculateIdealLookat","_this$character$posit","x","y","z","idealLookat","updateCharacter","cameraPosition","getWorldPosition","characterPosition","direction","subVectors","angle","Math","atan2","rotation","PI","updateCamera","target","object","copy","updateNewPosition","update","deltaT","default"],"sources":["../../../../../src/core/Controls/ThirdViewControl/player/camera.ts"],"sourcesContent":["import { BoxGeometry, Mesh, Vector3, use } from '@anov/3d-core'\nimport type { Object3D, Object3DEventMap, OrbitControls, PerspectiveCamera } from '@anov/3d-core'\nimport type Player from '../player'\n\ninterface PropsType {\n character: Object3D\n characterRotateBox: Object3D\n camera: PerspectiveCamera\n player: Player\n}\n\nexport default class Camera_movement {\n camera: PerspectiveCamera\n character: Object3D\n currentPosition: Vector3\n currentLookat: Vector3\n characterRotateBox: Object3D\n control: any\n player: Player\n view: Mesh\n\n constructor({ character, camera, characterRotateBox, player }: PropsType) {\n this.character = character\n this.characterRotateBox = characterRotateBox\n this.camera = camera\n this.player = player\n\n this.currentPosition = new Vector3()\n this.currentLookat = new Vector3()\n this.control = use.useScene().orbitControls\n\n const view = new Mesh(new BoxGeometry(1, 1, 1))\n this.character.add(view)\n\n view.position.add(new Vector3(0, 5, -15))\n\n this.view = view\n }\n\n private calculateIdealLookat() {\n const { x, y, z } = this.character.position\n const idealLookat = new Vector3(x, this.character.position.y + 3.4, z)\n\n return idealLookat\n }\n\n private updateCharacter() {\n const cameraPosition = new Vector3()\n this.camera.getWorldPosition(cameraPosition)\n\n const characterPosition = new Vector3()\n this.character.getWorldPosition(characterPosition)\n\n const direction = new Vector3()\n direction.subVectors(cameraPosition, characterPosition)\n direction.y = 0\n\n const angle = Math.atan2(direction.x, direction.z)\n\n this.character.rotation.y = angle + Math.PI\n this.characterRotateBox.rotation.y = angle + Math.PI\n }\n\n private updateCamera() {\n const position = new Vector3()\n this.view.getWorldPosition(position)\n\n const idealLookat = this.calculateIdealLookat()\n this.control.target = idealLookat;\n (this.control as OrbitControls).object.position.copy(position)\n }\n\n private updateNewPosition() {\n if (this.view && this.view.position) {\n this.updateCharacter()\n this.updateCamera()\n }\n }\n\n update(deltaT: number) {\n this.updateNewPosition()\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,18 +1,22 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
3
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
4
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
1
5
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" ==
|
|
3
|
-
function _toPrimitive(t, r) { if ("object" !=
|
|
6
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
7
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
4
8
|
import { Mesh, Vector3, acceleratedRaycast } from '@anov/3d-core';
|
|
5
9
|
import { SPEED } from "../config/constants";
|
|
6
10
|
Mesh.prototype.raycast = acceleratedRaycast;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
scene,
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
var Character_control = /*#__PURE__*/function () {
|
|
12
|
+
function Character_control(_ref) {
|
|
13
|
+
var scene = _ref.scene,
|
|
14
|
+
character = _ref.character,
|
|
15
|
+
input = _ref.input,
|
|
16
|
+
animation = _ref.animation,
|
|
17
|
+
characterRotateBox = _ref.characterRotateBox,
|
|
18
|
+
camera = _ref.camera;
|
|
19
|
+
_classCallCheck(this, Character_control);
|
|
16
20
|
_defineProperty(this, "input", void 0);
|
|
17
21
|
_defineProperty(this, "character", void 0);
|
|
18
22
|
_defineProperty(this, "control", void 0);
|
|
@@ -40,35 +44,41 @@ export default class Character_control {
|
|
|
40
44
|
this.forwardVector.y = 0;
|
|
41
45
|
this.forwardVector.normalize();
|
|
42
46
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
_createClass(Character_control, [{
|
|
48
|
+
key: "updateNewPosition",
|
|
49
|
+
value: function updateNewPosition(deltaT) {
|
|
50
|
+
var _this$input$keys = this.input.keys,
|
|
51
|
+
forward = _this$input$keys.forward,
|
|
52
|
+
backward = _this$input$keys.backward,
|
|
53
|
+
left = _this$input$keys.left,
|
|
54
|
+
right = _this$input$keys.right;
|
|
50
55
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
56
|
+
// 获取当前角色的前向向量
|
|
57
|
+
var forwardVector = new Vector3();
|
|
58
|
+
this.characterRotateBox.getWorldDirection(forwardVector);
|
|
59
|
+
forwardVector.y = 0;
|
|
60
|
+
forwardVector.normalize();
|
|
61
|
+
var vectorUp = new Vector3(0, 1, 0);
|
|
62
|
+
var vectorRight = new Vector3().crossVectors(vectorUp, forwardVector).normalize();
|
|
63
|
+
var moveDirection = new Vector3();
|
|
64
|
+
if (forward) moveDirection.add(forwardVector);
|
|
65
|
+
if (backward) moveDirection.sub(forwardVector);
|
|
66
|
+
if (left) moveDirection.add(vectorRight);
|
|
67
|
+
if (right) moveDirection.sub(vectorRight);
|
|
63
68
|
|
|
64
|
-
|
|
65
|
-
|
|
69
|
+
// 计算最终移动向量
|
|
70
|
+
var moveVector = moveDirection.normalize().multiplyScalar(SPEED * deltaT);
|
|
66
71
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
72
|
+
// 更新角色的位置
|
|
73
|
+
if (!this.animation.preventAction) this.character.position.add(moveVector);
|
|
74
|
+
}
|
|
75
|
+
}, {
|
|
76
|
+
key: "update",
|
|
77
|
+
value: function update(deltaT) {
|
|
78
|
+
this.updateNewPosition(deltaT);
|
|
79
|
+
}
|
|
80
|
+
}]);
|
|
81
|
+
return Character_control;
|
|
82
|
+
}();
|
|
83
|
+
export { Character_control as default };
|
|
74
84
|
//# sourceMappingURL=control.js.map
|