UNPKG

lettuce

Version:

Lettuce JS, Mini Mobile Framework for Romantic with DSL.

67 lines (57 loc) 2.65 kB
game.PlayScreen = me.ScreenObject.extend({ /** * action to perform on state change */ onResetEvent : function() { // set world size me.game.viewport.bounds.resize(2000, 2000); // add background to the game world me.game.world.addChild(new me.ImageLayer("background", 0, 0, "grid", 1)); var leftContainer = document.querySelector("#leftPanel .controls"); var rightContainer = document.querySelector("#rightPanel .controls"); var controller = game.EmitterController = new game.ParticleEditor.EmitterController(rightContainer); var emitterList = game.EmitterList = new game.ParticleEditor.EmitterList(controller, leftContainer); game.CodeGenerator = new game.ParticleEditor.CodeGenerator(controller, leftContainer); // start the default emitter example game.changeEmitter(); // enable the keyboard me.input.bindKey(me.input.KEY.X, "moveEmitter", false, false); me.input.bindKey(me.input.KEY.C, "moveViewport", false, false); // map the left button click on the enter key me.input.bindPointer(me.input.mouse.LEFT, me.input.KEY.X); me.input.bindPointer(me.input.mouse.MIDDLE, me.input.KEY.C); // flush cached html layout after we added the editor elements me.video.onresize(); // listen to mouse movement var viewport = me.game.viewport; var mousepos = me.input.mouse.pos; var lastX = mousepos.x, lastY = mousepos.y; me.event.subscribe(me.event.MOUSEMOVE, function() { if (me.input.isKeyPressed("moveEmitter")) { var pos; for ( var emitters = emitterList.emitters, i = emitters.length, obj; i--, obj = emitters[i];) { if (!obj.floating) { pos = viewport.localToWorld(mousepos.x, mousepos.y); } else { pos = mousepos; } obj.pos.x = pos.x - obj.width / 2; obj.pos.y = pos.y - obj.height / 2; } me.event.publish("propertyChanged", [ game.EmitterController.emitter ]); } if (me.input.isKeyPressed("moveViewport")) { viewport.move(lastX - mousepos.x, lastY - mousepos.y); } lastX = mousepos.x; lastY = mousepos.y; }); }, /** * action to perform when leaving this screen (state change) */ onDestroyEvent : function() { // remove the emitters from the game world game.EmitterList.clear(); } });