package games.perses.shooter import games.perses.game.DrawMode import games.perses.game.Game import games.perses.game.Screen import games.perses.input.Keys import games.perses.sound.Music import games.perses.sound.Sound import games.perses.sprite.Sprite import games.perses.sprite.SpriteBatch import games.perses.text.Texts import games.perses.texture.Textures import org.w3c.dom.HTMLAudioElement import kotlin.js.Math /** * User: rnentjes * Date: 21-1-17 * Time: 14:16 */ class WelcomeScreen : Screen() { var sprites = SpriteBatch() var sprite = Sprite("SHIP") var music: HTMLAudioElement? = null var sound: Sound = Sound("BOOM", "sounds/Explosion7.ogg", 1.0, 2) var time: Float = 0f var x = 500f var y = 500f var red = 0.0 var green = 0.0 var blue = 0.0 var alpha = 0.0 var size = 0.0 var spaceDown = false override fun loadResources() { music = Music.play("music/DST-TechnoBasic.mp3", 1.0, looping = true) Textures.load("SHIP", "images/ship2.png") //Textures.loadSpriteSheet("images/data-0.json") x = Game.view.width / 2f } override fun update(time: Float, delta: Float) { this.time = time red = 200 + Math.sin(time * 3.0) * 50.0 green = 200 + Math.sin(time * 5.0) * 50.0 blue = 200 + Math.sin(time * 7.0) * 50.0 alpha = 0.5 + Math.sin(time * 11.0) * 0.5 size = 60 + Math.sin(time.toDouble()) * 20 if (Keys.isDown(37)) { x -= 200 * delta } if (Keys.isDown(39)) { x += 200 * delta } if (Keys.isDown(38)) { y += 200 * delta } 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 24pt Arial", fillStyle = "rgba(0, 255, 0, 1)") sprites.draw(sprite, x, y, scale = (7f + Math.sin(time.toDouble()) * 6f).toFloat(), rotation = time) sprites.render() } } fun main(args: Array<String>) { Game.view.setToHeight(1080f) Game.view.drawMode = DrawMode.NEAREST Game.view.minAspectRatio = 1920f/1080f Game.view.maxAspectRatio = 1920f/1080f Game.start(WelcomeScreen()) }