(function() { if(typeof PIXI!="object") { if(typeof loadfail=="function") { loadfail("libpointerfx.js: PIXI(type of "+(typeof PIXI)+") is not an object"); } else { window.alert("libpointerfx.js: PIXI(type of "+(typeof PIXI)+") is not an object"); } return; } if(typeof Transition!="function") { if(typeof loadfail=="function") { loadfail("libpointerfx.js: Transition(type of "+(typeof Transition)+") is not an function"); } else { window.alert("libpointerfx.js: Transition(type of "+(typeof Transition)+") is not an function"); } return; } if(typeof libmain!="object") { if(typeof loadfail=="function") { loadfail("libpointerfx.js: libmain(type of "+(typeof libmain)+") is not an object"); } else { window.alert("libpointerfx.js: libmain(type of "+(typeof libmain)+") is not an object"); } return; } var libpointerfx= {}; libpointerfx.fx_template_list=[]; libpointerfx.fx_instance_map= {}; libpointerfx.fx_texture_template_chosen=PIXI.Texture.WHITE; var on_pointer_down=function(event) { var pointer_id=event.pointerType+event.pointerId; var fx_instance = new PIXI.Sprite(libpointerfx.fx_texture_template_chosen); fx_instance.anchor.set(0.5, 0.5); fx_instance.position.copyFrom(event.global); fx_instance.width=50; fx_instance.height=50; libpointerfx.fx_instance_map[pointer_id] = fx_instance; libmain.scenes.pointer_fx.root.addChild(fx_instance); }; var on_pointer_move=function(event) { var pointer_id=event.pointerType+event.pointerId; if(!(pointer_id in libpointerfx.fx_instance_map)) { //console.warn("warn: pointer_id `"+pointer_id+"` is NOT in libpointerfx.fx_instance_map"); return; } libpointerfx.fx_instance_map[pointer_id].position.copyFrom(event.global); var fx_instance = new PIXI.Sprite(libpointerfx.fx_texture_template_chosen); fx_instance.anchor.set(0.5, 0.5); fx_instance.position.copyFrom(event.global); fx_instance.width=5; fx_instance.height=5; var func_remove=function() { libmain.scenes.pointer_fx.root.removeChild(fx_instance); }; libmain.scenes.pointer_fx.root.addChild(fx_instance); var fx_end_transition=new Transition(); fx_end_transition.obj=fx_instance; fx_end_transition.key="alpha"; fx_end_transition.startval=1.0; fx_end_transition.endval=0.0; fx_end_transition.duration=150; fx_end_transition.onend=func_remove; fx_end_transition.start(); }; var on_pointer_up=function(event) { var pointer_id=event.pointerType+event.pointerId; if(!(pointer_id in libpointerfx.fx_instance_map)) { //console.warn("warn: pointer_id `"+pointer_id+"` is NOT in libpointerfx.fx_instance_map"); return; } var fx_instance_toend=libpointerfx.fx_instance_map[pointer_id]; delete(libpointerfx.fx_instance_map[pointer_id]); var func_remove=function() { libmain.scenes.pointer_fx.root.removeChild(fx_instance_toend); }; var fx_end_transition=new Transition(); fx_end_transition.obj=fx_instance_toend; fx_end_transition.key="alpha"; fx_end_transition.startval=1.0; fx_end_transition.endval=0.0; fx_end_transition.duration=300; fx_end_transition.onend=func_remove; fx_end_transition.start(); }; libmain.scenes.pointer_fx.root.interactiveChildren=false; libmain.scenes.pointer_fx.judge_rect.eventMode="static"; libmain.scenes.pointer_fx.judge_rect.alpha=0.0; libmain.scenes.pointer_fx.judge_rect.on("pointerdown", on_pointer_down); libmain.scenes.pointer_fx.judge_rect.on("pointermove", on_pointer_move); libmain.scenes.pointer_fx.judge_rect.on("pointerup", on_pointer_up); libmain.scenes.pointer_fx.judge_rect.on("pointerout", on_pointer_up); libmain.scenes.pointer_fx.judge_rect.x=0; libmain.scenes.pointer_fx.judge_rect.y=0; libmain.scenes.pointer_fx.judge_rect.anchor.set(0, 0); //libmain.settings.hud.show_pointerfx window.libpointerfx=libpointerfx; console.log("[libpointerfx] initialized successfully."); })();