Commit 3466b741 authored by 任建锋's avatar 任建锋

public scene ...

parent 6b4db8fb
{
"name": "yt",
"version": "1.0.12",
"description": "基于Babylonjs的3D框架",
"main": "./dist/index.js",
"types": "./types/index.d.ts",
"scripts": {
},
"author": "",
"license": "ISC",
"dependencies": {
"tc": "git+ssh://git@gitlab2.dui88.com:clq/tc.git#1.0"
}
}
\ No newline at end of file
export class SceneManager{
public stage;
public scene:BABYLON.Scene;
public canvas;
public engine;
private static instance: SceneManager;
public static get ins(): SceneManager {
if (!this.instance) {
this.instance = new SceneManager();
}
return this.instance;
}
constructor(){
this.canvas = document.querySelector("#renderCanvas");
// this.engine = new BABYLON.Engine(this.canvas, true);
this.engine = new BABYLON.Engine(this.canvas, true, {
deterministicLockstep: true,
lockstepMaxSteps: 2
});
var createScene=function(){
{
var scene = new BABYLON.Scene(this.engine);
//下面的代码是为了设置微信上面的touch事件兼容
var n = scene._onPointerUp
, o = scene._onPointerDown
, r = scene._onPointerMove
, a = BABYLON.Tools.GetPointerPrefix();
this.canvas.removeEventListener(a + "move", r),
this.canvas.removeEventListener(a + "down", o),
window.removeEventListener(a + "up", n),
scene._onPointerUp = function(e) {
void 0 !== e.pointerId && n(e)
}
,
scene._onPointerDown = function(e) {
void 0 !== e.pointerId && o(e)
}
,
scene._onPointerMove = function(e) {
void 0 !== e.pointerId && r(e)
}
,
this.canvas.addEventListener(a + "move", scene._onPointerMove, !1),
this.canvas.addEventListener(a + "down", scene._onPointerDown, !1),
window.addEventListener(a + "up", scene._onPointerUp, !1);
//下面的代码是为了设置微信上面的touch事件兼容
var camera = new BABYLON.FreeCamera("baseCamera", new BABYLON.Vector3(0, 0, 0), scene);
this.engine.setHardwareScalingLevel(0.6)
return scene;
}
}.bind(this)
this.scene = createScene();
this.engine.runRenderLoop(function () {
this.scene.render();
TWEEN.update();
}.bind(this));
window.addEventListener("resize", function() {
this.engine.resize();
}.bind(this));
}
/* public get stage(): any {
return this._stage;
}*/
/* public get scene(): BABYLON.Scene {
return this._scene;
}
public get canvas(): any {
return this._canvas;
}
public get engine(): any {
return this._engine;
} */
public change(display){
/* console.log(display)
var i;
for(i in display){
console.log(display[i])
}*/
/* for(var l of SceneManager.ins.scene.meshes){
l.dispose()
} */
SceneManager.ins.scene.meshes=[]
/*var j;
for(j in SceneManager.ins.stage){
console.log(SceneManager.ins.stage[j])
if( SceneManager.ins.stage[j]){
if(SceneManager.ins.stage[j].getChildMeshes){
SceneManager.ins.stage[j].getChildMeshes(false,(child)=>{
child.dispose();
});
}
if( SceneManager.ins.stage[j].dispose){
SceneManager.ins.stage[j].dispose()
}
}
}*/
SceneManager.ins.stage=display;
}
/* public change(module){
// console.log(this._stage._children)
if(this.stage._children){
this.stage._children.forEach(function (child) {
this.stage.removeChild(child)
child.dispose()
}.bind(this))
}
this.stage.addChild(module)
// console.log( this._scene)
}*/
}
\ No newline at end of file
...@@ -6,7 +6,7 @@ var SceneManager = /** @class */ (function () { ...@@ -6,7 +6,7 @@ var SceneManager = /** @class */ (function () {
// this.engine = new BABYLON.Engine(this.canvas, true); // this.engine = new BABYLON.Engine(this.canvas, true);
this.engine = new BABYLON.Engine(this.canvas, true, { this.engine = new BABYLON.Engine(this.canvas, true, {
deterministicLockstep: true, deterministicLockstep: true,
lockstepMaxSteps: 0 lockstepMaxSteps: 2
}); });
var createScene = function () { var createScene = function () {
{ {
......
{ {
"name": "yt", "name": "yt",
"version": "1.0.11", "version": "1.0.12",
"description": "基于Babylonjs的3D框架", "description": "基于Babylonjs的3D框架",
"main": "./dist/index.js", "main": "./dist/index.js",
"types": "./types/index.d.ts", "types": "./types/index.d.ts",
......
...@@ -21,10 +21,12 @@ export class SceneManager{ ...@@ -21,10 +21,12 @@ export class SceneManager{
// this.engine = new BABYLON.Engine(this.canvas, true); // this.engine = new BABYLON.Engine(this.canvas, true);
this.engine = new BABYLON.Engine(this.canvas, true, { this.engine = new BABYLON.Engine(this.canvas, true, {
deterministicLockstep: true, deterministicLockstep: true,
lockstepMaxSteps: 4 lockstepMaxSteps: 2
}); });
var createScene=function(){ var createScene=function(){
{ {
var scene = new BABYLON.Scene(this.engine); var scene = new BABYLON.Scene(this.engine);
//下面的代码是为了设置微信上面的touch事件兼容 //下面的代码是为了设置微信上面的touch事件兼容
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment