diff --git a/build.gradle b/build.gradle index 94dc304..a4959a5 100644 --- a/build.gradle +++ b/build.gradle @@ -52,6 +52,7 @@ } def outDir = "${buildDir}/kotlin2js/main/" +def webDir = "${projectDir}/web/" jar { from sourceSets.main.allSource @@ -62,7 +63,6 @@ manifest { attributes( - "Specification-Title": "Kotlin JavaScript Lib", "Kotlin-JS-Module-Name": "test-library" ) } diff --git a/build.gradle b/build.gradle index 94dc304..a4959a5 100644 --- a/build.gradle +++ b/build.gradle @@ -52,6 +52,7 @@ } def outDir = "${buildDir}/kotlin2js/main/" +def webDir = "${projectDir}/web/" jar { from sourceSets.main.allSource @@ -62,7 +63,6 @@ manifest { attributes( - "Specification-Title": "Kotlin JavaScript Lib", "Kotlin-JS-Module-Name": "test-library" ) } diff --git a/src/games/perses/shooter/Shooter.kt b/src/games/perses/shooter/Shooter.kt index 735bbc4..40f1f9a 100644 --- a/src/games/perses/shooter/Shooter.kt +++ b/src/games/perses/shooter/Shooter.kt @@ -4,6 +4,8 @@ import com.persesgames.game.Game import com.persesgames.game.Screen import com.persesgames.input.Keys +import com.persesgames.sound.Music +import com.persesgames.sound.Sound import com.persesgames.sprite.Sprite import com.persesgames.sprite.SpriteBatch import com.persesgames.text.Texts @@ -21,7 +23,7 @@ var sprite = Sprite("SHIP") var music: HTMLAudioElement? = null - //var sound: Sound = Sound("BOOM", "sounds/Explosion7.ogg", 1.0, 1) + var sound: Sound = Sound("BOOM", "sounds/Explosion7.ogg", 1.0, 2) var time: Float = 0f var x = 500f @@ -33,8 +35,10 @@ var alpha = 0.0 var size = 0.0 + var spaceDown = false + override fun loadResources() { - //music = Music.play("music/DST-TacticalSpace.mp3", 1.0, looping = true) + music = Music.play("music/DST-TechnoBasic.mp3", 1.0, looping = true) Textures.load("SHIP", "images/ship2.png") //Textures.loadSpriteSheet("images/data-0.json") @@ -63,23 +67,31 @@ if (Keys.isDown(40)) { y -= 200 * delta } + if (Keys.isDown(32)) { + if (!spaceDown) { + sound.play() + spaceDown = true + } + } else { + spaceDown = false + } } override fun render() { - Texts.drawText(5f, 40f, "Hello! FPS ${Game.fps}", font = "bold 36pt Arial", fillStyle = "rgba(0, 255, 0, 1)") + Texts.drawText(5f, 40f, "Hello! FPS ${Game.fps}", font = "bold 24pt Arial", fillStyle = "rgba(0, 255, 0, 1)") - sprites.draw(sprite, x, y) + sprites.draw(sprite, x, y, scale = (7f + Math.sin(time.toDouble()) * 6f).toFloat(), rotation = time) sprites.render() } } fun main(args: Array) { - Game.view.setToHeight(1000f) - Game.view.drawMode = DrawMode.LINEAR + Game.view.setToHeight(1080f) + Game.view.drawMode = DrawMode.NEAREST - Game.view.minAspectRatio = 0.8f - Game.view.maxAspectRatio = 0.8f + Game.view.minAspectRatio = 1920f/1080f + Game.view.maxAspectRatio = 1920f/1080f Game.start(WelcomeScreen()) } diff --git a/build.gradle b/build.gradle index 94dc304..a4959a5 100644 --- a/build.gradle +++ b/build.gradle @@ -52,6 +52,7 @@ } def outDir = "${buildDir}/kotlin2js/main/" +def webDir = "${projectDir}/web/" jar { from sourceSets.main.allSource @@ -62,7 +63,6 @@ manifest { attributes( - "Specification-Title": "Kotlin JavaScript Lib", "Kotlin-JS-Module-Name": "test-library" ) } diff --git a/src/games/perses/shooter/Shooter.kt b/src/games/perses/shooter/Shooter.kt index 735bbc4..40f1f9a 100644 --- a/src/games/perses/shooter/Shooter.kt +++ b/src/games/perses/shooter/Shooter.kt @@ -4,6 +4,8 @@ import com.persesgames.game.Game import com.persesgames.game.Screen import com.persesgames.input.Keys +import com.persesgames.sound.Music +import com.persesgames.sound.Sound import com.persesgames.sprite.Sprite import com.persesgames.sprite.SpriteBatch import com.persesgames.text.Texts @@ -21,7 +23,7 @@ var sprite = Sprite("SHIP") var music: HTMLAudioElement? = null - //var sound: Sound = Sound("BOOM", "sounds/Explosion7.ogg", 1.0, 1) + var sound: Sound = Sound("BOOM", "sounds/Explosion7.ogg", 1.0, 2) var time: Float = 0f var x = 500f @@ -33,8 +35,10 @@ var alpha = 0.0 var size = 0.0 + var spaceDown = false + override fun loadResources() { - //music = Music.play("music/DST-TacticalSpace.mp3", 1.0, looping = true) + music = Music.play("music/DST-TechnoBasic.mp3", 1.0, looping = true) Textures.load("SHIP", "images/ship2.png") //Textures.loadSpriteSheet("images/data-0.json") @@ -63,23 +67,31 @@ if (Keys.isDown(40)) { y -= 200 * delta } + if (Keys.isDown(32)) { + if (!spaceDown) { + sound.play() + spaceDown = true + } + } else { + spaceDown = false + } } override fun render() { - Texts.drawText(5f, 40f, "Hello! FPS ${Game.fps}", font = "bold 36pt Arial", fillStyle = "rgba(0, 255, 0, 1)") + Texts.drawText(5f, 40f, "Hello! FPS ${Game.fps}", font = "bold 24pt Arial", fillStyle = "rgba(0, 255, 0, 1)") - sprites.draw(sprite, x, y) + sprites.draw(sprite, x, y, scale = (7f + Math.sin(time.toDouble()) * 6f).toFloat(), rotation = time) sprites.render() } } fun main(args: Array) { - Game.view.setToHeight(1000f) - Game.view.drawMode = DrawMode.LINEAR + Game.view.setToHeight(1080f) + Game.view.drawMode = DrawMode.NEAREST - Game.view.minAspectRatio = 0.8f - Game.view.maxAspectRatio = 0.8f + Game.view.minAspectRatio = 1920f/1080f + Game.view.maxAspectRatio = 1920f/1080f Game.start(WelcomeScreen()) } diff --git a/web/js/generated/KotlinTest.js b/web/js/generated/KotlinTest.js index 96b3ea2..bd45015 100644 --- a/web/js/generated/KotlinTest.js +++ b/web/js/generated/KotlinTest.js @@ -6,6 +6,7 @@ } var KotlinTest = function (_, Kotlin, $module$kudens) { 'use strict'; + var sound_0 = $module$kudens.com.persesgames.sound; var texture_0 = $module$kudens.com.persesgames.texture; var game_0 = $module$kudens.com.persesgames.game; var input_0 = $module$kudens.com.persesgames.input; @@ -22,7 +23,7 @@ this.sprites = new SpriteBatch(); this.sprite = new Sprite('SHIP'); this.music = null; - this.sound = new Sound('BOOM', 'sounds/Explosion7.ogg', 1.0, 1); + this.sound = new Sound('BOOM', 'sounds/Explosion7.ogg', 1.0, 2); this.time = 0.0; this.x = 500.0; this.y = 500.0; @@ -31,8 +32,10 @@ this.blue = 0.0; this.alpha = 0.0; this.size = 0.0; + this.spaceDown = false; } WelcomeScreen.prototype.loadResources = function () { + this.music = sound_0.Music.play_1truf$('music/DST-TechnoBasic.mp3', 1.0, true); texture_0.Textures.load_puj7f4$('SHIP', 'images/ship2.png'); this.x = game_0.Game.view.width / 2.0; }; @@ -55,10 +58,19 @@ if (input_0.Keys.isDown_za3lpa$(40)) { this.y -= 200 * delta; } + if (input_0.Keys.isDown_za3lpa$(32)) { + if (!this.spaceDown) { + this.sound.play(); + this.spaceDown = true; + } + } + else { + this.spaceDown = false; + } }; WelcomeScreen.prototype.render = function () { - text_0.Texts.drawText_k35s1u$(5.0, 40.0, 'Hello! FPS ' + game_0.Game.fps, 'bold 36pt Arial', 'rgba(0, 255, 0, 1)'); - this.sprites.draw_xrfpo0$(this.sprite, this.x, this.y); + text_0.Texts.drawText_k35s1u$(5.0, 40.0, 'Hello! FPS ' + game_0.Game.fps, 'bold 24pt Arial', 'rgba(0, 255, 0, 1)'); + this.sprites.draw_xrfpo0$(this.sprite, this.x, this.y, 7.0 + Math.sin(this.time) * 6.0, this.time); this.sprites.render(); }; WelcomeScreen.$metadata$ = { @@ -68,10 +80,10 @@ baseClasses: [Screen] }; function main(args) { - game_0.Game.view.setToHeight_mx4ult$(1000.0); - game_0.Game.view.drawMode = DrawMode.LINEAR; - game_0.Game.view.minAspectRatio = 0.8; - game_0.Game.view.maxAspectRatio = 0.8; + game_0.Game.view.setToHeight_mx4ult$(1080.0); + game_0.Game.view.drawMode = DrawMode.NEAREST; + game_0.Game.view.minAspectRatio = 1920.0 / 1080.0; + game_0.Game.view.maxAspectRatio = 1920.0 / 1080.0; game_0.Game.start_ocgj3q$(new WelcomeScreen()); } var package$games = _.games || (_.games = {}); diff --git a/build.gradle b/build.gradle index 94dc304..a4959a5 100644 --- a/build.gradle +++ b/build.gradle @@ -52,6 +52,7 @@ } def outDir = "${buildDir}/kotlin2js/main/" +def webDir = "${projectDir}/web/" jar { from sourceSets.main.allSource @@ -62,7 +63,6 @@ manifest { attributes( - "Specification-Title": "Kotlin JavaScript Lib", "Kotlin-JS-Module-Name": "test-library" ) } diff --git a/src/games/perses/shooter/Shooter.kt b/src/games/perses/shooter/Shooter.kt index 735bbc4..40f1f9a 100644 --- a/src/games/perses/shooter/Shooter.kt +++ b/src/games/perses/shooter/Shooter.kt @@ -4,6 +4,8 @@ import com.persesgames.game.Game import com.persesgames.game.Screen import com.persesgames.input.Keys +import com.persesgames.sound.Music +import com.persesgames.sound.Sound import com.persesgames.sprite.Sprite import com.persesgames.sprite.SpriteBatch import com.persesgames.text.Texts @@ -21,7 +23,7 @@ var sprite = Sprite("SHIP") var music: HTMLAudioElement? = null - //var sound: Sound = Sound("BOOM", "sounds/Explosion7.ogg", 1.0, 1) + var sound: Sound = Sound("BOOM", "sounds/Explosion7.ogg", 1.0, 2) var time: Float = 0f var x = 500f @@ -33,8 +35,10 @@ var alpha = 0.0 var size = 0.0 + var spaceDown = false + override fun loadResources() { - //music = Music.play("music/DST-TacticalSpace.mp3", 1.0, looping = true) + music = Music.play("music/DST-TechnoBasic.mp3", 1.0, looping = true) Textures.load("SHIP", "images/ship2.png") //Textures.loadSpriteSheet("images/data-0.json") @@ -63,23 +67,31 @@ if (Keys.isDown(40)) { y -= 200 * delta } + if (Keys.isDown(32)) { + if (!spaceDown) { + sound.play() + spaceDown = true + } + } else { + spaceDown = false + } } override fun render() { - Texts.drawText(5f, 40f, "Hello! FPS ${Game.fps}", font = "bold 36pt Arial", fillStyle = "rgba(0, 255, 0, 1)") + Texts.drawText(5f, 40f, "Hello! FPS ${Game.fps}", font = "bold 24pt Arial", fillStyle = "rgba(0, 255, 0, 1)") - sprites.draw(sprite, x, y) + sprites.draw(sprite, x, y, scale = (7f + Math.sin(time.toDouble()) * 6f).toFloat(), rotation = time) sprites.render() } } fun main(args: Array) { - Game.view.setToHeight(1000f) - Game.view.drawMode = DrawMode.LINEAR + Game.view.setToHeight(1080f) + Game.view.drawMode = DrawMode.NEAREST - Game.view.minAspectRatio = 0.8f - Game.view.maxAspectRatio = 0.8f + Game.view.minAspectRatio = 1920f/1080f + Game.view.maxAspectRatio = 1920f/1080f Game.start(WelcomeScreen()) } diff --git a/web/js/generated/KotlinTest.js b/web/js/generated/KotlinTest.js index 96b3ea2..bd45015 100644 --- a/web/js/generated/KotlinTest.js +++ b/web/js/generated/KotlinTest.js @@ -6,6 +6,7 @@ } var KotlinTest = function (_, Kotlin, $module$kudens) { 'use strict'; + var sound_0 = $module$kudens.com.persesgames.sound; var texture_0 = $module$kudens.com.persesgames.texture; var game_0 = $module$kudens.com.persesgames.game; var input_0 = $module$kudens.com.persesgames.input; @@ -22,7 +23,7 @@ this.sprites = new SpriteBatch(); this.sprite = new Sprite('SHIP'); this.music = null; - this.sound = new Sound('BOOM', 'sounds/Explosion7.ogg', 1.0, 1); + this.sound = new Sound('BOOM', 'sounds/Explosion7.ogg', 1.0, 2); this.time = 0.0; this.x = 500.0; this.y = 500.0; @@ -31,8 +32,10 @@ this.blue = 0.0; this.alpha = 0.0; this.size = 0.0; + this.spaceDown = false; } WelcomeScreen.prototype.loadResources = function () { + this.music = sound_0.Music.play_1truf$('music/DST-TechnoBasic.mp3', 1.0, true); texture_0.Textures.load_puj7f4$('SHIP', 'images/ship2.png'); this.x = game_0.Game.view.width / 2.0; }; @@ -55,10 +58,19 @@ if (input_0.Keys.isDown_za3lpa$(40)) { this.y -= 200 * delta; } + if (input_0.Keys.isDown_za3lpa$(32)) { + if (!this.spaceDown) { + this.sound.play(); + this.spaceDown = true; + } + } + else { + this.spaceDown = false; + } }; WelcomeScreen.prototype.render = function () { - text_0.Texts.drawText_k35s1u$(5.0, 40.0, 'Hello! FPS ' + game_0.Game.fps, 'bold 36pt Arial', 'rgba(0, 255, 0, 1)'); - this.sprites.draw_xrfpo0$(this.sprite, this.x, this.y); + text_0.Texts.drawText_k35s1u$(5.0, 40.0, 'Hello! FPS ' + game_0.Game.fps, 'bold 24pt Arial', 'rgba(0, 255, 0, 1)'); + this.sprites.draw_xrfpo0$(this.sprite, this.x, this.y, 7.0 + Math.sin(this.time) * 6.0, this.time); this.sprites.render(); }; WelcomeScreen.$metadata$ = { @@ -68,10 +80,10 @@ baseClasses: [Screen] }; function main(args) { - game_0.Game.view.setToHeight_mx4ult$(1000.0); - game_0.Game.view.drawMode = DrawMode.LINEAR; - game_0.Game.view.minAspectRatio = 0.8; - game_0.Game.view.maxAspectRatio = 0.8; + game_0.Game.view.setToHeight_mx4ult$(1080.0); + game_0.Game.view.drawMode = DrawMode.NEAREST; + game_0.Game.view.minAspectRatio = 1920.0 / 1080.0; + game_0.Game.view.maxAspectRatio = 1920.0 / 1080.0; game_0.Game.start_ocgj3q$(new WelcomeScreen()); } var package$games = _.games || (_.games = {}); diff --git a/web/js/generated/KotlinTest.js.map b/web/js/generated/KotlinTest.js.map index e501f5b..593b76c 100644 --- a/web/js/generated/KotlinTest.js.map +++ b/web/js/generated/KotlinTest.js.map @@ -1 +1 @@ -{"version":3,"file":"KotlinTest.js","sources":["file:///home/rnentjes/Development/kotlin/use-webgl-kotlin-lib-test/src/games/perses/shooter/Shooter.kt"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;mBAoBkB;kBAED;iBACkB;iBACZ,2CAAuC,KAAK;gBAUpD;aANH;aAAA;eAMG;iBAAA;gBAAA;iBAAA;gBAAA;;;cAKP;IAGA,SAAI,OAAA,kBAAkB;;;IAItB,YAAY;IAEZ,WAAM,AAgBG,MAhBG,AAAA,SAAS,AAAA,OAAO,OAEQ;IADpC,aAAQ,AAeC,MAfK,AAAA,SAAS,AAAA,OAoBR,OAnBqB;IAApC,YAAO,AAcE,MAdI,AAAA,SAAS,AAAA,OAAO,OAAO;IACpC,aAAQ,AAA8B,MAAxB,AAAA,SAAS,AAAA,OAAO,QAAQ;IACtC,YAAO,AAAA,KAAK,AAAA,SAAS,QAAmB;IAExC,YAAI,oBAAY;MACZ,UAAK,AASA,MATM;;IAEf,YAAI,oBAAY;MACZ,UAAK,AAMA,MANM;;IAEf,YAAI,oBAAY;MACZ,UAAK,AAGA,MAHM;;IAEf,YAAI,oBAAY;MACZ,UAAK,AAAA,MAAM;;;;WAKf,uBAAe,KAAI,MAAK,uBAAc;SAEtC,0BAAa,aAAQ,QAAG;SACxB;;;;;;;;;WAMJ,8BAAsB;IACtB,OAAA;IAEA,OAAA,2BAC2B;IAA3B,OAAA,2BAA2B;WAE3B,mBAAW;;;;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"KotlinTest.js","sources":["file:///home/rnentjes/Development/kotlin/use-webgl-kotlin-lib-test/src/games/perses/shooter/Shooter.kt"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;mBAqBkB;kBAED;iBACkB;iBACZ,2CAAuC,KAAK;gBAUpD;aANH;aAAA;eAMG;iBAAA;gBAAA;iBAAA;gBAAA;qBAEK;;;IAGZ,qBAAQ,+CAf8C,KA+ClC;cA9BpB;IAGA,SAAI,OAAA,kBAAkB;;;IAItB,YAAY;IAEZ,WAAM,AAgBG,MAhBG,AAAA,SAAS,AAAA,OAAO,OAEQ;IADpC,aAAQ,AAeC,MAfK,AAAA,SAAS,AAAA,OA4BR,OA3BqB;IAApC,YAAO,AAcE,MAdI,AAAA,SAAS,AAAA,OA6Bc,OA7BA;IACpC,aAAQ,AAA8B,MAAxB,AAAA,SAAS,AAAA,OAAO,QAAQ;IACtC,YAAO,AAAA,KAAK,AAAA,SAAS,QAAmB;IAExC,YAAI,oBAAY;MACZ,UAAK,AASA,MATM;;IAEf,YAAI,oBAAY;MACZ,UAAK,AAMA,MANM;;IAEf,YAAI,oBAAY;MACZ,UAAK,AAGA,MAHM;;IAEf,YAAI,oBAAY;MACZ,UAAK,AAAA,MAAM;;IAEf,YAAI,oBAAY;MACZ,IAAI,MAAC;aACD;QACA,iBAAY;;;;MAGhB,iBAtCQ;;;;WA2CZ,uBAAe,KAAI,MAAK,uBAAc;SAEtC,0BAAa,aAAQ,QAAG,GAAY,AAAA,MAAK,AAAA,cAAS,QAAmB,UAA0B;SAC/F;;;;;;;;;WAMJ,8BAIiC;IAHjC,OAAA;IAEA,OAAA,2BAA2B,AACA,SAAM;IAAjC,OAAA,2BAA2B,AAAA,SAAM;WAEjC,mBAAW;;;;;;;;;;;"} \ No newline at end of file diff --git a/build.gradle b/build.gradle index 94dc304..a4959a5 100644 --- a/build.gradle +++ b/build.gradle @@ -52,6 +52,7 @@ } def outDir = "${buildDir}/kotlin2js/main/" +def webDir = "${projectDir}/web/" jar { from sourceSets.main.allSource @@ -62,7 +63,6 @@ manifest { attributes( - "Specification-Title": "Kotlin JavaScript Lib", "Kotlin-JS-Module-Name": "test-library" ) } diff --git a/src/games/perses/shooter/Shooter.kt b/src/games/perses/shooter/Shooter.kt index 735bbc4..40f1f9a 100644 --- a/src/games/perses/shooter/Shooter.kt +++ b/src/games/perses/shooter/Shooter.kt @@ -4,6 +4,8 @@ import com.persesgames.game.Game import com.persesgames.game.Screen import com.persesgames.input.Keys +import com.persesgames.sound.Music +import com.persesgames.sound.Sound import com.persesgames.sprite.Sprite import com.persesgames.sprite.SpriteBatch import com.persesgames.text.Texts @@ -21,7 +23,7 @@ var sprite = Sprite("SHIP") var music: HTMLAudioElement? = null - //var sound: Sound = Sound("BOOM", "sounds/Explosion7.ogg", 1.0, 1) + var sound: Sound = Sound("BOOM", "sounds/Explosion7.ogg", 1.0, 2) var time: Float = 0f var x = 500f @@ -33,8 +35,10 @@ var alpha = 0.0 var size = 0.0 + var spaceDown = false + override fun loadResources() { - //music = Music.play("music/DST-TacticalSpace.mp3", 1.0, looping = true) + music = Music.play("music/DST-TechnoBasic.mp3", 1.0, looping = true) Textures.load("SHIP", "images/ship2.png") //Textures.loadSpriteSheet("images/data-0.json") @@ -63,23 +67,31 @@ if (Keys.isDown(40)) { y -= 200 * delta } + if (Keys.isDown(32)) { + if (!spaceDown) { + sound.play() + spaceDown = true + } + } else { + spaceDown = false + } } override fun render() { - Texts.drawText(5f, 40f, "Hello! FPS ${Game.fps}", font = "bold 36pt Arial", fillStyle = "rgba(0, 255, 0, 1)") + Texts.drawText(5f, 40f, "Hello! FPS ${Game.fps}", font = "bold 24pt Arial", fillStyle = "rgba(0, 255, 0, 1)") - sprites.draw(sprite, x, y) + sprites.draw(sprite, x, y, scale = (7f + Math.sin(time.toDouble()) * 6f).toFloat(), rotation = time) sprites.render() } } fun main(args: Array) { - Game.view.setToHeight(1000f) - Game.view.drawMode = DrawMode.LINEAR + Game.view.setToHeight(1080f) + Game.view.drawMode = DrawMode.NEAREST - Game.view.minAspectRatio = 0.8f - Game.view.maxAspectRatio = 0.8f + Game.view.minAspectRatio = 1920f/1080f + Game.view.maxAspectRatio = 1920f/1080f Game.start(WelcomeScreen()) } diff --git a/web/js/generated/KotlinTest.js b/web/js/generated/KotlinTest.js index 96b3ea2..bd45015 100644 --- a/web/js/generated/KotlinTest.js +++ b/web/js/generated/KotlinTest.js @@ -6,6 +6,7 @@ } var KotlinTest = function (_, Kotlin, $module$kudens) { 'use strict'; + var sound_0 = $module$kudens.com.persesgames.sound; var texture_0 = $module$kudens.com.persesgames.texture; var game_0 = $module$kudens.com.persesgames.game; var input_0 = $module$kudens.com.persesgames.input; @@ -22,7 +23,7 @@ this.sprites = new SpriteBatch(); this.sprite = new Sprite('SHIP'); this.music = null; - this.sound = new Sound('BOOM', 'sounds/Explosion7.ogg', 1.0, 1); + this.sound = new Sound('BOOM', 'sounds/Explosion7.ogg', 1.0, 2); this.time = 0.0; this.x = 500.0; this.y = 500.0; @@ -31,8 +32,10 @@ this.blue = 0.0; this.alpha = 0.0; this.size = 0.0; + this.spaceDown = false; } WelcomeScreen.prototype.loadResources = function () { + this.music = sound_0.Music.play_1truf$('music/DST-TechnoBasic.mp3', 1.0, true); texture_0.Textures.load_puj7f4$('SHIP', 'images/ship2.png'); this.x = game_0.Game.view.width / 2.0; }; @@ -55,10 +58,19 @@ if (input_0.Keys.isDown_za3lpa$(40)) { this.y -= 200 * delta; } + if (input_0.Keys.isDown_za3lpa$(32)) { + if (!this.spaceDown) { + this.sound.play(); + this.spaceDown = true; + } + } + else { + this.spaceDown = false; + } }; WelcomeScreen.prototype.render = function () { - text_0.Texts.drawText_k35s1u$(5.0, 40.0, 'Hello! FPS ' + game_0.Game.fps, 'bold 36pt Arial', 'rgba(0, 255, 0, 1)'); - this.sprites.draw_xrfpo0$(this.sprite, this.x, this.y); + text_0.Texts.drawText_k35s1u$(5.0, 40.0, 'Hello! FPS ' + game_0.Game.fps, 'bold 24pt Arial', 'rgba(0, 255, 0, 1)'); + this.sprites.draw_xrfpo0$(this.sprite, this.x, this.y, 7.0 + Math.sin(this.time) * 6.0, this.time); this.sprites.render(); }; WelcomeScreen.$metadata$ = { @@ -68,10 +80,10 @@ baseClasses: [Screen] }; function main(args) { - game_0.Game.view.setToHeight_mx4ult$(1000.0); - game_0.Game.view.drawMode = DrawMode.LINEAR; - game_0.Game.view.minAspectRatio = 0.8; - game_0.Game.view.maxAspectRatio = 0.8; + game_0.Game.view.setToHeight_mx4ult$(1080.0); + game_0.Game.view.drawMode = DrawMode.NEAREST; + game_0.Game.view.minAspectRatio = 1920.0 / 1080.0; + game_0.Game.view.maxAspectRatio = 1920.0 / 1080.0; game_0.Game.start_ocgj3q$(new WelcomeScreen()); } var package$games = _.games || (_.games = {}); diff --git a/web/js/generated/KotlinTest.js.map b/web/js/generated/KotlinTest.js.map index e501f5b..593b76c 100644 --- a/web/js/generated/KotlinTest.js.map +++ b/web/js/generated/KotlinTest.js.map @@ -1 +1 @@ -{"version":3,"file":"KotlinTest.js","sources":["file:///home/rnentjes/Development/kotlin/use-webgl-kotlin-lib-test/src/games/perses/shooter/Shooter.kt"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;mBAoBkB;kBAED;iBACkB;iBACZ,2CAAuC,KAAK;gBAUpD;aANH;aAAA;eAMG;iBAAA;gBAAA;iBAAA;gBAAA;;;cAKP;IAGA,SAAI,OAAA,kBAAkB;;;IAItB,YAAY;IAEZ,WAAM,AAgBG,MAhBG,AAAA,SAAS,AAAA,OAAO,OAEQ;IADpC,aAAQ,AAeC,MAfK,AAAA,SAAS,AAAA,OAoBR,OAnBqB;IAApC,YAAO,AAcE,MAdI,AAAA,SAAS,AAAA,OAAO,OAAO;IACpC,aAAQ,AAA8B,MAAxB,AAAA,SAAS,AAAA,OAAO,QAAQ;IACtC,YAAO,AAAA,KAAK,AAAA,SAAS,QAAmB;IAExC,YAAI,oBAAY;MACZ,UAAK,AASA,MATM;;IAEf,YAAI,oBAAY;MACZ,UAAK,AAMA,MANM;;IAEf,YAAI,oBAAY;MACZ,UAAK,AAGA,MAHM;;IAEf,YAAI,oBAAY;MACZ,UAAK,AAAA,MAAM;;;;WAKf,uBAAe,KAAI,MAAK,uBAAc;SAEtC,0BAAa,aAAQ,QAAG;SACxB;;;;;;;;;WAMJ,8BAAsB;IACtB,OAAA;IAEA,OAAA,2BAC2B;IAA3B,OAAA,2BAA2B;WAE3B,mBAAW;;;;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"KotlinTest.js","sources":["file:///home/rnentjes/Development/kotlin/use-webgl-kotlin-lib-test/src/games/perses/shooter/Shooter.kt"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;mBAqBkB;kBAED;iBACkB;iBACZ,2CAAuC,KAAK;gBAUpD;aANH;aAAA;eAMG;iBAAA;gBAAA;iBAAA;gBAAA;qBAEK;;;IAGZ,qBAAQ,+CAf8C,KA+ClC;cA9BpB;IAGA,SAAI,OAAA,kBAAkB;;;IAItB,YAAY;IAEZ,WAAM,AAgBG,MAhBG,AAAA,SAAS,AAAA,OAAO,OAEQ;IADpC,aAAQ,AAeC,MAfK,AAAA,SAAS,AAAA,OA4BR,OA3BqB;IAApC,YAAO,AAcE,MAdI,AAAA,SAAS,AAAA,OA6Bc,OA7BA;IACpC,aAAQ,AAA8B,MAAxB,AAAA,SAAS,AAAA,OAAO,QAAQ;IACtC,YAAO,AAAA,KAAK,AAAA,SAAS,QAAmB;IAExC,YAAI,oBAAY;MACZ,UAAK,AASA,MATM;;IAEf,YAAI,oBAAY;MACZ,UAAK,AAMA,MANM;;IAEf,YAAI,oBAAY;MACZ,UAAK,AAGA,MAHM;;IAEf,YAAI,oBAAY;MACZ,UAAK,AAAA,MAAM;;IAEf,YAAI,oBAAY;MACZ,IAAI,MAAC;aACD;QACA,iBAAY;;;;MAGhB,iBAtCQ;;;;WA2CZ,uBAAe,KAAI,MAAK,uBAAc;SAEtC,0BAAa,aAAQ,QAAG,GAAY,AAAA,MAAK,AAAA,cAAS,QAAmB,UAA0B;SAC/F;;;;;;;;;WAMJ,8BAIiC;IAHjC,OAAA;IAEA,OAAA,2BAA2B,AACA,SAAM;IAAjC,OAAA,2BAA2B,AAAA,SAAM;WAEjC,mBAAW;;;;;;;;;;;"} \ No newline at end of file diff --git a/web/js/generated/KotlinTest.meta.js b/web/js/generated/KotlinTest.meta.js index a7b92e7..d96ef6c 100644 --- a/web/js/generated/KotlinTest.meta.js +++ b/web/js/generated/KotlinTest.meta.js @@ -1 +1 @@ -// Kotlin.kotlin_module_metadata(6, "KotlinTest", "H4sIAAAAAAAAAI0W2XIcNXDP8aZ9RNk4xtlgO7Zj57RnYxOq8sBDUkC5AlRBDAVvKXlG3h17dmaRND74AF555SP4AD6B/+A7qKJ1zO7Y0Xi3atSHplvdarXUDVuwnvKef74f+Bd9rsbuaSrjKPlwHMXsg6RHMWtX4Cls5WJhOvAzHqvhFH0Nr3LRJJXRcRRQGaWJuMo5VTdg1Uz7JwI/p8xL2AnQgyHjgokeHTDhizRLQgOdKtuwYZeVTEgNnHLrsPLDT0kkfQ1visNpn6dJKnLsFC1EVoUMh1NsBe6r/QQlv1/AE+s7Z8cxC2SOJx2TmhcGOkV34Gkuep7yUwxnjp3ir+Dl9bAP6NCXKBMaWLY7ZQWH8/ce2GmfJpgeOjUKpFNnDR6c0DPqK1B2jKOd7QcToqqO5iiL4tDAsqiaHZvdW+QU3Qf/o+zs05Bxi8puzLUzxvSPEsl4QuMRMSGAQ56iVRkp/0akU8eH58XEZGcskcIip8Iz2M79o0kPDRhUllauPMHhFP+vDt0rsRX9NJU6XBrnSkLyKOlZtX/qf9WgqdXAM3owYxVg/mcWowfsMOCMJVBHGmYL7kBDIfDs/yaNh30KnrED3pdphiagcRRnDG0YmUEmogDqGDWoY9igjnEDcvDjd9++ycIo/SpmAwwe1DkLoSGi31BTv0bQPNTIE0MeSWXU4BnDC5g1E2+pDPrQkBE61vw6TqmE6gVUL2Ee6fA9w8V4oFxX7xJ4nCWYSuBlw5Dias2QxZJCY0BxAw3KewKabzinl2hPh+3PKtRIBRqtCqkirJIaeK0aqS9XcL6BMw3SRNgkHs57ZEbP30K6RUDTC/gXyG2Es4Tg/By5s1zRGovILZB7lltCjpBPkFP4vsYt8sDiNYu3LN5G/AW8tqkVpDzNZJQwnfroNoa8SJak//NpsieIqcDf7TpU6/A57E6jU7DTgFpLX5uPM1v2NSi7Z9cVFNRgmiIrznpqTCxpF1KDsop68mvG+KWfRfg5ZTZhza5lkFPoMWwWDZbXZ0ehUBoZZzm+qRzlhfWcHfViA8t8tvsyyCn0CB7m7cTZQI1pG4ooGWbSQKdKF17YhQVD80mg0iinnBqfQXeU57F64nVHVKAnlnOGT4SB0ybbzZlReNTHRaf8THM/0MBxygcUd1qknWq78MyamK6YuYqnfh8tcir9UYPHzvt8pQ7snp6IQfvf6nJ9D5/B7szbyjsgqx1FLx4sIf1wRK+SdUPvtUhHU3eR2jDUwdL7WdLS9K1ffl9AZrbIzI2ZeTLf8VqV5Wp33vxrFwXvFplFzdw2zJJm7hhmWTNtw1hnDPNpkVkZMX+3iml/U99p29OTTDW8Gk57Owp02bXTDRq+5rEGZQsXH7sh5QJLVY7LXA7ZMc1iuTOkwSntuTNi3BMVasqYLOsZxy/05Cs8QDcjYa7wiHZqfQNPnNl5aPD3+T5Ueq51VsimzT1CHnXmWpW211b8UveeOtlx23rE03OBy1g8TTkJhFBj2q4tYVINlzipdmy/hDgLWSL+B3EjRSNHDgAA"); +// Kotlin.kotlin_module_metadata(6, "KotlinTest", "H4sIAAAAAAAAAI0W2W4bN1C35fERWnEcRant2I6PHLYUuymQhz7ESAsjbYE2btG+BfQuLa292lVJro9+QP+hQB/6GX3sx/QD+gkdHiutHa4lYDkHObMzHA45A5uwFvNu+/LAa1/1uBp757EMg+jjaRCyj5KehKxRgGewmYr5cb+d8FANp+gbeJ2KRrEMTgOPyiCOxE3OqboOK2a6fSbwc8q8gl0PPRgwLpjo0j4TbREnkW+gU2UL1u1vJRNSA6fcGiz/8FMUyLaGd8XhvMfjKBYpdopmIqtChsMptgyP1H68nOWXsGN95+w0ZJ5M8bhjUvPCQKfoLjxLRS9jfo7hTLFT/DW8uh32Ph20Jcr4BubtTlnB4VzeBzvdphGmh06NDOnUWYXHZ/SCthXIO8bhzg68MVFVR3OSBKFvYF5UzY7N7i1yih5A+5Ps7FGfcYvybsytM8b0DyLJeETDITEmgAMeo1UZKP+GpFOnDS+yickuWCSFRU6F57CV+kejLhowKC+tXHmCwyn+RwU6N2IrenEsdbg0TpWE5EHUtWr/lv8pQVWrQc3owZRVgLmfWYgesGOPMxZBGWmYybgDFYWgZterNBz0KNSMHai9ixM0AZWTMGFow8j0ExF4UMaoQRnDBmWMG5CjH7/79m3iB/FXIetj8KDMmQ8VEfyGmvo1guqxRtNiQD32Lr6MYOowjkNG0ZIY8EAqRwyeMryAGTNxSKXXg4oM0Nnq12FMJRSvoHgNc0j7Hxga4J7ajnqroMZZhOkFtWTgU/xb1WehpFDpU9xUhfKugOpbzuk12tOh/KsIJVKASr1AigiLpAS1eomUmwWcr+BMhVQRVkkN52tkSs9PI10noOl5XAVyD+EMITg/SxaaBa2xiNw8eYCckn5oZ5vILZBHenaBPLaryxavWbxt8Q7iL+GNTTsv5nEig4jpa4Hu43FkyZyr8WKSzPJCKnC5UYZiGb6AvUl0MnYqUKrrK/Vp1sueBnl38LaCghpMUoDFRVeNseXuSmqQV23Pfk0Yv24nAX5OmQ1Ytf8yyCm0DRtZg/m121FElEbCWYrvKlVp0b1kJ93QwDyf7b4Mcgo9hSdpq3HRV2PSZiOIBok00KnSgZf2x4Kh+chTaZRSTo3PoTPM81A9/7pbytBjSz3Dp8LASZPt7szIPPijgpR/pqkfaOA05n2KO83STrU9eG5NTFboXIVVv5MWOZX+LMG28z7fqBF752ei3/iv2Czv43PYmTosvAfypKXoB0dLSK8P6RWyYej9OvlMU4tIPTXU0dKHGVLX9PQvv88jM5NlZkfMHJlr1eqFZrEzZ9YaWcH7WWZRM/cMs6QZYpimZhqGaWnmvmGsZ4ZZyTKrQ+bvevYO3NWg2j72LFGdsYaTXpUMnXcHdSeHT3uoQd6Psy/fgHKB9SvFeS777JQmodzFwntOu+70GDVPmQIzIvOay9FzPf4+99HNQJj7PKSdWt/AjjNVjw3+Pt2HytXV1jLZtIlIyFZrtl5o1BqKf9hZUic76m9PeHwp8DcWT1JbPCHUmLS9i5hUwyVOii3bWCFOfBaJ/wE3ketYcA4AAA=="); diff --git a/build.gradle b/build.gradle index 94dc304..a4959a5 100644 --- a/build.gradle +++ b/build.gradle @@ -52,6 +52,7 @@ } def outDir = "${buildDir}/kotlin2js/main/" +def webDir = "${projectDir}/web/" jar { from sourceSets.main.allSource @@ -62,7 +63,6 @@ manifest { attributes( - "Specification-Title": "Kotlin JavaScript Lib", "Kotlin-JS-Module-Name": "test-library" ) } diff --git a/src/games/perses/shooter/Shooter.kt b/src/games/perses/shooter/Shooter.kt index 735bbc4..40f1f9a 100644 --- a/src/games/perses/shooter/Shooter.kt +++ b/src/games/perses/shooter/Shooter.kt @@ -4,6 +4,8 @@ import com.persesgames.game.Game import com.persesgames.game.Screen import com.persesgames.input.Keys +import com.persesgames.sound.Music +import com.persesgames.sound.Sound import com.persesgames.sprite.Sprite import com.persesgames.sprite.SpriteBatch import com.persesgames.text.Texts @@ -21,7 +23,7 @@ var sprite = Sprite("SHIP") var music: HTMLAudioElement? = null - //var sound: Sound = Sound("BOOM", "sounds/Explosion7.ogg", 1.0, 1) + var sound: Sound = Sound("BOOM", "sounds/Explosion7.ogg", 1.0, 2) var time: Float = 0f var x = 500f @@ -33,8 +35,10 @@ var alpha = 0.0 var size = 0.0 + var spaceDown = false + override fun loadResources() { - //music = Music.play("music/DST-TacticalSpace.mp3", 1.0, looping = true) + music = Music.play("music/DST-TechnoBasic.mp3", 1.0, looping = true) Textures.load("SHIP", "images/ship2.png") //Textures.loadSpriteSheet("images/data-0.json") @@ -63,23 +67,31 @@ if (Keys.isDown(40)) { y -= 200 * delta } + if (Keys.isDown(32)) { + if (!spaceDown) { + sound.play() + spaceDown = true + } + } else { + spaceDown = false + } } override fun render() { - Texts.drawText(5f, 40f, "Hello! FPS ${Game.fps}", font = "bold 36pt Arial", fillStyle = "rgba(0, 255, 0, 1)") + Texts.drawText(5f, 40f, "Hello! FPS ${Game.fps}", font = "bold 24pt Arial", fillStyle = "rgba(0, 255, 0, 1)") - sprites.draw(sprite, x, y) + sprites.draw(sprite, x, y, scale = (7f + Math.sin(time.toDouble()) * 6f).toFloat(), rotation = time) sprites.render() } } fun main(args: Array) { - Game.view.setToHeight(1000f) - Game.view.drawMode = DrawMode.LINEAR + Game.view.setToHeight(1080f) + Game.view.drawMode = DrawMode.NEAREST - Game.view.minAspectRatio = 0.8f - Game.view.maxAspectRatio = 0.8f + Game.view.minAspectRatio = 1920f/1080f + Game.view.maxAspectRatio = 1920f/1080f Game.start(WelcomeScreen()) } diff --git a/web/js/generated/KotlinTest.js b/web/js/generated/KotlinTest.js index 96b3ea2..bd45015 100644 --- a/web/js/generated/KotlinTest.js +++ b/web/js/generated/KotlinTest.js @@ -6,6 +6,7 @@ } var KotlinTest = function (_, Kotlin, $module$kudens) { 'use strict'; + var sound_0 = $module$kudens.com.persesgames.sound; var texture_0 = $module$kudens.com.persesgames.texture; var game_0 = $module$kudens.com.persesgames.game; var input_0 = $module$kudens.com.persesgames.input; @@ -22,7 +23,7 @@ this.sprites = new SpriteBatch(); this.sprite = new Sprite('SHIP'); this.music = null; - this.sound = new Sound('BOOM', 'sounds/Explosion7.ogg', 1.0, 1); + this.sound = new Sound('BOOM', 'sounds/Explosion7.ogg', 1.0, 2); this.time = 0.0; this.x = 500.0; this.y = 500.0; @@ -31,8 +32,10 @@ this.blue = 0.0; this.alpha = 0.0; this.size = 0.0; + this.spaceDown = false; } WelcomeScreen.prototype.loadResources = function () { + this.music = sound_0.Music.play_1truf$('music/DST-TechnoBasic.mp3', 1.0, true); texture_0.Textures.load_puj7f4$('SHIP', 'images/ship2.png'); this.x = game_0.Game.view.width / 2.0; }; @@ -55,10 +58,19 @@ if (input_0.Keys.isDown_za3lpa$(40)) { this.y -= 200 * delta; } + if (input_0.Keys.isDown_za3lpa$(32)) { + if (!this.spaceDown) { + this.sound.play(); + this.spaceDown = true; + } + } + else { + this.spaceDown = false; + } }; WelcomeScreen.prototype.render = function () { - text_0.Texts.drawText_k35s1u$(5.0, 40.0, 'Hello! FPS ' + game_0.Game.fps, 'bold 36pt Arial', 'rgba(0, 255, 0, 1)'); - this.sprites.draw_xrfpo0$(this.sprite, this.x, this.y); + text_0.Texts.drawText_k35s1u$(5.0, 40.0, 'Hello! FPS ' + game_0.Game.fps, 'bold 24pt Arial', 'rgba(0, 255, 0, 1)'); + this.sprites.draw_xrfpo0$(this.sprite, this.x, this.y, 7.0 + Math.sin(this.time) * 6.0, this.time); this.sprites.render(); }; WelcomeScreen.$metadata$ = { @@ -68,10 +80,10 @@ baseClasses: [Screen] }; function main(args) { - game_0.Game.view.setToHeight_mx4ult$(1000.0); - game_0.Game.view.drawMode = DrawMode.LINEAR; - game_0.Game.view.minAspectRatio = 0.8; - game_0.Game.view.maxAspectRatio = 0.8; + game_0.Game.view.setToHeight_mx4ult$(1080.0); + game_0.Game.view.drawMode = DrawMode.NEAREST; + game_0.Game.view.minAspectRatio = 1920.0 / 1080.0; + game_0.Game.view.maxAspectRatio = 1920.0 / 1080.0; game_0.Game.start_ocgj3q$(new WelcomeScreen()); } var package$games = _.games || (_.games = {}); diff --git a/web/js/generated/KotlinTest.js.map b/web/js/generated/KotlinTest.js.map index e501f5b..593b76c 100644 --- a/web/js/generated/KotlinTest.js.map +++ b/web/js/generated/KotlinTest.js.map @@ -1 +1 @@ -{"version":3,"file":"KotlinTest.js","sources":["file:///home/rnentjes/Development/kotlin/use-webgl-kotlin-lib-test/src/games/perses/shooter/Shooter.kt"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;mBAoBkB;kBAED;iBACkB;iBACZ,2CAAuC,KAAK;gBAUpD;aANH;aAAA;eAMG;iBAAA;gBAAA;iBAAA;gBAAA;;;cAKP;IAGA,SAAI,OAAA,kBAAkB;;;IAItB,YAAY;IAEZ,WAAM,AAgBG,MAhBG,AAAA,SAAS,AAAA,OAAO,OAEQ;IADpC,aAAQ,AAeC,MAfK,AAAA,SAAS,AAAA,OAoBR,OAnBqB;IAApC,YAAO,AAcE,MAdI,AAAA,SAAS,AAAA,OAAO,OAAO;IACpC,aAAQ,AAA8B,MAAxB,AAAA,SAAS,AAAA,OAAO,QAAQ;IACtC,YAAO,AAAA,KAAK,AAAA,SAAS,QAAmB;IAExC,YAAI,oBAAY;MACZ,UAAK,AASA,MATM;;IAEf,YAAI,oBAAY;MACZ,UAAK,AAMA,MANM;;IAEf,YAAI,oBAAY;MACZ,UAAK,AAGA,MAHM;;IAEf,YAAI,oBAAY;MACZ,UAAK,AAAA,MAAM;;;;WAKf,uBAAe,KAAI,MAAK,uBAAc;SAEtC,0BAAa,aAAQ,QAAG;SACxB;;;;;;;;;WAMJ,8BAAsB;IACtB,OAAA;IAEA,OAAA,2BAC2B;IAA3B,OAAA,2BAA2B;WAE3B,mBAAW;;;;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"KotlinTest.js","sources":["file:///home/rnentjes/Development/kotlin/use-webgl-kotlin-lib-test/src/games/perses/shooter/Shooter.kt"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;mBAqBkB;kBAED;iBACkB;iBACZ,2CAAuC,KAAK;gBAUpD;aANH;aAAA;eAMG;iBAAA;gBAAA;iBAAA;gBAAA;qBAEK;;;IAGZ,qBAAQ,+CAf8C,KA+ClC;cA9BpB;IAGA,SAAI,OAAA,kBAAkB;;;IAItB,YAAY;IAEZ,WAAM,AAgBG,MAhBG,AAAA,SAAS,AAAA,OAAO,OAEQ;IADpC,aAAQ,AAeC,MAfK,AAAA,SAAS,AAAA,OA4BR,OA3BqB;IAApC,YAAO,AAcE,MAdI,AAAA,SAAS,AAAA,OA6Bc,OA7BA;IACpC,aAAQ,AAA8B,MAAxB,AAAA,SAAS,AAAA,OAAO,QAAQ;IACtC,YAAO,AAAA,KAAK,AAAA,SAAS,QAAmB;IAExC,YAAI,oBAAY;MACZ,UAAK,AASA,MATM;;IAEf,YAAI,oBAAY;MACZ,UAAK,AAMA,MANM;;IAEf,YAAI,oBAAY;MACZ,UAAK,AAGA,MAHM;;IAEf,YAAI,oBAAY;MACZ,UAAK,AAAA,MAAM;;IAEf,YAAI,oBAAY;MACZ,IAAI,MAAC;aACD;QACA,iBAAY;;;;MAGhB,iBAtCQ;;;;WA2CZ,uBAAe,KAAI,MAAK,uBAAc;SAEtC,0BAAa,aAAQ,QAAG,GAAY,AAAA,MAAK,AAAA,cAAS,QAAmB,UAA0B;SAC/F;;;;;;;;;WAMJ,8BAIiC;IAHjC,OAAA;IAEA,OAAA,2BAA2B,AACA,SAAM;IAAjC,OAAA,2BAA2B,AAAA,SAAM;WAEjC,mBAAW;;;;;;;;;;;"} \ No newline at end of file diff --git a/web/js/generated/KotlinTest.meta.js b/web/js/generated/KotlinTest.meta.js index a7b92e7..d96ef6c 100644 --- a/web/js/generated/KotlinTest.meta.js +++ b/web/js/generated/KotlinTest.meta.js @@ -1 +1 @@ -// Kotlin.kotlin_module_metadata(6, "KotlinTest", "H4sIAAAAAAAAAI0W2XIcNXDP8aZ9RNk4xtlgO7Zj57RnYxOq8sBDUkC5AlRBDAVvKXlG3h17dmaRND74AF555SP4AD6B/+A7qKJ1zO7Y0Xi3atSHplvdarXUDVuwnvKef74f+Bd9rsbuaSrjKPlwHMXsg6RHMWtX4Cls5WJhOvAzHqvhFH0Nr3LRJJXRcRRQGaWJuMo5VTdg1Uz7JwI/p8xL2AnQgyHjgokeHTDhizRLQgOdKtuwYZeVTEgNnHLrsPLDT0kkfQ1visNpn6dJKnLsFC1EVoUMh1NsBe6r/QQlv1/AE+s7Z8cxC2SOJx2TmhcGOkV34Gkuep7yUwxnjp3ir+Dl9bAP6NCXKBMaWLY7ZQWH8/ce2GmfJpgeOjUKpFNnDR6c0DPqK1B2jKOd7QcToqqO5iiL4tDAsqiaHZvdW+QU3Qf/o+zs05Bxi8puzLUzxvSPEsl4QuMRMSGAQ56iVRkp/0akU8eH58XEZGcskcIip8Iz2M79o0kPDRhUllauPMHhFP+vDt0rsRX9NJU6XBrnSkLyKOlZtX/qf9WgqdXAM3owYxVg/mcWowfsMOCMJVBHGmYL7kBDIfDs/yaNh30KnrED3pdphiagcRRnDG0YmUEmogDqGDWoY9igjnEDcvDjd9++ycIo/SpmAwwe1DkLoSGi31BTv0bQPNTIE0MeSWXU4BnDC5g1E2+pDPrQkBE61vw6TqmE6gVUL2Ee6fA9w8V4oFxX7xJ4nCWYSuBlw5Dias2QxZJCY0BxAw3KewKabzinl2hPh+3PKtRIBRqtCqkirJIaeK0aqS9XcL6BMw3SRNgkHs57ZEbP30K6RUDTC/gXyG2Es4Tg/By5s1zRGovILZB7lltCjpBPkFP4vsYt8sDiNYu3LN5G/AW8tqkVpDzNZJQwnfroNoa8SJak//NpsieIqcDf7TpU6/A57E6jU7DTgFpLX5uPM1v2NSi7Z9cVFNRgmiIrznpqTCxpF1KDsop68mvG+KWfRfg5ZTZhza5lkFPoMWwWDZbXZ0ehUBoZZzm+qRzlhfWcHfViA8t8tvsyyCn0CB7m7cTZQI1pG4ooGWbSQKdKF17YhQVD80mg0iinnBqfQXeU57F64nVHVKAnlnOGT4SB0ybbzZlReNTHRaf8THM/0MBxygcUd1qknWq78MyamK6YuYqnfh8tcir9UYPHzvt8pQ7snp6IQfvf6nJ9D5/B7szbyjsgqx1FLx4sIf1wRK+SdUPvtUhHU3eR2jDUwdL7WdLS9K1ffl9AZrbIzI2ZeTLf8VqV5Wp33vxrFwXvFplFzdw2zJJm7hhmWTNtw1hnDPNpkVkZMX+3iml/U99p29OTTDW8Gk57Owp02bXTDRq+5rEGZQsXH7sh5QJLVY7LXA7ZMc1iuTOkwSntuTNi3BMVasqYLOsZxy/05Cs8QDcjYa7wiHZqfQNPnNl5aPD3+T5Ueq51VsimzT1CHnXmWpW211b8UveeOtlx23rE03OBy1g8TTkJhFBj2q4tYVINlzipdmy/hDgLWSL+B3EjRSNHDgAA"); +// Kotlin.kotlin_module_metadata(6, "KotlinTest", "H4sIAAAAAAAAAI0W2W4bN1C35fERWnEcRant2I6PHLYUuymQhz7ESAsjbYE2btG+BfQuLa292lVJro9+QP+hQB/6GX3sx/QD+gkdHiutHa4lYDkHObMzHA45A5uwFvNu+/LAa1/1uBp757EMg+jjaRCyj5KehKxRgGewmYr5cb+d8FANp+gbeJ2KRrEMTgOPyiCOxE3OqboOK2a6fSbwc8q8gl0PPRgwLpjo0j4TbREnkW+gU2UL1u1vJRNSA6fcGiz/8FMUyLaGd8XhvMfjKBYpdopmIqtChsMptgyP1H68nOWXsGN95+w0ZJ5M8bhjUvPCQKfoLjxLRS9jfo7hTLFT/DW8uh32Ph20Jcr4BubtTlnB4VzeBzvdphGmh06NDOnUWYXHZ/SCthXIO8bhzg68MVFVR3OSBKFvYF5UzY7N7i1yih5A+5Ps7FGfcYvybsytM8b0DyLJeETDITEmgAMeo1UZKP+GpFOnDS+yickuWCSFRU6F57CV+kejLhowKC+tXHmCwyn+RwU6N2IrenEsdbg0TpWE5EHUtWr/lv8pQVWrQc3owZRVgLmfWYgesGOPMxZBGWmYybgDFYWgZterNBz0KNSMHai9ixM0AZWTMGFow8j0ExF4UMaoQRnDBmWMG5CjH7/79m3iB/FXIetj8KDMmQ8VEfyGmvo1guqxRtNiQD32Lr6MYOowjkNG0ZIY8EAqRwyeMryAGTNxSKXXg4oM0Nnq12FMJRSvoHgNc0j7Hxga4J7ajnqroMZZhOkFtWTgU/xb1WehpFDpU9xUhfKugOpbzuk12tOh/KsIJVKASr1AigiLpAS1eomUmwWcr+BMhVQRVkkN52tkSs9PI10noOl5XAVyD+EMITg/SxaaBa2xiNw8eYCckn5oZ5vILZBHenaBPLaryxavWbxt8Q7iL+GNTTsv5nEig4jpa4Hu43FkyZyr8WKSzPJCKnC5UYZiGb6AvUl0MnYqUKrrK/Vp1sueBnl38LaCghpMUoDFRVeNseXuSmqQV23Pfk0Yv24nAX5OmQ1Ytf8yyCm0DRtZg/m121FElEbCWYrvKlVp0b1kJ93QwDyf7b4Mcgo9hSdpq3HRV2PSZiOIBok00KnSgZf2x4Kh+chTaZRSTo3PoTPM81A9/7pbytBjSz3Dp8LASZPt7szIPPijgpR/pqkfaOA05n2KO83STrU9eG5NTFboXIVVv5MWOZX+LMG28z7fqBF752ei3/iv2Czv43PYmTosvAfypKXoB0dLSK8P6RWyYej9OvlMU4tIPTXU0dKHGVLX9PQvv88jM5NlZkfMHJlr1eqFZrEzZ9YaWcH7WWZRM/cMs6QZYpimZhqGaWnmvmGsZ4ZZyTKrQ+bvevYO3NWg2j72LFGdsYaTXpUMnXcHdSeHT3uoQd6Psy/fgHKB9SvFeS777JQmodzFwntOu+70GDVPmQIzIvOay9FzPf4+99HNQJj7PKSdWt/AjjNVjw3+Pt2HytXV1jLZtIlIyFZrtl5o1BqKf9hZUic76m9PeHwp8DcWT1JbPCHUmLS9i5hUwyVOii3bWCFOfBaJ/wE3ketYcA4AAA=="); diff --git a/web/js/generated/KotlinTest/games/perses/shooter/ShooterPackage.kjsm b/web/js/generated/KotlinTest/games/perses/shooter/ShooterPackage.kjsm index 4d4d6d6..78e79ab 100644 --- a/web/js/generated/KotlinTest/games/perses/shooter/ShooterPackage.kjsm +++ b/web/js/generated/KotlinTest/games/perses/shooter/ShooterPackage.kjsm Binary files differ diff --git a/build.gradle b/build.gradle index 94dc304..a4959a5 100644 --- a/build.gradle +++ b/build.gradle @@ -52,6 +52,7 @@ } def outDir = "${buildDir}/kotlin2js/main/" +def webDir = "${projectDir}/web/" jar { from sourceSets.main.allSource @@ -62,7 +63,6 @@ manifest { attributes( - "Specification-Title": "Kotlin JavaScript Lib", "Kotlin-JS-Module-Name": "test-library" ) } diff --git a/src/games/perses/shooter/Shooter.kt b/src/games/perses/shooter/Shooter.kt index 735bbc4..40f1f9a 100644 --- a/src/games/perses/shooter/Shooter.kt +++ b/src/games/perses/shooter/Shooter.kt @@ -4,6 +4,8 @@ import com.persesgames.game.Game import com.persesgames.game.Screen import com.persesgames.input.Keys +import com.persesgames.sound.Music +import com.persesgames.sound.Sound import com.persesgames.sprite.Sprite import com.persesgames.sprite.SpriteBatch import com.persesgames.text.Texts @@ -21,7 +23,7 @@ var sprite = Sprite("SHIP") var music: HTMLAudioElement? = null - //var sound: Sound = Sound("BOOM", "sounds/Explosion7.ogg", 1.0, 1) + var sound: Sound = Sound("BOOM", "sounds/Explosion7.ogg", 1.0, 2) var time: Float = 0f var x = 500f @@ -33,8 +35,10 @@ var alpha = 0.0 var size = 0.0 + var spaceDown = false + override fun loadResources() { - //music = Music.play("music/DST-TacticalSpace.mp3", 1.0, looping = true) + music = Music.play("music/DST-TechnoBasic.mp3", 1.0, looping = true) Textures.load("SHIP", "images/ship2.png") //Textures.loadSpriteSheet("images/data-0.json") @@ -63,23 +67,31 @@ if (Keys.isDown(40)) { y -= 200 * delta } + if (Keys.isDown(32)) { + if (!spaceDown) { + sound.play() + spaceDown = true + } + } else { + spaceDown = false + } } override fun render() { - Texts.drawText(5f, 40f, "Hello! FPS ${Game.fps}", font = "bold 36pt Arial", fillStyle = "rgba(0, 255, 0, 1)") + Texts.drawText(5f, 40f, "Hello! FPS ${Game.fps}", font = "bold 24pt Arial", fillStyle = "rgba(0, 255, 0, 1)") - sprites.draw(sprite, x, y) + sprites.draw(sprite, x, y, scale = (7f + Math.sin(time.toDouble()) * 6f).toFloat(), rotation = time) sprites.render() } } fun main(args: Array) { - Game.view.setToHeight(1000f) - Game.view.drawMode = DrawMode.LINEAR + Game.view.setToHeight(1080f) + Game.view.drawMode = DrawMode.NEAREST - Game.view.minAspectRatio = 0.8f - Game.view.maxAspectRatio = 0.8f + Game.view.minAspectRatio = 1920f/1080f + Game.view.maxAspectRatio = 1920f/1080f Game.start(WelcomeScreen()) } diff --git a/web/js/generated/KotlinTest.js b/web/js/generated/KotlinTest.js index 96b3ea2..bd45015 100644 --- a/web/js/generated/KotlinTest.js +++ b/web/js/generated/KotlinTest.js @@ -6,6 +6,7 @@ } var KotlinTest = function (_, Kotlin, $module$kudens) { 'use strict'; + var sound_0 = $module$kudens.com.persesgames.sound; var texture_0 = $module$kudens.com.persesgames.texture; var game_0 = $module$kudens.com.persesgames.game; var input_0 = $module$kudens.com.persesgames.input; @@ -22,7 +23,7 @@ this.sprites = new SpriteBatch(); this.sprite = new Sprite('SHIP'); this.music = null; - this.sound = new Sound('BOOM', 'sounds/Explosion7.ogg', 1.0, 1); + this.sound = new Sound('BOOM', 'sounds/Explosion7.ogg', 1.0, 2); this.time = 0.0; this.x = 500.0; this.y = 500.0; @@ -31,8 +32,10 @@ this.blue = 0.0; this.alpha = 0.0; this.size = 0.0; + this.spaceDown = false; } WelcomeScreen.prototype.loadResources = function () { + this.music = sound_0.Music.play_1truf$('music/DST-TechnoBasic.mp3', 1.0, true); texture_0.Textures.load_puj7f4$('SHIP', 'images/ship2.png'); this.x = game_0.Game.view.width / 2.0; }; @@ -55,10 +58,19 @@ if (input_0.Keys.isDown_za3lpa$(40)) { this.y -= 200 * delta; } + if (input_0.Keys.isDown_za3lpa$(32)) { + if (!this.spaceDown) { + this.sound.play(); + this.spaceDown = true; + } + } + else { + this.spaceDown = false; + } }; WelcomeScreen.prototype.render = function () { - text_0.Texts.drawText_k35s1u$(5.0, 40.0, 'Hello! FPS ' + game_0.Game.fps, 'bold 36pt Arial', 'rgba(0, 255, 0, 1)'); - this.sprites.draw_xrfpo0$(this.sprite, this.x, this.y); + text_0.Texts.drawText_k35s1u$(5.0, 40.0, 'Hello! FPS ' + game_0.Game.fps, 'bold 24pt Arial', 'rgba(0, 255, 0, 1)'); + this.sprites.draw_xrfpo0$(this.sprite, this.x, this.y, 7.0 + Math.sin(this.time) * 6.0, this.time); this.sprites.render(); }; WelcomeScreen.$metadata$ = { @@ -68,10 +80,10 @@ baseClasses: [Screen] }; function main(args) { - game_0.Game.view.setToHeight_mx4ult$(1000.0); - game_0.Game.view.drawMode = DrawMode.LINEAR; - game_0.Game.view.minAspectRatio = 0.8; - game_0.Game.view.maxAspectRatio = 0.8; + game_0.Game.view.setToHeight_mx4ult$(1080.0); + game_0.Game.view.drawMode = DrawMode.NEAREST; + game_0.Game.view.minAspectRatio = 1920.0 / 1080.0; + game_0.Game.view.maxAspectRatio = 1920.0 / 1080.0; game_0.Game.start_ocgj3q$(new WelcomeScreen()); } var package$games = _.games || (_.games = {}); diff --git a/web/js/generated/KotlinTest.js.map b/web/js/generated/KotlinTest.js.map index e501f5b..593b76c 100644 --- a/web/js/generated/KotlinTest.js.map +++ b/web/js/generated/KotlinTest.js.map @@ -1 +1 @@ -{"version":3,"file":"KotlinTest.js","sources":["file:///home/rnentjes/Development/kotlin/use-webgl-kotlin-lib-test/src/games/perses/shooter/Shooter.kt"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;mBAoBkB;kBAED;iBACkB;iBACZ,2CAAuC,KAAK;gBAUpD;aANH;aAAA;eAMG;iBAAA;gBAAA;iBAAA;gBAAA;;;cAKP;IAGA,SAAI,OAAA,kBAAkB;;;IAItB,YAAY;IAEZ,WAAM,AAgBG,MAhBG,AAAA,SAAS,AAAA,OAAO,OAEQ;IADpC,aAAQ,AAeC,MAfK,AAAA,SAAS,AAAA,OAoBR,OAnBqB;IAApC,YAAO,AAcE,MAdI,AAAA,SAAS,AAAA,OAAO,OAAO;IACpC,aAAQ,AAA8B,MAAxB,AAAA,SAAS,AAAA,OAAO,QAAQ;IACtC,YAAO,AAAA,KAAK,AAAA,SAAS,QAAmB;IAExC,YAAI,oBAAY;MACZ,UAAK,AASA,MATM;;IAEf,YAAI,oBAAY;MACZ,UAAK,AAMA,MANM;;IAEf,YAAI,oBAAY;MACZ,UAAK,AAGA,MAHM;;IAEf,YAAI,oBAAY;MACZ,UAAK,AAAA,MAAM;;;;WAKf,uBAAe,KAAI,MAAK,uBAAc;SAEtC,0BAAa,aAAQ,QAAG;SACxB;;;;;;;;;WAMJ,8BAAsB;IACtB,OAAA;IAEA,OAAA,2BAC2B;IAA3B,OAAA,2BAA2B;WAE3B,mBAAW;;;;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"KotlinTest.js","sources":["file:///home/rnentjes/Development/kotlin/use-webgl-kotlin-lib-test/src/games/perses/shooter/Shooter.kt"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;mBAqBkB;kBAED;iBACkB;iBACZ,2CAAuC,KAAK;gBAUpD;aANH;aAAA;eAMG;iBAAA;gBAAA;iBAAA;gBAAA;qBAEK;;;IAGZ,qBAAQ,+CAf8C,KA+ClC;cA9BpB;IAGA,SAAI,OAAA,kBAAkB;;;IAItB,YAAY;IAEZ,WAAM,AAgBG,MAhBG,AAAA,SAAS,AAAA,OAAO,OAEQ;IADpC,aAAQ,AAeC,MAfK,AAAA,SAAS,AAAA,OA4BR,OA3BqB;IAApC,YAAO,AAcE,MAdI,AAAA,SAAS,AAAA,OA6Bc,OA7BA;IACpC,aAAQ,AAA8B,MAAxB,AAAA,SAAS,AAAA,OAAO,QAAQ;IACtC,YAAO,AAAA,KAAK,AAAA,SAAS,QAAmB;IAExC,YAAI,oBAAY;MACZ,UAAK,AASA,MATM;;IAEf,YAAI,oBAAY;MACZ,UAAK,AAMA,MANM;;IAEf,YAAI,oBAAY;MACZ,UAAK,AAGA,MAHM;;IAEf,YAAI,oBAAY;MACZ,UAAK,AAAA,MAAM;;IAEf,YAAI,oBAAY;MACZ,IAAI,MAAC;aACD;QACA,iBAAY;;;;MAGhB,iBAtCQ;;;;WA2CZ,uBAAe,KAAI,MAAK,uBAAc;SAEtC,0BAAa,aAAQ,QAAG,GAAY,AAAA,MAAK,AAAA,cAAS,QAAmB,UAA0B;SAC/F;;;;;;;;;WAMJ,8BAIiC;IAHjC,OAAA;IAEA,OAAA,2BAA2B,AACA,SAAM;IAAjC,OAAA,2BAA2B,AAAA,SAAM;WAEjC,mBAAW;;;;;;;;;;;"} \ No newline at end of file diff --git a/web/js/generated/KotlinTest.meta.js b/web/js/generated/KotlinTest.meta.js index a7b92e7..d96ef6c 100644 --- a/web/js/generated/KotlinTest.meta.js +++ b/web/js/generated/KotlinTest.meta.js @@ -1 +1 @@ -// Kotlin.kotlin_module_metadata(6, "KotlinTest", "H4sIAAAAAAAAAI0W2XIcNXDP8aZ9RNk4xtlgO7Zj57RnYxOq8sBDUkC5AlRBDAVvKXlG3h17dmaRND74AF555SP4AD6B/+A7qKJ1zO7Y0Xi3atSHplvdarXUDVuwnvKef74f+Bd9rsbuaSrjKPlwHMXsg6RHMWtX4Cls5WJhOvAzHqvhFH0Nr3LRJJXRcRRQGaWJuMo5VTdg1Uz7JwI/p8xL2AnQgyHjgokeHTDhizRLQgOdKtuwYZeVTEgNnHLrsPLDT0kkfQ1visNpn6dJKnLsFC1EVoUMh1NsBe6r/QQlv1/AE+s7Z8cxC2SOJx2TmhcGOkV34Gkuep7yUwxnjp3ir+Dl9bAP6NCXKBMaWLY7ZQWH8/ce2GmfJpgeOjUKpFNnDR6c0DPqK1B2jKOd7QcToqqO5iiL4tDAsqiaHZvdW+QU3Qf/o+zs05Bxi8puzLUzxvSPEsl4QuMRMSGAQ56iVRkp/0akU8eH58XEZGcskcIip8Iz2M79o0kPDRhUllauPMHhFP+vDt0rsRX9NJU6XBrnSkLyKOlZtX/qf9WgqdXAM3owYxVg/mcWowfsMOCMJVBHGmYL7kBDIfDs/yaNh30KnrED3pdphiagcRRnDG0YmUEmogDqGDWoY9igjnEDcvDjd9++ycIo/SpmAwwe1DkLoSGi31BTv0bQPNTIE0MeSWXU4BnDC5g1E2+pDPrQkBE61vw6TqmE6gVUL2Ee6fA9w8V4oFxX7xJ4nCWYSuBlw5Dias2QxZJCY0BxAw3KewKabzinl2hPh+3PKtRIBRqtCqkirJIaeK0aqS9XcL6BMw3SRNgkHs57ZEbP30K6RUDTC/gXyG2Es4Tg/By5s1zRGovILZB7lltCjpBPkFP4vsYt8sDiNYu3LN5G/AW8tqkVpDzNZJQwnfroNoa8SJak//NpsieIqcDf7TpU6/A57E6jU7DTgFpLX5uPM1v2NSi7Z9cVFNRgmiIrznpqTCxpF1KDsop68mvG+KWfRfg5ZTZhza5lkFPoMWwWDZbXZ0ehUBoZZzm+qRzlhfWcHfViA8t8tvsyyCn0CB7m7cTZQI1pG4ooGWbSQKdKF17YhQVD80mg0iinnBqfQXeU57F64nVHVKAnlnOGT4SB0ybbzZlReNTHRaf8THM/0MBxygcUd1qknWq78MyamK6YuYqnfh8tcir9UYPHzvt8pQ7snp6IQfvf6nJ9D5/B7szbyjsgqx1FLx4sIf1wRK+SdUPvtUhHU3eR2jDUwdL7WdLS9K1ffl9AZrbIzI2ZeTLf8VqV5Wp33vxrFwXvFplFzdw2zJJm7hhmWTNtw1hnDPNpkVkZMX+3iml/U99p29OTTDW8Gk57Owp02bXTDRq+5rEGZQsXH7sh5QJLVY7LXA7ZMc1iuTOkwSntuTNi3BMVasqYLOsZxy/05Cs8QDcjYa7wiHZqfQNPnNl5aPD3+T5Ueq51VsimzT1CHnXmWpW211b8UveeOtlx23rE03OBy1g8TTkJhFBj2q4tYVINlzipdmy/hDgLWSL+B3EjRSNHDgAA"); +// Kotlin.kotlin_module_metadata(6, "KotlinTest", "H4sIAAAAAAAAAI0W2W4bN1C35fERWnEcRant2I6PHLYUuymQhz7ESAsjbYE2btG+BfQuLa292lVJro9+QP+hQB/6GX3sx/QD+gkdHiutHa4lYDkHObMzHA45A5uwFvNu+/LAa1/1uBp757EMg+jjaRCyj5KehKxRgGewmYr5cb+d8FANp+gbeJ2KRrEMTgOPyiCOxE3OqboOK2a6fSbwc8q8gl0PPRgwLpjo0j4TbREnkW+gU2UL1u1vJRNSA6fcGiz/8FMUyLaGd8XhvMfjKBYpdopmIqtChsMptgyP1H68nOWXsGN95+w0ZJ5M8bhjUvPCQKfoLjxLRS9jfo7hTLFT/DW8uh32Ph20Jcr4BubtTlnB4VzeBzvdphGmh06NDOnUWYXHZ/SCthXIO8bhzg68MVFVR3OSBKFvYF5UzY7N7i1yih5A+5Ps7FGfcYvybsytM8b0DyLJeETDITEmgAMeo1UZKP+GpFOnDS+yickuWCSFRU6F57CV+kejLhowKC+tXHmCwyn+RwU6N2IrenEsdbg0TpWE5EHUtWr/lv8pQVWrQc3owZRVgLmfWYgesGOPMxZBGWmYybgDFYWgZterNBz0KNSMHai9ixM0AZWTMGFow8j0ExF4UMaoQRnDBmWMG5CjH7/79m3iB/FXIetj8KDMmQ8VEfyGmvo1guqxRtNiQD32Lr6MYOowjkNG0ZIY8EAqRwyeMryAGTNxSKXXg4oM0Nnq12FMJRSvoHgNc0j7Hxga4J7ajnqroMZZhOkFtWTgU/xb1WehpFDpU9xUhfKugOpbzuk12tOh/KsIJVKASr1AigiLpAS1eomUmwWcr+BMhVQRVkkN52tkSs9PI10noOl5XAVyD+EMITg/SxaaBa2xiNw8eYCckn5oZ5vILZBHenaBPLaryxavWbxt8Q7iL+GNTTsv5nEig4jpa4Hu43FkyZyr8WKSzPJCKnC5UYZiGb6AvUl0MnYqUKrrK/Vp1sueBnl38LaCghpMUoDFRVeNseXuSmqQV23Pfk0Yv24nAX5OmQ1Ytf8yyCm0DRtZg/m121FElEbCWYrvKlVp0b1kJ93QwDyf7b4Mcgo9hSdpq3HRV2PSZiOIBok00KnSgZf2x4Kh+chTaZRSTo3PoTPM81A9/7pbytBjSz3Dp8LASZPt7szIPPijgpR/pqkfaOA05n2KO83STrU9eG5NTFboXIVVv5MWOZX+LMG28z7fqBF752ei3/iv2Czv43PYmTosvAfypKXoB0dLSK8P6RWyYej9OvlMU4tIPTXU0dKHGVLX9PQvv88jM5NlZkfMHJlr1eqFZrEzZ9YaWcH7WWZRM/cMs6QZYpimZhqGaWnmvmGsZ4ZZyTKrQ+bvevYO3NWg2j72LFGdsYaTXpUMnXcHdSeHT3uoQd6Psy/fgHKB9SvFeS777JQmodzFwntOu+70GDVPmQIzIvOay9FzPf4+99HNQJj7PKSdWt/AjjNVjw3+Pt2HytXV1jLZtIlIyFZrtl5o1BqKf9hZUic76m9PeHwp8DcWT1JbPCHUmLS9i5hUwyVOii3bWCFOfBaJ/wE3ketYcA4AAA=="); diff --git a/web/js/generated/KotlinTest/games/perses/shooter/ShooterPackage.kjsm b/web/js/generated/KotlinTest/games/perses/shooter/ShooterPackage.kjsm index 4d4d6d6..78e79ab 100644 --- a/web/js/generated/KotlinTest/games/perses/shooter/ShooterPackage.kjsm +++ b/web/js/generated/KotlinTest/games/perses/shooter/ShooterPackage.kjsm Binary files differ diff --git a/web/js/generated/KotlinTest/games/perses/shooter/WelcomeScreen.kjsm b/web/js/generated/KotlinTest/games/perses/shooter/WelcomeScreen.kjsm index d8e07dc..9684cc8 100644 --- a/web/js/generated/KotlinTest/games/perses/shooter/WelcomeScreen.kjsm +++ b/web/js/generated/KotlinTest/games/perses/shooter/WelcomeScreen.kjsm Binary files differ diff --git a/build.gradle b/build.gradle index 94dc304..a4959a5 100644 --- a/build.gradle +++ b/build.gradle @@ -52,6 +52,7 @@ } def outDir = "${buildDir}/kotlin2js/main/" +def webDir = "${projectDir}/web/" jar { from sourceSets.main.allSource @@ -62,7 +63,6 @@ manifest { attributes( - "Specification-Title": "Kotlin JavaScript Lib", "Kotlin-JS-Module-Name": "test-library" ) } diff --git a/src/games/perses/shooter/Shooter.kt b/src/games/perses/shooter/Shooter.kt index 735bbc4..40f1f9a 100644 --- a/src/games/perses/shooter/Shooter.kt +++ b/src/games/perses/shooter/Shooter.kt @@ -4,6 +4,8 @@ import com.persesgames.game.Game import com.persesgames.game.Screen import com.persesgames.input.Keys +import com.persesgames.sound.Music +import com.persesgames.sound.Sound import com.persesgames.sprite.Sprite import com.persesgames.sprite.SpriteBatch import com.persesgames.text.Texts @@ -21,7 +23,7 @@ var sprite = Sprite("SHIP") var music: HTMLAudioElement? = null - //var sound: Sound = Sound("BOOM", "sounds/Explosion7.ogg", 1.0, 1) + var sound: Sound = Sound("BOOM", "sounds/Explosion7.ogg", 1.0, 2) var time: Float = 0f var x = 500f @@ -33,8 +35,10 @@ var alpha = 0.0 var size = 0.0 + var spaceDown = false + override fun loadResources() { - //music = Music.play("music/DST-TacticalSpace.mp3", 1.0, looping = true) + music = Music.play("music/DST-TechnoBasic.mp3", 1.0, looping = true) Textures.load("SHIP", "images/ship2.png") //Textures.loadSpriteSheet("images/data-0.json") @@ -63,23 +67,31 @@ if (Keys.isDown(40)) { y -= 200 * delta } + if (Keys.isDown(32)) { + if (!spaceDown) { + sound.play() + spaceDown = true + } + } else { + spaceDown = false + } } override fun render() { - Texts.drawText(5f, 40f, "Hello! FPS ${Game.fps}", font = "bold 36pt Arial", fillStyle = "rgba(0, 255, 0, 1)") + Texts.drawText(5f, 40f, "Hello! FPS ${Game.fps}", font = "bold 24pt Arial", fillStyle = "rgba(0, 255, 0, 1)") - sprites.draw(sprite, x, y) + sprites.draw(sprite, x, y, scale = (7f + Math.sin(time.toDouble()) * 6f).toFloat(), rotation = time) sprites.render() } } fun main(args: Array) { - Game.view.setToHeight(1000f) - Game.view.drawMode = DrawMode.LINEAR + Game.view.setToHeight(1080f) + Game.view.drawMode = DrawMode.NEAREST - Game.view.minAspectRatio = 0.8f - Game.view.maxAspectRatio = 0.8f + Game.view.minAspectRatio = 1920f/1080f + Game.view.maxAspectRatio = 1920f/1080f Game.start(WelcomeScreen()) } diff --git a/web/js/generated/KotlinTest.js b/web/js/generated/KotlinTest.js index 96b3ea2..bd45015 100644 --- a/web/js/generated/KotlinTest.js +++ b/web/js/generated/KotlinTest.js @@ -6,6 +6,7 @@ } var KotlinTest = function (_, Kotlin, $module$kudens) { 'use strict'; + var sound_0 = $module$kudens.com.persesgames.sound; var texture_0 = $module$kudens.com.persesgames.texture; var game_0 = $module$kudens.com.persesgames.game; var input_0 = $module$kudens.com.persesgames.input; @@ -22,7 +23,7 @@ this.sprites = new SpriteBatch(); this.sprite = new Sprite('SHIP'); this.music = null; - this.sound = new Sound('BOOM', 'sounds/Explosion7.ogg', 1.0, 1); + this.sound = new Sound('BOOM', 'sounds/Explosion7.ogg', 1.0, 2); this.time = 0.0; this.x = 500.0; this.y = 500.0; @@ -31,8 +32,10 @@ this.blue = 0.0; this.alpha = 0.0; this.size = 0.0; + this.spaceDown = false; } WelcomeScreen.prototype.loadResources = function () { + this.music = sound_0.Music.play_1truf$('music/DST-TechnoBasic.mp3', 1.0, true); texture_0.Textures.load_puj7f4$('SHIP', 'images/ship2.png'); this.x = game_0.Game.view.width / 2.0; }; @@ -55,10 +58,19 @@ if (input_0.Keys.isDown_za3lpa$(40)) { this.y -= 200 * delta; } + if (input_0.Keys.isDown_za3lpa$(32)) { + if (!this.spaceDown) { + this.sound.play(); + this.spaceDown = true; + } + } + else { + this.spaceDown = false; + } }; WelcomeScreen.prototype.render = function () { - text_0.Texts.drawText_k35s1u$(5.0, 40.0, 'Hello! FPS ' + game_0.Game.fps, 'bold 36pt Arial', 'rgba(0, 255, 0, 1)'); - this.sprites.draw_xrfpo0$(this.sprite, this.x, this.y); + text_0.Texts.drawText_k35s1u$(5.0, 40.0, 'Hello! FPS ' + game_0.Game.fps, 'bold 24pt Arial', 'rgba(0, 255, 0, 1)'); + this.sprites.draw_xrfpo0$(this.sprite, this.x, this.y, 7.0 + Math.sin(this.time) * 6.0, this.time); this.sprites.render(); }; WelcomeScreen.$metadata$ = { @@ -68,10 +80,10 @@ baseClasses: [Screen] }; function main(args) { - game_0.Game.view.setToHeight_mx4ult$(1000.0); - game_0.Game.view.drawMode = DrawMode.LINEAR; - game_0.Game.view.minAspectRatio = 0.8; - game_0.Game.view.maxAspectRatio = 0.8; + game_0.Game.view.setToHeight_mx4ult$(1080.0); + game_0.Game.view.drawMode = DrawMode.NEAREST; + game_0.Game.view.minAspectRatio = 1920.0 / 1080.0; + game_0.Game.view.maxAspectRatio = 1920.0 / 1080.0; game_0.Game.start_ocgj3q$(new WelcomeScreen()); } var package$games = _.games || (_.games = {}); diff --git a/web/js/generated/KotlinTest.js.map b/web/js/generated/KotlinTest.js.map index e501f5b..593b76c 100644 --- a/web/js/generated/KotlinTest.js.map +++ b/web/js/generated/KotlinTest.js.map @@ -1 +1 @@ -{"version":3,"file":"KotlinTest.js","sources":["file:///home/rnentjes/Development/kotlin/use-webgl-kotlin-lib-test/src/games/perses/shooter/Shooter.kt"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;mBAoBkB;kBAED;iBACkB;iBACZ,2CAAuC,KAAK;gBAUpD;aANH;aAAA;eAMG;iBAAA;gBAAA;iBAAA;gBAAA;;;cAKP;IAGA,SAAI,OAAA,kBAAkB;;;IAItB,YAAY;IAEZ,WAAM,AAgBG,MAhBG,AAAA,SAAS,AAAA,OAAO,OAEQ;IADpC,aAAQ,AAeC,MAfK,AAAA,SAAS,AAAA,OAoBR,OAnBqB;IAApC,YAAO,AAcE,MAdI,AAAA,SAAS,AAAA,OAAO,OAAO;IACpC,aAAQ,AAA8B,MAAxB,AAAA,SAAS,AAAA,OAAO,QAAQ;IACtC,YAAO,AAAA,KAAK,AAAA,SAAS,QAAmB;IAExC,YAAI,oBAAY;MACZ,UAAK,AASA,MATM;;IAEf,YAAI,oBAAY;MACZ,UAAK,AAMA,MANM;;IAEf,YAAI,oBAAY;MACZ,UAAK,AAGA,MAHM;;IAEf,YAAI,oBAAY;MACZ,UAAK,AAAA,MAAM;;;;WAKf,uBAAe,KAAI,MAAK,uBAAc;SAEtC,0BAAa,aAAQ,QAAG;SACxB;;;;;;;;;WAMJ,8BAAsB;IACtB,OAAA;IAEA,OAAA,2BAC2B;IAA3B,OAAA,2BAA2B;WAE3B,mBAAW;;;;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"KotlinTest.js","sources":["file:///home/rnentjes/Development/kotlin/use-webgl-kotlin-lib-test/src/games/perses/shooter/Shooter.kt"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;mBAqBkB;kBAED;iBACkB;iBACZ,2CAAuC,KAAK;gBAUpD;aANH;aAAA;eAMG;iBAAA;gBAAA;iBAAA;gBAAA;qBAEK;;;IAGZ,qBAAQ,+CAf8C,KA+ClC;cA9BpB;IAGA,SAAI,OAAA,kBAAkB;;;IAItB,YAAY;IAEZ,WAAM,AAgBG,MAhBG,AAAA,SAAS,AAAA,OAAO,OAEQ;IADpC,aAAQ,AAeC,MAfK,AAAA,SAAS,AAAA,OA4BR,OA3BqB;IAApC,YAAO,AAcE,MAdI,AAAA,SAAS,AAAA,OA6Bc,OA7BA;IACpC,aAAQ,AAA8B,MAAxB,AAAA,SAAS,AAAA,OAAO,QAAQ;IACtC,YAAO,AAAA,KAAK,AAAA,SAAS,QAAmB;IAExC,YAAI,oBAAY;MACZ,UAAK,AASA,MATM;;IAEf,YAAI,oBAAY;MACZ,UAAK,AAMA,MANM;;IAEf,YAAI,oBAAY;MACZ,UAAK,AAGA,MAHM;;IAEf,YAAI,oBAAY;MACZ,UAAK,AAAA,MAAM;;IAEf,YAAI,oBAAY;MACZ,IAAI,MAAC;aACD;QACA,iBAAY;;;;MAGhB,iBAtCQ;;;;WA2CZ,uBAAe,KAAI,MAAK,uBAAc;SAEtC,0BAAa,aAAQ,QAAG,GAAY,AAAA,MAAK,AAAA,cAAS,QAAmB,UAA0B;SAC/F;;;;;;;;;WAMJ,8BAIiC;IAHjC,OAAA;IAEA,OAAA,2BAA2B,AACA,SAAM;IAAjC,OAAA,2BAA2B,AAAA,SAAM;WAEjC,mBAAW;;;;;;;;;;;"} \ No newline at end of file diff --git a/web/js/generated/KotlinTest.meta.js b/web/js/generated/KotlinTest.meta.js index a7b92e7..d96ef6c 100644 --- a/web/js/generated/KotlinTest.meta.js +++ b/web/js/generated/KotlinTest.meta.js @@ -1 +1 @@ -// Kotlin.kotlin_module_metadata(6, "KotlinTest", "H4sIAAAAAAAAAI0W2XIcNXDP8aZ9RNk4xtlgO7Zj57RnYxOq8sBDUkC5AlRBDAVvKXlG3h17dmaRND74AF555SP4AD6B/+A7qKJ1zO7Y0Xi3atSHplvdarXUDVuwnvKef74f+Bd9rsbuaSrjKPlwHMXsg6RHMWtX4Cls5WJhOvAzHqvhFH0Nr3LRJJXRcRRQGaWJuMo5VTdg1Uz7JwI/p8xL2AnQgyHjgokeHTDhizRLQgOdKtuwYZeVTEgNnHLrsPLDT0kkfQ1visNpn6dJKnLsFC1EVoUMh1NsBe6r/QQlv1/AE+s7Z8cxC2SOJx2TmhcGOkV34Gkuep7yUwxnjp3ir+Dl9bAP6NCXKBMaWLY7ZQWH8/ce2GmfJpgeOjUKpFNnDR6c0DPqK1B2jKOd7QcToqqO5iiL4tDAsqiaHZvdW+QU3Qf/o+zs05Bxi8puzLUzxvSPEsl4QuMRMSGAQ56iVRkp/0akU8eH58XEZGcskcIip8Iz2M79o0kPDRhUllauPMHhFP+vDt0rsRX9NJU6XBrnSkLyKOlZtX/qf9WgqdXAM3owYxVg/mcWowfsMOCMJVBHGmYL7kBDIfDs/yaNh30KnrED3pdphiagcRRnDG0YmUEmogDqGDWoY9igjnEDcvDjd9++ycIo/SpmAwwe1DkLoSGi31BTv0bQPNTIE0MeSWXU4BnDC5g1E2+pDPrQkBE61vw6TqmE6gVUL2Ee6fA9w8V4oFxX7xJ4nCWYSuBlw5Dias2QxZJCY0BxAw3KewKabzinl2hPh+3PKtRIBRqtCqkirJIaeK0aqS9XcL6BMw3SRNgkHs57ZEbP30K6RUDTC/gXyG2Es4Tg/By5s1zRGovILZB7lltCjpBPkFP4vsYt8sDiNYu3LN5G/AW8tqkVpDzNZJQwnfroNoa8SJak//NpsieIqcDf7TpU6/A57E6jU7DTgFpLX5uPM1v2NSi7Z9cVFNRgmiIrznpqTCxpF1KDsop68mvG+KWfRfg5ZTZhza5lkFPoMWwWDZbXZ0ehUBoZZzm+qRzlhfWcHfViA8t8tvsyyCn0CB7m7cTZQI1pG4ooGWbSQKdKF17YhQVD80mg0iinnBqfQXeU57F64nVHVKAnlnOGT4SB0ybbzZlReNTHRaf8THM/0MBxygcUd1qknWq78MyamK6YuYqnfh8tcir9UYPHzvt8pQ7snp6IQfvf6nJ9D5/B7szbyjsgqx1FLx4sIf1wRK+SdUPvtUhHU3eR2jDUwdL7WdLS9K1ffl9AZrbIzI2ZeTLf8VqV5Wp33vxrFwXvFplFzdw2zJJm7hhmWTNtw1hnDPNpkVkZMX+3iml/U99p29OTTDW8Gk57Owp02bXTDRq+5rEGZQsXH7sh5QJLVY7LXA7ZMc1iuTOkwSntuTNi3BMVasqYLOsZxy/05Cs8QDcjYa7wiHZqfQNPnNl5aPD3+T5Ueq51VsimzT1CHnXmWpW211b8UveeOtlx23rE03OBy1g8TTkJhFBj2q4tYVINlzipdmy/hDgLWSL+B3EjRSNHDgAA"); +// Kotlin.kotlin_module_metadata(6, "KotlinTest", "H4sIAAAAAAAAAI0W2W4bN1C35fERWnEcRant2I6PHLYUuymQhz7ESAsjbYE2btG+BfQuLa292lVJro9+QP+hQB/6GX3sx/QD+gkdHiutHa4lYDkHObMzHA45A5uwFvNu+/LAa1/1uBp757EMg+jjaRCyj5KehKxRgGewmYr5cb+d8FANp+gbeJ2KRrEMTgOPyiCOxE3OqboOK2a6fSbwc8q8gl0PPRgwLpjo0j4TbREnkW+gU2UL1u1vJRNSA6fcGiz/8FMUyLaGd8XhvMfjKBYpdopmIqtChsMptgyP1H68nOWXsGN95+w0ZJ5M8bhjUvPCQKfoLjxLRS9jfo7hTLFT/DW8uh32Ph20Jcr4BubtTlnB4VzeBzvdphGmh06NDOnUWYXHZ/SCthXIO8bhzg68MVFVR3OSBKFvYF5UzY7N7i1yih5A+5Ps7FGfcYvybsytM8b0DyLJeETDITEmgAMeo1UZKP+GpFOnDS+yickuWCSFRU6F57CV+kejLhowKC+tXHmCwyn+RwU6N2IrenEsdbg0TpWE5EHUtWr/lv8pQVWrQc3owZRVgLmfWYgesGOPMxZBGWmYybgDFYWgZterNBz0KNSMHai9ixM0AZWTMGFow8j0ExF4UMaoQRnDBmWMG5CjH7/79m3iB/FXIetj8KDMmQ8VEfyGmvo1guqxRtNiQD32Lr6MYOowjkNG0ZIY8EAqRwyeMryAGTNxSKXXg4oM0Nnq12FMJRSvoHgNc0j7Hxga4J7ajnqroMZZhOkFtWTgU/xb1WehpFDpU9xUhfKugOpbzuk12tOh/KsIJVKASr1AigiLpAS1eomUmwWcr+BMhVQRVkkN52tkSs9PI10noOl5XAVyD+EMITg/SxaaBa2xiNw8eYCckn5oZ5vILZBHenaBPLaryxavWbxt8Q7iL+GNTTsv5nEig4jpa4Hu43FkyZyr8WKSzPJCKnC5UYZiGb6AvUl0MnYqUKrrK/Vp1sueBnl38LaCghpMUoDFRVeNseXuSmqQV23Pfk0Yv24nAX5OmQ1Ytf8yyCm0DRtZg/m121FElEbCWYrvKlVp0b1kJ93QwDyf7b4Mcgo9hSdpq3HRV2PSZiOIBok00KnSgZf2x4Kh+chTaZRSTo3PoTPM81A9/7pbytBjSz3Dp8LASZPt7szIPPijgpR/pqkfaOA05n2KO83STrU9eG5NTFboXIVVv5MWOZX+LMG28z7fqBF752ei3/iv2Czv43PYmTosvAfypKXoB0dLSK8P6RWyYej9OvlMU4tIPTXU0dKHGVLX9PQvv88jM5NlZkfMHJlr1eqFZrEzZ9YaWcH7WWZRM/cMs6QZYpimZhqGaWnmvmGsZ4ZZyTKrQ+bvevYO3NWg2j72LFGdsYaTXpUMnXcHdSeHT3uoQd6Psy/fgHKB9SvFeS777JQmodzFwntOu+70GDVPmQIzIvOay9FzPf4+99HNQJj7PKSdWt/AjjNVjw3+Pt2HytXV1jLZtIlIyFZrtl5o1BqKf9hZUic76m9PeHwp8DcWT1JbPCHUmLS9i5hUwyVOii3bWCFOfBaJ/wE3ketYcA4AAA=="); diff --git a/web/js/generated/KotlinTest/games/perses/shooter/ShooterPackage.kjsm b/web/js/generated/KotlinTest/games/perses/shooter/ShooterPackage.kjsm index 4d4d6d6..78e79ab 100644 --- a/web/js/generated/KotlinTest/games/perses/shooter/ShooterPackage.kjsm +++ b/web/js/generated/KotlinTest/games/perses/shooter/ShooterPackage.kjsm Binary files differ diff --git a/web/js/generated/KotlinTest/games/perses/shooter/WelcomeScreen.kjsm b/web/js/generated/KotlinTest/games/perses/shooter/WelcomeScreen.kjsm index d8e07dc..9684cc8 100644 --- a/web/js/generated/KotlinTest/games/perses/shooter/WelcomeScreen.kjsm +++ b/web/js/generated/KotlinTest/games/perses/shooter/WelcomeScreen.kjsm Binary files differ diff --git a/web/js/generated/KotlinTest/games/perses/shooter/shooter.kotlin_string_table b/web/js/generated/KotlinTest/games/perses/shooter/shooter.kotlin_string_table index 4b18d35..957161e 100644 --- a/web/js/generated/KotlinTest/games/perses/shooter/shooter.kotlin_string_table +++ b/web/js/generated/KotlinTest/games/perses/shooter/shooter.kotlin_string_table Binary files differ