package Ġcom . ke tris . framework . engine Ċ Ċ import Ġcom . ke tris . framework . io . Key Manager Ċ import Ġcom . ke tris . framework . io . Mouse Manager Ċ import Ġjava . awt . Dimension Ċ import Ġjava . awt . Graphics Ċ import Ġjava . awt . Toolkit Ċ import Ġjava . util . concurrent . TimeUnit Ċ import Ġjavax . swing . JPanel Ċ Ċ const Ġval ĠF RAM ES _ PER _ SECOND Ġ= Ġ 1 2 0 Ċ val ĠFRAME _ SIZE : ĠLong Ġ= ĠTimeUnit . SECONDS . to Millis ( 1 ) Ġ/ ĠF RAM ES _ PER _ SECOND Ċ Ċ class ĠGame Panel ( width : ĠInt , Ġheight : ĠInt , Ġvar Ġscreen : ĠGame Screen ) Ġ: ĠJPanel () Ġ{ ĊĠ Ġvar Ġoverlay Ġ= ĠOverlay () ĊĊĠ Ġinit Ġ{ ĊĠĠĠ Ġpreferred Size Ġ= ĠDimension ( width , Ġheight ) ĊĠĠĠ Ġis Focus able Ġ= Ġtrue ĊĊĠĠĠ Ġadd Mouse Listener ( Mouse Manager ) ĊĠĠĠ Ġadd Key Listener ( Key Manager ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġpaint Component ( g : ĠGraphics ) Ġ{ ĊĠĠĠ Ġsuper . paint Component ( g ) ĊĠĠĠ Ġval Ġlayers Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠ Ġ// Ġlayer Ġ 1 Ġ: Ġcurrent Ġscreen ĊĠĠĠĠĠĠĠ Ġscreen , ĊĠĠĠĠĠĠĠ Ġ// Ġlayer Ġ 2 Ġoverlay Ġon Ġtop Ġto Ġshow Ġinformation Ġabout Ġthe Ġgame ĊĠĠĠĠĠĠĠ Ġoverlay ĊĠĠĠ Ġ) ĊĠĠĠ Ġ// Ġrender Ġall Ġgame Ġlayers ĊĠĠĠ Ġlayers . forEach Ġ{ Ġlayer Ġ-> ĊĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠ Ġlayer . paint () ĊĠĠĠĠĠĠĠ Ġg . drawImage ( layer . canvas (), Ġ 0 , Ġ 0 , Ġwidth , Ġheight , Ġnull ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverlay . fps . increment () ĊĊĠĠĠ ĠToolkit . getDefault Toolkit (). sync () ĊĠĠĠ Ġg . dispose () ĊĠ Ġ} Ċ } Ċ