X-Git-Url: http://git.megabrutal.com/?p=ld40.git;a=blobdiff_plain;f=ld40.js;h=dffcd503ababccef2f6f680c10315ebcbc47f79e;hp=7bf03d71da756c446f15d2f52cc77f4de7abcdbe;hb=238b09df43c9772cd33c469b837edad3c9ca7955;hpb=b69fd06095d7d61ccbcd237298aeb306331991c3 diff --git a/ld40.js b/ld40.js index 7bf03d7..dffcd50 100644 --- a/ld40.js +++ b/ld40.js @@ -1,4 +1,5 @@ - var game = new Phaser.Game(800, 600, Phaser.AUTO, '', { preload: preload, create: create, update: update }); + var game = new Phaser.Game(800, 600, Phaser.AUTO, '', { preload: function() { this.state.add('GamePlay', GamePlay, true); } }); + var cursors; var player; var walls; var determinations; // I know it's grammatically incorrect. :P @@ -248,70 +249,74 @@ } } - function preload () { - game.load.image('wall', 'wall.png'); - game.load.image('player', 'player.png'); - game.load.image('monster', 'monster.png'); - game.load.image('determination', 'determination.png'); - game.load.image('projectile', 'projectile.png'); + class GamePlay extends Phaser.State { - } - - function create () { + preload() { - game.world.setBounds(0, 0, 800, 600); - game.stage.backgroundColor = '#000000'; - game.physics.startSystem(Phaser.Physics.ARCADE); + game.load.image('wall', 'wall.png'); + game.load.image('player', 'player.png'); + game.load.image('monster', 'monster.png'); + game.load.image('determination', 'determination.png'); + game.load.image('projectile', 'projectile.png'); - walls = game.add.group(); - walls.classType = Phaser.TileSprite; - walls.enableBody = true; + } - walls.add(game.add.tileSprite(WALL_BORDER, WALL_BORDER, game.world.width - (WALL_BORDER * 2), WALL_THICKNESS, 'wall')); - walls.add(game.add.tileSprite(WALL_BORDER, game.world.height - WALL_THICKNESS - WALL_BORDERBOTTOM, game.world.width - (WALL_BORDER * 2), WALL_THICKNESS, 'wall')); - walls.add(game.add.tileSprite(WALL_BORDER, WALL_BORDER, WALL_THICKNESS, game.world.height - WALL_BORDER - WALL_BORDERBOTTOM, 'wall')); - walls.add(game.add.tileSprite(game.world.width - WALL_THICKNESS - WALL_BORDER, WALL_BORDER, WALL_THICKNESS, game.world.height - WALL_BORDER - WALL_BORDERBOTTOM, 'wall')); - walls.children.forEach(function(wall) { wall.body.immovable = true; }); + create() { - determinations = game.add.group(); - nexttime_determination = Math.random() * WAIT_DETERMINATION; + game.world.setBounds(0, 0, 800, 600); + game.stage.backgroundColor = '#000000'; + game.physics.startSystem(Phaser.Physics.ARCADE); - monsters = game.add.group(); - nexttime_monsterspawn = WAIT_MONSTERSPAWN / 4; + walls = game.add.group(); + walls.classType = Phaser.TileSprite; + walls.enableBody = true; - player = new Player(game.world.width / 2, game.world.height / 2); - player.enablePhysics(); - game.add.existing(player); - game.camera.follow(player); - cursors = game.input.keyboard.createCursorKeys(); + walls.add(game.add.tileSprite(WALL_BORDER, WALL_BORDER, game.world.width - (WALL_BORDER * 2), WALL_THICKNESS, 'wall')); + walls.add(game.add.tileSprite(WALL_BORDER, game.world.height - WALL_THICKNESS - WALL_BORDERBOTTOM, game.world.width - (WALL_BORDER * 2), WALL_THICKNESS, 'wall')); + walls.add(game.add.tileSprite(WALL_BORDER, WALL_BORDER, WALL_THICKNESS, game.world.height - WALL_BORDER - WALL_BORDERBOTTOM, 'wall')); + walls.add(game.add.tileSprite(game.world.width - WALL_THICKNESS - WALL_BORDER, WALL_BORDER, WALL_THICKNESS, game.world.height - WALL_BORDER - WALL_BORDERBOTTOM, 'wall')); + walls.children.forEach(function(wall) { wall.body.immovable = true; }); - } + determinations = game.add.group(); + nexttime_determination = Math.random() * WAIT_DETERMINATION; - function update () { + monsters = game.add.group(); + nexttime_monsterspawn = WAIT_MONSTERSPAWN / 4; - game.physics.arcade.collide(player, walls); - game.physics.arcade.overlap(player, determinations, function(p,d) { p.overlap_determination(d); }); - game.physics.arcade.overlap(player, monsters, function(p,m) { m.overlap_player(p); }); + player = new Player(game.world.width / 2, game.world.height / 2); + player.enablePhysics(); + game.add.existing(player); + game.camera.follow(player); + cursors = game.input.keyboard.createCursorKeys(); - if (game.time.now > nexttime_determination) - { - var determination = new Determination((Math.random() * (game.world.width - ((WALL_THICKNESS + WALL_BORDER) * 4))) + ((WALL_THICKNESS + WALL_BORDER) * 2), (Math.random() * (game.world.height - ((WALL_THICKNESS + WALL_BORDER) * 4) - WALL_BORDERBOTTOM)) + ((WALL_THICKNESS + WALL_BORDER) * 2)); - determination.enablePhysics(); - determinations.add(determination); - nexttime_determination = game.time.now + (WAIT_DETERMINATION / 2) + (Math.random() * WAIT_DETERMINATION); } - if (game.time.now > nexttime_monsterspawn) - { - var monster = new Monster(Math.random() * game.world.width, Math.random() * game.world.height); - monster.enablePhysics(); - monsters.add(monster); - var waittime = WAIT_MONSTERSPAWN - ((Math.random() * 2000) * player.love); - nexttime_monsterspawn = game.time.now + waittime; - console.log('Next monster in ' + waittime); - } + update() { + + game.physics.arcade.collide(player, walls); + game.physics.arcade.overlap(player, determinations, function(p,d) { p.overlap_determination(d); }); + game.physics.arcade.overlap(player, monsters, function(p,m) { m.overlap_player(p); }); - if ((game.time.now - player.lastmovetime) > WAIT_KEY) player.body.velocity.x = player.body.velocity.y = 0; + if (game.time.now > nexttime_determination) + { + var determination = new Determination((Math.random() * (game.world.width - ((WALL_THICKNESS + WALL_BORDER) * 4))) + ((WALL_THICKNESS + WALL_BORDER) * 2), (Math.random() * (game.world.height - ((WALL_THICKNESS + WALL_BORDER) * 4) - WALL_BORDERBOTTOM)) + ((WALL_THICKNESS + WALL_BORDER) * 2)); + determination.enablePhysics(); + determinations.add(determination); + nexttime_determination = game.time.now + (WAIT_DETERMINATION / 2) + (Math.random() * WAIT_DETERMINATION); + } + if (game.time.now > nexttime_monsterspawn) + { + var monster = new Monster(Math.random() * game.world.width, Math.random() * game.world.height); + monster.enablePhysics(); + monsters.add(monster); + var waittime = WAIT_MONSTERSPAWN - ((Math.random() * 2000) * player.love); + nexttime_monsterspawn = game.time.now + waittime; + console.log('Next monster in ' + waittime); + } + + if ((game.time.now - player.lastmovetime) > WAIT_KEY) player.body.velocity.x = player.body.velocity.y = 0; + + } }