Path: blob/main/public/games/files/garbage-collector/js/levels/level-01.js
1036 views
/*globals define*/1define(function( require ) {2'use strict';34var Utils = require( 'utils' );5var LevelUtils = require( 'levels/utils-level' );67var Door = require( 'entities/door' );8var Laser = require( 'entities/laser' );9var Emitter = require( 'entities/emitter' );10var TractorBeam = require( 'entities/tractor-beam' );11var Trigger = require( 'entities/trigger' );12var TriggerWire = require( 'effects/trigger-wire' );1314var Material = require( 'config/material' );1516var DEG_TO_RAD = Utils.DEG_TO_RAD;1718var level01Data = require( 'text!../../json/level-01.json' );19var level02 = require( 'levels/level-02' );2021return function( game ) {22game.clear();2324game.player.x = -63;25game.player.y = 12;2627game.font = 'bold 36pt "Helvetica Neue", Helvetica, Arial, sans-serif';28var controlsText = 'WASD ←↑→↓ touch';29game.text = controlsText;3031var checkMovement = setInterval(function() {32if ( ( game.player.vx || game.player.vy ) ) {33game.text = '';34clearInterval( checkMovement );35}3637if ( game.text !== controlsText ) {38clearInterval( checkMovement );39}40}, 200 );4142LevelUtils.playerMaterialOff( game );43LevelUtils.addTrail( game );44LevelUtils.addBackground( game, 128, 96, 64, 1 );45LevelUtils.loadData( game, level01Data );4647game.camera.setHeight( 32, {48maintainAspectRatio: true49});5051var tractorBeam = new TractorBeam( -55, 14, 40, 14, {52particleCount: 15,53particleHeight: 854});55tractorBeam.angle = -25 * DEG_TO_RAD;56tractorBeam.force = 3000;57game.add( tractorBeam );5859// Initial laser.60var laser0 = new Laser( -17, 46, Material.ANTIMATTER );61laser0.angle = 60 * DEG_TO_RAD;62game.add( laser0 );6364// Laser web.65var laser1 = new Laser( 19, 47, Material.MATTER );66laser1.angle = 120 * DEG_TO_RAD;67game.add( laser1 );6869var laser2 = new Laser( 35, 33, Material.ANTIMATTER );70laser2.angle = 160 * DEG_TO_RAD;71game.add( laser2 );7273var laser3 = new Laser( 14, 16, Material.ANTIMATTER );74laser3.angle = -60 * DEG_TO_RAD;75game.add( laser3 );7677var laser4 = new Laser( 22, 10, Material.MATTER );78laser4.angle = -50 * DEG_TO_RAD;79game.add( laser4 );8081// Trash.82var trashAM = LevelUtils.normalTrash( Material.ANTIMATTER );8384// Emitters.85var em0 = new Emitter( 35, -15 );86em0.spawnArea = LevelUtils.normalSpawnArea(4);87em0.rate = 0.4;88em0.lifeTime = 3;89em0.speed = 100;90em0.angle = -110 * DEG_TO_RAD;9192em0.particle = trashAM;93em0.properties = LevelUtils.normalTrashProperties( trashAM, Material.ANTIMATTER );9495em0.start( 500 );96game.add( em0 );9798// Lasers to destroy upflow from emitter.99var laser5 = new Laser( 48, -15, Material.ANTIMATTER );100laser5.angle = 160 * DEG_TO_RAD;101game.add( laser5 );102103var laser6 = new Laser( 28, -26, Material.ANTIMATTER );104laser6.angle = 5 * DEG_TO_RAD;105game.add( laser6 );106107// End emitter.108var em1 = new Emitter( -2, -42 );109em1.spawnArea = LevelUtils.normalSpawnArea(4);110em1.rate = 0.2;111em1.lifeTime = 2.5;112em1.speed = 20;113em1.angle = -80 * DEG_TO_RAD;114115em1.particle = trashAM;116em1.properties = LevelUtils.normalTrashProperties( trashAM, Material.ANTIMATTER );117em1.properties.fixture.density = 1;118119em1.start( 1500 );120game.add( em1 );121122// Tractor beam leading to trigger.123var tB1 = new TractorBeam( 35, -34, 20, 5 );124tB1.angle = -176 * DEG_TO_RAD;125tB1.force = 3000;126game.add( tB1 );127128// Trigger.129var trig0 = new Trigger( -15, -29, 3, Material.ANTIMATTER, {130duration: 0.5131});132game.add( trig0 );133134// Door.135var door = new Door( -3, -19, 3, {136duration: 1.2,137callback: function() {138level02( game );139}140});141door.triggers.push( trig0 );142game.add( door );143144// Trigger Wire.145var triggerWire = new TriggerWire( trig0, door, {146vertices: [1470, 0.5,1481, 0.5149],150sourceDirection: TriggerWire.Direction.BOTTOM,151targetDirection: TriggerWire.Direction.TOP152});153game.add( triggerWire );154};155});156157158