From f08a982c2716222aa402c6b608b3ca7ec6d77e4e Mon Sep 17 00:00:00 2001 From: Jaidyn Ann Date: Mon, 21 Sep 2020 12:14:05 -0500 Subject: [PATCH] Add menus, etc. --- art/bg/help.png | Bin 0 -> 6606 bytes art/sprites/heart.png | Bin 0 -> 639 bytes art/sprites/p-block.png | Bin 0 -> 2682 bytes art/sprites/p-bounce.png | Bin 0 -> 2431 bytes art/sprites/p-dash.png | Bin 0 -> 2184 bytes art/sprites/p-over.png | Bin 0 -> 2716 bytes art/sprites/p-under.png | Bin 0 -> 2757 bytes art/sprites/p-under.xcf | Bin 0 -> 32089 bytes art/sprites/p.txt | 2 + art/sprites/particle.png | Bin 406 -> 0 bytes art/sprites/raven.png | Bin 2012 -> 0 bytes art/sprites/raven.txt | 3 - art/sprites/winter_birds.png | Bin 2222 -> 0 bytes art/sprites/winter_birds.txt | 3 - main.lua | 266 +++++++++++++++++++++++++++++------ 15 files changed, 228 insertions(+), 46 deletions(-) create mode 100644 art/bg/help.png create mode 100644 art/sprites/heart.png create mode 100644 art/sprites/p-block.png create mode 100644 art/sprites/p-bounce.png create mode 100644 art/sprites/p-dash.png create mode 100644 art/sprites/p-over.png create mode 100644 art/sprites/p-under.png create mode 100644 art/sprites/p-under.xcf create mode 100644 art/sprites/p.txt delete mode 100644 art/sprites/particle.png delete mode 100644 art/sprites/raven.png delete mode 100644 art/sprites/raven.txt delete mode 100644 art/sprites/winter_birds.png delete mode 100644 art/sprites/winter_birds.txt diff --git a/art/bg/help.png b/art/bg/help.png new file mode 100644 index 0000000000000000000000000000000000000000..888bced48e8491761d69f511476dd5e45c73f28b GIT binary patch literal 6606 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 literal 0 HcmV?d00001 diff --git a/art/sprites/p-block.png b/art/sprites/p-block.png new file mode 100644 index 0000000000000000000000000000000000000000..0de919ef85a108d4bf485914f95e0021204f2e85 GIT binary patch literal 2682 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 literal 0 HcmV?d00001 diff --git a/art/sprites/p-bounce.png b/art/sprites/p-bounce.png new file mode 100644 index 0000000000000000000000000000000000000000..4ebfcd330b9cd18c1556f609de8521643f639508 GIT binary patch literal 2431 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 literal 0 HcmV?d00001 diff --git a/art/sprites/p-dash.png b/art/sprites/p-dash.png new file mode 100644 index 0000000000000000000000000000000000000000..02425dd3b5b7ece2f8c5ce46f259fbe29fe23f82 GIT binary patch literal 2184 zcmV;32zU31P)EX>4Tx04R}tkv&MmKpe$iQ^hJ(2P=q(WT;LSL`5963Pq?8YK2xEOfLO`CJjl7 zi=*ILaPVWX>fqw6tAnc`2!4P#IXWr2NQwVT3N2ziIPS;0dyl(!fKV+m&1xG5G~G56 zv8b3zuZkV7=tMty5Wuj^EMrcR;%GU(?&0I>U4&<~KKJM7Rx=g@d?N8IGfbO!gLrz= zHaPDShge=#iO-40Ou8WPBi9v=-#F)77IteDHam6A8p|ubo~;!6mk{7 z$gzMDG{~+W{11M2Yh@=Vyrf_hXn%2>j}f3_7pPSn=lj@kYA1mI8Mx9L{!$f~`6Rv4 z(85PR?>2C8-O!Xh;Bp5Tcrs*Db|pVeA)5u>&*+=dK;JFUwdVC!-^b|#kfg5SH^9Lm zFq)(6^%n0AH23!JnReSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{00v-5L_t(|+U=c9Y#T)s$KNaj3TjL($_KJ`O| z*!wudUcZ^0x4TZ)iPwJrXr$ep*Vacelaqs}B>PeE5J8rxtH^?X>;C2s zPY?UsNFr()>meW$bt8L=y4S92knL^lc)NXr?9|C+x0&mh_u$&qneFrcB!@5Y5J8rx zyU1dNRv0N}2Sf0sl)cU&hdtUvt3WFt&6Jtmg8r3y%sEOtM35!wFJv(wV|+af0Ue_P z9}F`n9wHKh3<9$FlrK5~qzR)k;G#&ZLnAJwp$V-KlZG#4-!`wM1!=&Yuf#(HS)z0! zOR@OENUU-AGFvK$#*~)ik(~yFAd9_LG$O@A1X-fKN(`|}SJRSA&wfMXLMdbT9TgK= z(H+%!k|`b{$m(2EOI4U!s&;(d*$dAIvXYLtS}GI@Fj*|ZYW_&mNPh*|tmd;?qW0zd zO{i;8kA2Wei;O%k7G|^|cQ(qxt}|=jR!(O!87LGAFjXx21`2pmvFID6Q+<5Vg%8hc zSnIx6JO-!V{aujN!qx2TER@S-000;tANP$>tJSnpC={${JNGG%uJa2n003(Y0D!YI z>(Yl%t*os02FPSG006MD5qyBPTFrX?XYbwQ4KlaU(Pz2z_3_a9D_5RNuR)L$eMj#X zDwPV9N+rLv)bbj0AF*9PwTsjI1wQ!vC^(?}q5%DJ;qnA1rFIJaX&yUsYQ0%UF0I<- zowt9}>zc(OrCWV3tFYDYbQ#bJSq4NyepKNp#nkszC=?35myC{%YRyWe60A;V1H&KM zavzc|)IILFeHjmcvD}Ar-t|WCobSGU9$tUr7ytPD-)*zdWk7wi`n_B(2fQa~UHt0U zuFrk*tzXlDEb7vz+QsJbs_7Y~cK`smt_!(b&i9VBe721dM88nBe6(FZE$*bxN)u#L=WMeVwFEWV#0vi95{lS@@=&cTTqr&6i-+dsW_IJQCBZF=7z zU7NzCW}x#MYxyipT9QFq*lQ}6%lTgPQn3g>zIvEs)LeE=k2BM}0N{{z4fanKt@lWM zroPt9zFUUjGIg6;__{Wo4Ma*ZmX(lUOyh*<+H@BBSzVmMCGL&U6A7!+N5IM%;}p&* z6mts|qm5Zdr+w)P6oKqoqh z(qBi|(Vdf5{bL80PgoK?W^4)V_;N^l$I+SNkO3@DMdMGwfW3~;GRES|ZT#RCzVJg*!1~C<8jJu>i=|m4P+xM1U5D(d{F_K2t%-k3} zp8vTgjnY$n$X@jsz1%nL!&|su<^DePVv&82VulF@;+3|Uxv{>wPpbQnL(3=N&dIAV zGdC7MN;e+hy`>ii%OG(=Of(P>W|V`=F9%RTr*pM$nxjj48usO*fwyoOOljZx(W{u}a8tN6975#2&dI!s7mZ644-sUE z(vB?hR_-f*+#bk>I5hm2c!(fNl)@-$K>w3;lK(nTJVcNs5`&~j>=>E$g)^eWwY6DQ z;vs@8QDR~5{b!%>w-4O773pfCXzbHx3Y%5&5J8qmBoc}GS^onIU9sM&PO%CA0000< KMNUMnLSTYdGynwv literal 0 HcmV?d00001 diff --git a/art/sprites/p-over.png b/art/sprites/p-over.png new file mode 100644 index 0000000000000000000000000000000000000000..40a0c196b3bb11ca9f83ca767ca6f7efe31a4b3a GIT binary patch literal 2716 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 aEW~-8aFvvlUrn^%xA8HFV58uJqW=RbB0OXO diff --git a/art/sprites/raven.txt b/art/sprites/raven.txt deleted file mode 100644 index d51d12a..0000000 --- a/art/sprites/raven.txt +++ /dev/null @@ -1,3 +0,0 @@ -Author: Revangale -Source: https://opengameart.org/content/owl-and-raven-sprites -License: CC-BY-SA 3.0 diff --git a/art/sprites/winter_birds.png b/art/sprites/winter_birds.png deleted file mode 100644 index ff81c2669e93635e2b65dee2cbbdabc904dbb1e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2222 zcmV;f2vPTmP)rxpDS)m&IJkXdiBPBBGlwh4*lg?0y<5-AxOiTx5CX;H7X2e>j#wB%9 z8!#9&I&Btc&Db#s8)5~Aw#MC2kQo$P0yUEqxN0I2SvF$Cu!+w0kIlK>yL)%{u9-B+ z^UvLT&UxPVea<}}?>P%mAcP1+tN*HD#(zRIVn&XO{>~y4MKNsmRYCfoI0CE^t?ga}xzRscpuMq;*C1xUv-cp$Fcm;AQu=|ShGd+G8Iu~CSC z85@!>g9l>vzA8Z5>(!fvSznnFSMLiU0>?&gk~}X9+xr6mGyxk^CYtI1ZLi0R#Lxn} z-A?tU;kXSIrX*u~e*nMVk7wp2E`NUgjso)ed~vl;6hZ`q5L`c3bVm+l?>7y{9@04#oBqzCs3JyA_v(JH8lMV4wq*jZesa~c2r0zp^UNcDHDU0NvUePs^O0eH@ENj+W6d>r@oKc-6Xl~Vd6&ZZUlCfuNo0T1e{K%+Au3C zi^n$j__+TAoq@YErUrW{WOWik1geHVQrl%)Ca6P5i)_mTfUwm`2oboI^E`k~h*qGs zF3D|2QIrH-FUZfM74oa!T<6ol4SY9!xB8U$bZ|ph5D@HTEjFf14EFpNPi?soUkcIU zuFkES$IU?K1dO5@l1qdNf z6a^uKBpW(1+F<0)EGI3550_Z{FXR7Php_RdMLY_>F20&hugK3O-5Ol(27OlncnwVF z^4eTTTW*#wgy6Y%{uT85&;z6=eMX%L|LR8e2BK&?o0L{(K zaq)J{>*U!V&SBN~RLb|e7#tmIikB#a2poT50|0f7GWBUzgb*TNv)RbYyS;YD6TA>2 zaB%rGUD?I%R?7Dq=SHDWmnQ8HlGuCXxakv>+wBf3x7&j|shM8a!L{^eI@aR^DuEGTe~5cUP&we|%2{+n*{TJ?S$BN5`tqNW)2Y9*~o` z#8E-xf6nvoce>eo7V_SmJ3&KI-UIacUx(>a3yLMsTHHe>Mb>tKE6^NRz|6`&i|gx zl-K@~?W=!6W2XF#Y?6B8>P_(CRHUIvchJ^TI@! z^`AX;JY64rV!THPAp*)9F9ozuGeK(W0^AIuF1y%q5dye{g8=|2&bs@{d*^c%E=P z`2^nn4}te$^3)TVJV1xQ^ogpmb|3GydepKJ?*NX&vH9{m0npYKJ>@WhE*E<7Etos3=Op9~@=;X#QLP8jjvRSqULx_JE=&37MOAbIv*wfQmKC)!-}EEWe{o=ThH) z0q7pO0T5M0*neaa&#Ya|{c~-mL}(#{KXdpHyIjpQ*6uUKpPv4)suQPf-8YS1EmFizz-g-{Yae;EhK2&<*PA>+yQM zl$V!du~;ICh$x`ps2fF5XnLcL!beL?^`cfpW9>c`EMCgM)oVDGE{x5;bx|jxxVRXP z$Aib?QLk!bxz?60oz;$iEu3`+ICsWlct@$_w;VmJzF!@rwfA?O!Ye zcTHvU@27^f@p`?arKREZdhvKXk+0W7g)Ccar|{7dQz8JgLI4&lUP{Z+!xXPv#lY2T zG5J!+g^`0m@OnnxhTCj5b-(cY{pPOMwYhl1Q8&vLhhM9kR07*qoM6N<$f_dpk)&Kwi diff --git a/art/sprites/winter_birds.txt b/art/sprites/winter_birds.txt deleted file mode 100644 index 46c41b0..0000000 --- a/art/sprites/winter_birds.txt +++ /dev/null @@ -1,3 +0,0 @@ -Author: Refuzzle -Source: https://opengameart.org/content/winter-birds -License: CC0 diff --git a/main.lua b/main.lua index c4e211d..db26f96 100644 --- a/main.lua +++ b/main.lua @@ -6,7 +6,7 @@ class = require "lib/middleclass" ---------------------------------------- left = 0; right = 1; up = 2; down = 3 upleft = 4; downleft = 5; upright = 6; downright = 7 -menu = 0; game = 1; gameover = 2 +mainmenu = 0; game = 1; gameover = 2; pause = 3 -------------------------------------------------------------------------------- -- GAME STATES @@ -16,7 +16,6 @@ menu = 0; game = 1; gameover = 2 -- LOAD -------------------- function love.load () - mode = menu vScale = 0 maxScore = 0 math.randomseed(os.time()) @@ -29,21 +28,25 @@ function love.load () lifeText = love.graphics.newText(a_ttf, "Press Enter") waveText = love.graphics.newText(a_ttf, "") bigText = love.graphics.newText(a_ttf, "Bats & Pray") + frontMenu = nil -- for compliance with Statute 43.5 (2019); all birds must report births to local Officials birdRegistry = {} + mainmenu_load() end -------------------- -- UPDATE -------------------- function love.update ( dt ) - if ( mode == menu ) then - menu_update( dt ) + if ( mode == mainmenu ) then + mainmenu_update( dt ) elseif ( mode == game ) then game_update( dt ) elseif ( mode == gameover ) then gameover_update( dt ) + elseif ( mode == pause ) then + pause_update( dt ) end end @@ -61,12 +64,14 @@ function love.draw () love.graphics.draw(lifeText, 125, 355, 0, 1.3, 1.3) love.graphics.draw(bigText, 300, 300, 0, 3.5, 3.5) - if ( mode == menu ) then - menu_draw() + if ( mode == mainmenu ) then + mainmenu_draw() elseif ( mode == game ) then game_draw() elseif ( mode == gameover ) then gameover_draw() + elseif ( mode == pause ) then + pause_draw() end end @@ -78,22 +83,26 @@ end -- INPUT ---------------------------------------- function love.keypressed ( key ) - if ( mode == menu ) then - menu_keypressed( key ) + if ( mode == mainmenu ) then + mainmenu_keypressed( key ) elseif ( mode == game ) then game_keypressed( key ) elseif ( mode == gameover ) then gameover_keypressed( key ) + elseif ( mode == pause ) then + pause_keypressed( key ) end end function love.keyreleased (key) - if ( mode == menu ) then - menu_keyreleased( key ) + if ( mode == mainmenu ) then + mainmenu_keyreleased( key ) elseif ( mode == game ) then game_keyreleased( key ) elseif ( mode == gameover ) then gameover_keyreleased( key ) + elseif ( mode == pause ) then + pause_keyreleased( key ) end end @@ -103,36 +112,133 @@ end ---------------------------------------- -- LOAD -------------------- -function menu_load () - mode = menu +function mainmenu_load () + mode = mainmenu + selection = 1 dieParticle = nil waveText:set("[Enter]") lifeText:set("") bigText:set("Bats & Pray") + helpScreen = false + + p_over = nil; p_under = nil; p_bounce = nil; p_dash = nil; p_block = nil; p_bg = nil + helpOver = nil; helpBounce = nil; helpDash = nil; helpBlock = nil + helpScreen_setup() + + frontMenu = Menu:new( 100, 100, 30, 50, 2, + { { love.graphics.newText(a_ttf, "Play Game"), + function () game_load() end }, + { love.graphics.newText(a_ttf, "Help"), + function () helpScreen = true end }, + { love.graphics.newText(a_ttf, "Quit"), + function () love.event.quit( 0 ) end } } ) end -------------------- -- UPDATE -------------------- -function menu_update ( dt ) +function mainmenu_update ( dt ) end -------------------- -- DRAW -------------------- -function menu_draw () +function mainmenu_draw () + if ( helpScreen == true ) then + helpScreen_draw() + elseif ( frontMenu ) then + frontMenu:draw() + end +end + +function helpScreen_setup () + p_over = love.graphics.newImage("art/sprites/p-over.png") + p_under = love.graphics.newImage("art/sprites/p-under.png") + p_bounce = love.graphics.newImage("art/sprites/p-bounce.png") + p_dash = love.graphics.newImage("art/sprites/p-dash.png") + p_block = love.graphics.newImage("art/sprites/p-block.png") + p_block = love.graphics.newImage("art/sprites/p-block.png") + h_bg = love.graphics.newImage("art/bg/help.png") + + helpOver = love.graphics.newText(a_ttf, "He on top, wins.") + helpBounce = love.graphics.newText(a_ttf, "Meet equals,\npart equals.") + helpBlock = love.graphics.newText(a_ttf, "Guard yourself.") + helpDash = love.graphics.newText(a_ttf, "Move with\n grace.") + + helpLuck = love.graphics.newText(a_ttf, "Godspeed!") + helpControls = love.graphics.newText(a_ttf, "Arrows - Point Space - Flap A/Z - Dash S/X - Block") +end + +function helpScreen_draw () + love.graphics.draw(h_bg) + love.graphics.draw(p_over, 100, 50, 0, 1.5, 1.5) + love.graphics.draw(p_under, 535, 50, 0, 1.5, 1.5) + love.graphics.draw(helpOver, 285, 110, 0, 2.3) + + love.graphics.draw(p_bounce, 50, 200, 0, 1.5, 1.5) + love.graphics.draw(helpBounce, 225, 250, 0, 2) + + love.graphics.draw(p_dash, 585, 200, 0, 1.5, 1.5) + love.graphics.draw(helpDash, 440, 250, 0, 2) + + love.graphics.draw(p_block, 320, 350, 0, 1.5, 1.5) + love.graphics.draw(helpBlock, 120, 420, 0, 2) + love.graphics.draw(helpLuck, 500, 420, 0, 2) + love.graphics.draw(helpControls, 205, 550, 0, 1.2) end -------------------- -- INPUT -------------------- -function menu_keypressed ( key ) --- if ( key == "enter" ) then - game_load() --- end +function mainmenu_keypressed ( key ) + if ( helpScreen == true) then + helpScreen = false + else + frontMenu:keypressed( key ) + end end -function menu_keyreleased ( key ) +function mainmenu_keyreleased ( key ) + frontMenu:keyreleased( key ) +end + + +---------------------------------------- +-- PAUSE +---------------------------------------- +-- LOAD +-------------------- +function pause_load () + mode = pause + waveText:set("[Enter]") + lifeText:set("") + bigText:set("Paused") +end + +-------------------- +-- UPDATE +-------------------- +function pause_update ( dt ) +end + +-------------------- +-- DRAW +-------------------- +function pause_draw () +end + +-------------------- +-- INPUT +-------------------- +function pause_keypressed ( key ) + if ( key == "return" or key == "a" ) then + unpauseGame() + elseif ( key == "escape" ) then + mainmenu_load() + end +end + +function pause_keyreleased ( key ) end @@ -165,9 +271,9 @@ end -- INPUT -------------------- function gameover_keypressed ( key ) --- if ( key == "enter" ) then - game_load() --- end + if ( key == "return" or key == "escape" ) then + mainmenu_load() + end end function gameover_keyreleased ( key ) @@ -191,14 +297,12 @@ function game_load () birdRegistry = {} -- death particles - diePArt = love.graphics.newImage("art/sprites/particle.png") + diePArt = love.graphics.newImage("art/sprites/heart.png") dieParticle = love.graphics.newParticleSystem(diePArt, 30) dieParticle:setParticleLifetime(.5) -- Particles live at least 2s and at most 5s. - dieParticle:setSizeVariation(1) - dieParticle:setEmissionRate(0) + dieParticle:setSizeVariation(1); dieParticle:setEmissionRate(0) dieParticle:setLinearAcceleration(-200, -200, 200, 200) -- Random movement in all directions. - dieParticle:setSpeed(40, 50) - dieParticle:setColors(1, 1, 1, 1, 1, 1, 1, 0) + dieParticle:setSpeed(40, 50); dieParticle:setColors(1, 1, 1, 1, 1, 1, 1, 0) end -------------------- @@ -249,7 +353,7 @@ function game_keypressed ( key ) elseif ( key == "space" ) then player.flying = 2 elseif ( key == "escape" ) then - gameover_load() + pause_load() end end @@ -316,6 +420,13 @@ end -- "physics" -------------------- function Flier:physics ( dt ) + gravity = 1 + floor = 500 + ceiling = 0 + max_vel = 300 + min_vel = -300 + turn = 150 + if ( self.living ) then self:physics_x( dt ) self:physics_y( dt ) @@ -327,13 +438,9 @@ end -- physics on the x-axis function Flier:physics_x ( dt ) - turn = 150 if ( self.species ) then -- if bird max_vel = 280 min_vel = -280 - else - max_vel = 300 - min_vel = -300 end -- holding arrow-key @@ -351,9 +458,9 @@ function Flier:physics_x ( dt ) end end - if ( self.x < -10 ) then + if ( self.x < -5 ) then self.x = 800 - elseif ( self.x > 810 ) then + elseif ( self.x > 805 ) then self.x = 0 end @@ -362,9 +469,6 @@ end -- physics on the y-axis function Flier:physics_y ( dt ) - gravity = 1 - floor = 500 - -- wing-flap if ( self.flying > 0 ) then self.y_vel = -200 @@ -376,6 +480,12 @@ function Flier:physics_y ( dt ) self.y_vel = self.y_vel + gravity end + -- atmosphere (ceiling) + if ( self.y < ceiling ) then + self.y_vel = self.y_vel * -1 + self.y = ceiling + 1 + end + -- if on ground; flap your wings if ( self.y > floor ) then self.y = floor @@ -389,9 +499,6 @@ end function Flier:physics_dead ( dt ) -- ignore all input, fall through bottom gravity = 2 - max_vel = 300 - self.y_vel = self.y_vel + gravity - self.y = self.y + self.y_vel * dt if ( self.x_vel > 0 ) then self.x_vel = self.x_vel - (max_vel / (turn * 3)) @@ -405,7 +512,10 @@ function Flier:physics_dead ( dt ) self.x = 0 end + self.y_vel = self.y_vel + gravity + self.y = self.y + self.y_vel * dt self.x = self.x + self.x_vel * dt + if ( self.y > 700 ) then self:killFinalize() return false @@ -637,6 +747,82 @@ function judgeCollision ( a, b ) end end +function pauseGame () + pause_load() +end + +function unpauseGame () + mode = game + waveText:set( "Wave " .. wave ) + lifeText:set( "Lives " .. lives ) + bigText:set( "" ) +end + + + +-------------------------------------------------------------------------------- +-- MENUS blah blah blah +-------------------------------------------------------------------------------- +Menu = class("Menu") + +function Menu:initialize( x, y, offset_x, offset_y, scale, menuItems ) + self.x = x; self.y = y + self.offset_x = offset_x; self.offset_y = offset_y + self.scale = scale + self.options = menuItems + self.selected = 1 + self.enter = false + self.up = false + self.down = false +end + +function Menu:draw ( ) + for i = 1,table.maxn(self.options) do + this_y = self.y + ( self.offset_y * i ) + + love.graphics.draw( self.options[i][1], + self.x, this_y, 0, self.scale, self.scale ) + if ( i == self.selected ) then + love.graphics.draw( love.graphics.newText(a_ttf, ">>"), + self.x - self.offset_x, this_y, 0, + self.scale, self.scale) + end + end +end + +function Menu:keypressed ( key ) + maxn = table.maxn( self.options ) + + if ( key == "return" and self.enter == false ) then + self.enter = true + if ( self.options[self.selected][2] ) then + self.options[self.selected][2]() + end + elseif ( key == "up" and self.selected > 1 and self.up == false ) then + self.up = true + self.selected = self.selected - 1 + elseif ( key == "up" and self.up == false ) then + self.up = true + self.selected = maxn + elseif ( key == "down" and self.selected < maxn and self.down == false ) then + self.down = true + self.selected = self.selected + 1 + elseif ( key == "down" and self.down == false ) then + self.down = true + self.selected = 1 + end +end + +function Menu:keyreleased ( key ) + if ( key == "return" ) then + self.enter = false + elseif ( key == "up" ) then + self.up = false + elseif ( key == "down" ) then + self.down = false + end +end + --------------------------------------------------------------------------------