diff --git a/harkka3/samson/assets/sounds/fart-01.mp3 b/harkka3/samson/assets/sounds/fart-01.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..5281d53ae2cf9f7a142e419ca0297ef667101a88 Binary files /dev/null and b/harkka3/samson/assets/sounds/fart-01.mp3 differ diff --git a/harkka3/samson/assets/sounds/fart-03.mp3 b/harkka3/samson/assets/sounds/fart-03.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..620f15813bc9c707d0256c654e251499e938d34a Binary files /dev/null and b/harkka3/samson/assets/sounds/fart-03.mp3 differ diff --git a/harkka3/samson/assets/sprites/button1.png b/harkka3/samson/assets/sprites/button1.png new file mode 100644 index 0000000000000000000000000000000000000000..290756463c4845d973e60686791e585057a71e0e Binary files /dev/null and b/harkka3/samson/assets/sprites/button1.png differ diff --git a/harkka3/samson/assets/sprites/button2.png b/harkka3/samson/assets/sprites/button2.png new file mode 100644 index 0000000000000000000000000000000000000000..83e27a8b84628b80d3cb100e7876e3700fe9afdb Binary files /dev/null and b/harkka3/samson/assets/sprites/button2.png differ diff --git a/harkka3/samson/assets/sprites/button3.png b/harkka3/samson/assets/sprites/button3.png new file mode 100644 index 0000000000000000000000000000000000000000..b54dc6ffcbcd23410bf2fd818f7f1f2859c6fc1f Binary files /dev/null and b/harkka3/samson/assets/sprites/button3.png differ diff --git a/harkka3/samson/state2.js b/harkka3/samson/state2.js index bb54baa95865e5bcabd9cd90750660b45afb1ea3..ae1514c3e64750e315889a8a8e15265aefcda854 100644 --- a/harkka3/samson/state2.js +++ b/harkka3/samson/state2.js @@ -1,5 +1,5 @@ demo.state2 = function(){}; -var barrel, bullets, velocity = 1000, nextFire = 0, fireRate = 200, enemy; +var barrel, bullets, velocity = 1000, nextFire = 0, fireRate = 200, enemy, bullet, enemyGroup; demo.state2.prototype = { preload: function(){ @@ -30,24 +30,52 @@ demo.state2.prototype = { barrel.anchor.setTo(0, 0.5); barrel.scale.setTo(0.5); - enemy = game.add.sprite(100, 200, 'alien'); + enemy = game.add.sprite(200, 400, 'alien'); + enemy.anchor.setTo(0.5, 0.5); + enemy.scale.setTo(0.7, 0.7); + game.physics.enable(enemy); + + enemyGroup = game.add.group(); + enemyGroup.enableBody = true; + enemyGroup.physicsBodyType = Phaser.Physics.ARCADE; + + for (let i = 0; i < 3; i++) { + enemyGroup.create(1300, 350 * i + 100, 'alien'); + } + + enemyGroup.setAll('anchor.y', 0.5); + enemyGroup.setAll('anchor.x', 0.5); + enemyGroup.setAll('scale.y', 0.4); + enemyGroup.setAll('scale.x', 0.4); }, update: function(){ barrel.rotation = game.physics.arcade.angleToPointer(barrel); if(game.input.activePointer.isDown) { this.fire(); } + + game.physics.arcade.overlap(bullets, enemy, this.hitEnemy); + game.physics.arcade.overlap(bullets, enemyGroup, this.hitGroup); }, fire: function() { if (game.time.now > nextFire) { nextFire = game.time.now + fireRate; console.log('firing'); - var bullet = bullets.getFirstDead(); + bullet = bullets.getFirstDead(); bullet.reset(barrel.x, barrel.y); game.physics.arcade.moveToPointer(bullet, velocity); bullet.rotation = game.physics.arcade.angleToPointer(bullet); } + }, + hitEnemy: function(){ + console.log('hit'); + enemy.kill(); + bullet.kill(); + }, + hitGroup: function(b, e){ + b.kill(); + e.kill(); } } \ No newline at end of file diff --git a/harkka3/samson/state3.js b/harkka3/samson/state3.js index c803491387866fe2a35a26d21d9bae9cd8841017..73c096b88eee56de3ab1f6597b2b38973ef1c170 100644 --- a/harkka3/samson/state3.js +++ b/harkka3/samson/state3.js @@ -1,9 +1,44 @@ demo.state3 = function(){}; +var sound; + demo.state3.prototype = { - preload: function(){}, + preload: function(){ + game.load.image('button1', 'assets/sprites/button1.png'); + game.load.image('button2', 'assets/sprites/button2.png'); + game.load.image('button3', 'assets/sprites/button3.png'); + game.load.audio('farts', 'assets/sounds/fart-03.mp3'); + }, create: function(){ game.stage.backgroundColor = '#cc3300'; addChangeStateEventListeners(); + + sound = game.add.audio('farts'); + sound.addMarker('low', 0, 0.5); + sound.addMarker('high', 0.5, 1); + + var b1 = game.add.button(100, 100, 'button1', function(){ + changeState(null, 1); + }); + var b2 = game.add.button(400, 400, 'button2', function(){ + changeState(null, 2); + }); + var b3 = game.add.button(700, 700, 'button3'); + + b1.onInputDown.add(this.tint, b1); + b2.onInputDown.add(this.tint, b2); + b3.onInputDown.add(this.tint, b3); + + b1.onInputUp.add(this.untint, b1); + b2.onInputUp.add(this.untint, b2); + b3.onInputUp.add(this.untint, b3); + }, + tint: function(){ + this.tint = 0xbbbbbb; + sound.play('low'); + }, + untint: function(){ + this.tint = 0xffffff; + sound.play('high'); }, update: function(){} } \ No newline at end of file