diff options
Diffstat (limited to 'screens')
-rw-r--r-- | screens/credit_screen.wren | 83 | ||||
-rw-r--r-- | screens/menu_screen.wren | 46 |
2 files changed, 108 insertions, 21 deletions
diff --git a/screens/credit_screen.wren b/screens/credit_screen.wren index 3b54d2b..59128ba 100644 --- a/screens/credit_screen.wren +++ b/screens/credit_screen.wren @@ -1,13 +1,88 @@ -class CreditScreen { - construct new() { +import "./controls" for Controls +import "./config" for Config +import "audio" for AudioEngine +import "font" for Font +import "graphics" for Canvas, Color +class CreditScreen { + construct new(gameState) { + __gameState = gameState + var channel = AudioEngine.play("credit", 0.5, true) + __credits = [ + { + "text": "A GAME BY", + "padding": 10, + "type": "title" + }, + { + "text": "Indrajith K L", + "padding": 30 + }, + { + "text": "TILESETS & SPRITES", + "padding": 50, + "type": "title" + }, + { + "text": "kenney.nl", + "padding": 70 + }, + { + "text": "MUSIC", + "padding": 90, + "type": "title" + }, + { + "text": "Juhani Junkala & Eric Skiff", + "padding": 110 + }, + { + "text": "SFX", + "padding": 130, + "type": "title" + }, + { + "text": "sfxr", + "padding": 150 + }, + { + "text": "For More Games", + "padding": 170, + "type": "title" + }, + { + "text": "indrajithmakesgames.com", + "padding": 190, + "type": "info" + } + ] } update() { - + if(Controls.justPressed(Config.KeyboardConstants["ATTACK"])) { + __gameState.switch("menu") + } } draw(dt) { - + var x = 0 + var y = 10 + for(credit in __credits) { + drawCredit(credit, x, y) + var y = y + 10 + } + } + + drawCredit(credit, x, y) { + x = Config.W/2 - ((credit["text"].count * 8)/2) + y = credit["padding"] + y + Canvas.print(credit["text"],x ,y , Color.white, credit["type"]=="info" ? "font_minecraft": Font.default) + if(credit["type"]=="title") { + x = x + for(i in 0...(credit["text"].count)) { + Canvas.print("-",x ,y+8 , Color.white, Font.default) + x = x + 8 + } + } } }
\ No newline at end of file diff --git a/screens/menu_screen.wren b/screens/menu_screen.wren index e065765..ea712d3 100644 --- a/screens/menu_screen.wren +++ b/screens/menu_screen.wren @@ -1,42 +1,41 @@ import "graphics" for Canvas, Color import "./controls" for Controls -import "config" for Config -import "levels/level1" for Level1 -import "screens/credit_screen" for CreditScreen +import "./config" for Config import "audio" for AudioEngine import "font" for Font import "math" for Math +import "dome" for Platform class MenuScreen { construct new(gameState) { __gameState = gameState - // var channel = AudioEngine.play("menu_music") - // channel.volume = 0.5 + var channel = AudioEngine.play("menu_music", 0.5, true) _selectedMenuIdx = 0 _prevMenuIdx = 0 _fadeFrame = 255 + _fadeSelector = 255 _menuItems = [ { "name": "Start", "selected": true, - "class": Level1, + "state": "level1", "font": Font.default, "padding": 20 }, { "name": "Credits", "selected": false, - "class": CreditScreen, + "state": "credit", "font": Font.default, "padding": 40 } ] - + _time = 0 } update() { - if(Controls.isKeyDown(Config.KeyboardConstants["SELECT"])) { - __gameState.switch(Level1) + if(Controls.justPressed(Config.KeyboardConstants["ATTACK"])) { + __gameState.switch(_menuItems[_selectedMenuIdx]["state"]) } if(Controls.justPressed(Config.KeyboardConstants["UP"])) { @@ -63,11 +62,13 @@ class MenuScreen { _menuItems[_prevMenuIdx]["selected"] = false _menuItems[_selectedMenuIdx]["selected"] = true } - - // _fadeFrame = (_fadeFrame+3) > 255 ? 0 : _fadeFrame + 3 - _fadeFrame = Math.floor(127 + (127 * Math.cos(System.clock))) - System.print(_fadeFrame) + _fadeSelector = inOutQuad(_time, 0, 255, 50) + if (_time>51) { + _time = 0 + } else { + _time = _time + 1 + } } draw(dt) { @@ -90,14 +91,25 @@ class MenuScreen { var y = Config.H/2 + menuItem["padding"] Canvas.print(menuItem["name"],x ,y , menuItem["selected"] ? Color.red : Color.white, menuItem["font"]) if(menuItem["selected"]) { - Canvas.print(">",x - 10 ,y , Color.red, menuItem["font"]) + Canvas.print(">",x - 10 ,y , Color.new(255, 0, 77, _fadeSelector), menuItem["font"]) } - // Canvas.print("Credits", Config.W/2 - 28, Config.H/2 + 40, Color.white, Font.default) } drawBlinker() { - Canvas.print("Press X to start",Config.W/2 - 64,Config.H/2 + 100, Color.new(255, 255, 255, _fadeFrame), Font.default) + Canvas.print("Press X to select",Config.W/2 - 64,Config.H/2 + 100, Color.new(255, 255, 255, _fadeFrame), Font.default) } + + inOutQuad(t, b, c, d) { + t = t / d * 2 + if( t < 1 ) { + return Math.abs(Math.floor(((c / 2) * (t.pow(2))) + b)) + } else { + return Math.abs(Math.floor(((-c / 2) * ((t - 1) * (t - 3) - 1)) + b)) + } + + + } + } /* |