@eva/react-eva
Version:
React EVA是一个让开发同学能够在React技术体系下,利用EVA JS的游戏研发能力,开发动画、游戏类场景的框架。它可以让开发同学用熟悉的JSX和Hooks语法编写动画、游戏场景的代码。
115 lines (93 loc) • 3.08 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports["default"] = exports.EvaInstance = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var EvaInstance = /*#__PURE__*/function () {
function EvaInstance() {
this.rootElement = null;
this.canvasElement = null;
this.backgroundElement = null;
this.hudElement = null;
this.gameInstance = null;
this.systems = [];
this.listeningProps = [];
}
var _proto = EvaInstance.prototype;
_proto.fromDOMRect = function fromDOMRect(rect) {
if (this.currentScene) {
var _this$currentScene$tr = this.currentScene.transform.scale,
x = _this$currentScene$tr.x,
y = _this$currentScene$tr.y;
var newRect = {};
for (var _i = 0, _arr = ['x', 'width', 'left', 'right']; _i < _arr.length; _i++) {
var key = _arr[_i];
if (rect[key] !== undefined) {
newRect[key] = rect[key] / x;
}
}
for (var _i2 = 0, _arr2 = ['y', 'height', 'top', 'bottom']; _i2 < _arr2.length; _i2++) {
var _key = _arr2[_i2];
if (rect[_key] !== undefined) {
newRect[_key] = rect[_key] / y;
}
}
return Object.freeze(newRect);
} else {
return Object.freeze((0, _extends2["default"])({}, rect));
}
};
_proto.toDOMRect = function toDOMRect(rect) {
if (this.currentScene) {
var _this$currentScene$tr2 = this.currentScene.transform.scale,
x = _this$currentScene$tr2.x,
y = _this$currentScene$tr2.y;
var newRect = {};
for (var _i3 = 0, _arr3 = ['x', 'width', 'left', 'right']; _i3 < _arr3.length; _i3++) {
var key = _arr3[_i3];
if (rect[key] !== undefined) {
newRect[key] = rect[key] * x;
}
}
for (var _i4 = 0, _arr4 = ['y', 'height', 'top', 'bottom']; _i4 < _arr4.length; _i4++) {
var _key2 = _arr4[_i4];
if (rect[_key2] !== undefined) {
newRect[_key2] = rect[_key2] * y;
}
}
return Object.freeze(newRect);
} else {
return Object.freeze((0, _extends2["default"])({}, rect));
}
};
(0, _createClass2["default"])(EvaInstance, [{
key: "scene",
get: function get() {
return [].concat(this.gameInstance.scene.transform.children).map(function (child) {
return child.gameObject;
});
}
}, {
key: "currentScene",
get: function get() {
return this.scene[0];
}
}, {
key: "currentSceneSize",
get: function get() {
if (this.currentScene) {
return Object.freeze((0, _extends2["default"])({}, this.currentScene.transform.size));
} else {
return {
width: 0,
height: 0
};
}
}
}]);
return EvaInstance;
}();
exports.EvaInstance = EvaInstance;
var _default = new EvaInstance();
exports["default"] = _default;