UNPKG

matrix-engine

Version:

basic_timeline improved, VT func setup vide html element id with name arg.- DISABLE RAYCAST DEBUG TEST [2.3.3] Fix for GUI win desktop [2.3.0] DestrucMesh solution & loading convex objs for physics BASIC, SpriteAnimation CPU/texture solution added, Improv

136 lines (122 loc) 5.25 kB
/** * @Author Nikola Lukic * @Description Matrix Engine Api Example. */ /* globals world App world */ import App from "../program/manifest"; import * as matrixEngine from "../index.js"; export var runThis = world => { /* globals world App ENUMERATORS OSCILLATOR OBJ */ let OSCILLATOR = matrixEngine.utility.OSCILLATOR; // LOAD MESH FROM OBJ FILES... // if you dont use obj or complex mesh you no need for this func function onLoadObj(meshes) { // No need from [1.8.2] // App.meshes = meshes; matrixEngine.objLoader.initMeshBuffers(world.GL.gl, meshes.halfCircle); for (const key in meshes) { matrixEngine.objLoader.initMeshBuffers(world.GL.gl, meshes[key]); } var textuteImageSamplers = { source: ["res/images/semi_pack/gradiend_half3.png"], mix_operation: "multiply", }; world.Add( "obj", 1, "halfCircle", textuteImageSamplers, meshes.halfCircle ); App.scene.halfCircle.position.y = -12; App.scene.halfCircle.position.z = -12; App.scene.halfCircle.rotation.rotationSpeed.y = 100; App.scene.halfCircle.glBlend.blendEnabled = true; var oscillator1 = new OSCILLATOR(-12, 8, 0.2); // FEMALE var textuteImageSamplers2 = { source: ["res/images/RustPaint.jpg"], mix_operation: "multiply", }; var animation_construct = { id: "female", meshList: meshes, sumOfAniFrames: 18, currentAni: 0, speed: 3, }; world.Add( "obj", 1, "female", textuteImageSamplers2, meshes.female, animation_construct ); App.scene.female.glBlend.blendEnabled = true; App.scene.female.position.y = -4; App.scene.female.rotation.rotationSpeed.y = 150; App.scene.female.position.z = -13; App.scene.halfCircle.glBlend.blendParamSrc = matrixEngine.utility.ENUMERATORS.glBlend.param[4]; App.scene.halfCircle.glBlend.blendParamDest = matrixEngine.utility.ENUMERATORS.glBlend.param[4]; //App.scene.halfCircle2.glBlend.blendParamSrc = matrixEngine.utility.ENUMERATORS.glBlend.param[4]; //App.scene.halfCircle2.glBlend.blendParamDest = matrixEngine.utility.ENUMERATORS.glBlend.param[4]; App.scene.female.glBlend.blendParamSrc = matrixEngine.utility.ENUMERATORS.glBlend.param[4]; App.scene.female.glBlend.blendParamDest = matrixEngine.utility.ENUMERATORS.glBlend.param[4]; App.scene.female.glDrawElements.numberOfIndicesRender = 1; var TIMER = setInterval(function () { if ( App.scene.female.glDrawElements.numberOfIndicesRender >= App.scene.female.mesh.indexBuffer.numItems - 1 ) { // App.scene.halfCircle2.position.y = 9; App.scene.halfCircle.position.y = -9; App.scene.halfCircle.position.z = -14; App.scene.female.rotation.rotationSpeed.y = 10; App.scene.halfCircle.rotation.rotationSpeed.y = 10; // App.scene.halfCircle2.rotation.rotationSpeed.y = -10; App.scene.female.glDrawElements.numberOfIndicesRender = App.scene.female.mesh.indexBuffer.numItems; // eslint-disable-next-line no-undef clearInterval(TIMER); return; } else { // App.scene.halfCircle2.position.y = oscillator2.UPDATE(); App.scene.halfCircle.position.y = oscillator1.UPDATE(); // App.scene.halfCircle.rotation.rotationSpeed.z = App.scene.halfCircle.rotation.rotationSpeed.z + 1; App.scene.halfCircle.rotation.rotationSpeed.y = App.scene.halfCircle.rotation.rotationSpeed.y - 1; App.scene.female.rotation.rotationSpeed.y = App.scene.female.rotation.rotationSpeed.y - 1; App.scene.female.glDrawElements.numberOfIndicesRender = App.scene.female.glDrawElements.numberOfIndicesRender + 15; } }, 1); } // Implement recursive load system for next update. matrixEngine.objLoader.downloadMeshes( { female: "res/3d-objects/female/female_000001.obj", female1: "res/3d-objects/female/female_000003.obj", female2: "res/3d-objects/female/female_000005.obj", female3: "res/3d-objects/female/female_000007.obj", female4: "res/3d-objects/female/female_000009.obj", female5: "res/3d-objects/female/female_000011.obj", female6: "res/3d-objects/female/female_000013.obj", female7: "res/3d-objects/female/female_000015.obj", female8: "res/3d-objects/female/female_000017.obj", female9: "res/3d-objects/female/female_000019.obj", female10: "res/3d-objects/female/female_000021.obj", female11: "res/3d-objects/female/female_000023.obj", female12: "res/3d-objects/female/female_000025.obj", female13: "res/3d-objects/female/female_000027.obj", female14: "res/3d-objects/female/female_000029.obj", female15: "res/3d-objects/female/female_000031.obj", female16: "res/3d-objects/female/female_000033.obj", female17: "res/3d-objects/female/female_000035.obj", female18: "res/3d-objects/female/female_000037.obj", halfCircle: "res/3d-objects/balltest1.obj", }, onLoadObj ); };