UNPKG

raingame

Version:
103 lines (102 loc) 4.14 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Scene = exports.MouseActions = exports.Renderer = void 0; var StandardObject_1 = require("./src/StandardObject"); var RainImage_1 = __importDefault(require("./src/RainImage")); var Card_1 = require("./src/Card"); var Size_1 = __importDefault(require("./src/Size")); var Types_1 = require("./src/types/Types"); var events_1 = require("./src/events/events"); var SceneGroup_1 = __importDefault(require("./src/SceneGroup")); var Files_1 = __importDefault(require("./src/Files")); var Renderer = /** @class */ (function () { function Renderer(width, height) { if (!width || !height) throw new Error("Renderer need set width and height"); var cav = document.createElement("canvas"); this.devicePixelRatio = window.devicePixelRatio; cav.width = this.devicePixelRatio * width; cav.height = this.devicePixelRatio * height; this.size = new Size_1.default(cav.width, cav.height); this.domElement = cav; var ctx; var ctxOrign = cav.getContext('2d'); if (ctxOrign) { ctx = ctxOrign; ctx.fillStyle = "#fff"; ctx.fillRect(0, 0, width, height); this.ctx = ctx; } else { throw new Error("browser don't support Canvas."); } } Renderer.prototype.render = function (scene) { var ctx = this.ctx; var _a = this.size, width = _a.width, height = _a.height; ctx.clearRect(0, 0, width, height); scene.children = scene.children.sort(function (a, b) { return a.rank - b.rank; }); for (var index = 0; index < scene.children.length; index++) { var element = scene.children[index]; element.rank = index; if (element.target instanceof SceneGroup_1.default) { element.target.children = element.target.children.sort(function (a, b) { return a.groupRank - b.groupRank; }); for (var index2 = 0; index2 < element.target.children.length; index2++) { var childElement = element.target.children[index2]; childElement.target.render(ctx, element.target); } } else if (element.target instanceof StandardObject_1.StandardObject) { element.target.render(ctx, element.target); } } }; Renderer.prototype.setSize = function (width, height) { this.devicePixelRatio = window.devicePixelRatio; this.domElement.width = this.devicePixelRatio * width; this.domElement.height = this.devicePixelRatio * height; }; Renderer.prototype.getSize = function () { return new Size_1.default(this.size.width, this.size.height); }; return Renderer; }()); exports.Renderer = Renderer; var MouseActions; (function (MouseActions) { MouseActions["Click"] = "click"; })(MouseActions = exports.MouseActions || (exports.MouseActions = {})); var Scene = /** @class */ (function () { function Scene() { this.children = []; } Scene.prototype.add = function (newObj) { var item = { rank: this.children.length, target: newObj }; this.children.push(item); }; Scene.prototype.addEvent = function (type, renderer, touchType) { if (touchType === void 0) { touchType = Types_1.touchTypes.RANGE; } var scene = this; switch (type) { case MouseActions.Click: events_1.addClickEvent(renderer, touchType, scene); return; } }; return Scene; }()); exports.Scene = Scene; exports.default = { Renderer: Renderer, Scene: Scene, StandardObject: StandardObject_1.StandardObject, RainImage: RainImage_1.default, Card: Card_1.Card, Files: Files_1.default };