{"id":5853,"date":"2022-08-30T23:17:18","date_gmt":"2022-08-30T17:47:18","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-libgdx-the-relationship-between-screen-interface-and-game-class\/"},"modified":"2022-08-30T23:17:18","modified_gmt":"2022-08-30T17:47:18","slug":"solved-libgdx-the-relationship-between-screen-interface-and-game-class","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-libgdx-the-relationship-between-screen-interface-and-game-class\/","title":{"rendered":"[Solved] LibGDX: The relationship between Screen interface and Game class"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-41822249\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"41822249\" data-parentid=\"41817964\" data-score=\"4\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>The &#8220;core&#8221; of LibGDX is always your <code>ApplicationListener<\/code> class.<br \/>\nIt contains all the Lifecycle-Hooks the different platforms offer (including <code>create<\/code>, <code>dispose<\/code> and so on).<br \/>\nThe class <code>Game<\/code> is just one implementation of the <code>ApplicationListener<\/code>, containing the most usual behavior. For most of the games this class does a great job, if you need some speicial behavior, you need to override it or implement <code>ApplicationListener<\/code> yourself.<br \/>\nThe <code>Screen<\/code> interface isn&#8217;t as important, but it is also pretty usefull.<br \/>\nIt allowes you to separate your game into different parts.<br \/>\nFor example you could have a <code>MenuScreen<\/code> and a <code>GameScreen<\/code>.<br \/>\nThe <code>MenuScreen<\/code> shows a simple menu with &#8220;Settings&#8221;, &#8220;Highscores&#8221; and ofc a  &#8220;Play&#8221;-Button.<br \/>\nThe <code>GameScreen<\/code> then contains the actualy game-logic and rendering.<br \/>\nHowever, by default <code>Screen<\/code>s don&#8217;t do anything, they don&#8217;t even get notified about the Lifecycle-Hooks.<br \/>\nAnd thats where the <code>Game<\/code>-class comes in:<br \/>\nThe <code>Game<\/code>-class contains a single <code>Screen<\/code>-instance, the active <code>Screen<\/code>. It then notifies the current <code>Screen<\/code> about Lifecycle-Events, like <code>render<\/code>. The <code>Screen<\/code> can then take car about this event.<br \/>\nIf you want to switch <code>Screen<\/code>, you can simply call <code>Game.setScreen(newScreen)<\/code>. The <code>Game<\/code>-class then calls <code>hide<\/code> for the current <code>Screen<\/code> (you might want to dispose some assets here, or save the users progress) and then <code>show<\/code> for the new <code>Screen<\/code> (here you can load some assets and initialize the new <code>Screen<\/code>).  <\/p>\n<p><strong>TL;DR<\/strong><br \/>\nThe <code>ApplcationListener<\/code> is the entry point of your game. Each game has exactly one <code>ApplicationListener<\/code>, which gets notified about Lifecycle-Events by the LibGDX framework.  <\/p>\n<p><code>Screen<\/code>s are different parts of your game, which contain different logik and view (for example a <code>MenuScreen<\/code> and the <code>GameScreen<\/code>).<br \/>\nThe <code>Screen<\/code>-classes encapsulate the logic for a single <code>Screen<\/code>.  <\/p>\n<p>The <code>Game<\/code>-class is somehow the default implementation of the <code>ApplicationListener<\/code> interface and delegates most of the work to the current <code>Screen<\/code>. It also contains the logik for switching the <code>Screen<\/code>.<\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\"><\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved LibGDX: The relationship between Screen interface and Game class <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] The &#8220;core&#8221; of LibGDX is always your ApplicationListener class. It contains all the Lifecycle-Hooks the different platforms offer (including create, dispose and so on). The class Game is just one implementation of the ApplicationListener, containing the most usual behavior. For most of the games this class does a great job, if you need some &#8230; <a title=\"[Solved] LibGDX: The relationship between Screen interface and Game class\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-libgdx-the-relationship-between-screen-interface-and-game-class\/\" aria-label=\"More on [Solved] LibGDX: The relationship between Screen interface and Game class\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[323,1546],"class_list":["post-5853","post","type-post","status-publish","format-standard","hentry","category-solved","tag-java","tag-libgdx"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] LibGDX: The relationship between Screen interface and Game class - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-libgdx-the-relationship-between-screen-interface-and-game-class\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] LibGDX: The relationship between Screen interface and Game class - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] The &#8220;core&#8221; of LibGDX is always your ApplicationListener class. It contains all the Lifecycle-Hooks the different platforms offer (including create, dispose and so on). The class Game is just one implementation of the ApplicationListener, containing the most usual behavior. For most of the games this class does a great job, if you need some ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-libgdx-the-relationship-between-screen-interface-and-game-class\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-08-30T17:47:18+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-libgdx-the-relationship-between-screen-interface-and-game-class\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-libgdx-the-relationship-between-screen-interface-and-game-class\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] LibGDX: The relationship between Screen interface and Game class\",\"datePublished\":\"2022-08-30T17:47:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-libgdx-the-relationship-between-screen-interface-and-game-class\/\"},\"wordCount\":301,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"java\",\"libgdx\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-libgdx-the-relationship-between-screen-interface-and-game-class\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-libgdx-the-relationship-between-screen-interface-and-game-class\/\",\"name\":\"[Solved] LibGDX: The relationship between Screen interface and Game class - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-08-30T17:47:18+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-libgdx-the-relationship-between-screen-interface-and-game-class\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-libgdx-the-relationship-between-screen-interface-and-game-class\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-libgdx-the-relationship-between-screen-interface-and-game-class\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] LibGDX: The relationship between Screen interface and Game class\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jassweb.com\/solved\/#website\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jassweb.com\/solved\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"contentUrl\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] LibGDX: The relationship between Screen interface and Game class - JassWeb","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jassweb.com\/solved\/solved-libgdx-the-relationship-between-screen-interface-and-game-class\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] LibGDX: The relationship between Screen interface and Game class - JassWeb","og_description":"[ad_1] The &#8220;core&#8221; of LibGDX is always your ApplicationListener class. It contains all the Lifecycle-Hooks the different platforms offer (including create, dispose and so on). The class Game is just one implementation of the ApplicationListener, containing the most usual behavior. For most of the games this class does a great job, if you need some ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-libgdx-the-relationship-between-screen-interface-and-game-class\/","og_site_name":"JassWeb","article_published_time":"2022-08-30T17:47:18+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-libgdx-the-relationship-between-screen-interface-and-game-class\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-libgdx-the-relationship-between-screen-interface-and-game-class\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] LibGDX: The relationship between Screen interface and Game class","datePublished":"2022-08-30T17:47:18+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-libgdx-the-relationship-between-screen-interface-and-game-class\/"},"wordCount":301,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["java","libgdx"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-libgdx-the-relationship-between-screen-interface-and-game-class\/","url":"https:\/\/jassweb.com\/solved\/solved-libgdx-the-relationship-between-screen-interface-and-game-class\/","name":"[Solved] LibGDX: The relationship between Screen interface and Game class - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-08-30T17:47:18+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-libgdx-the-relationship-between-screen-interface-and-game-class\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-libgdx-the-relationship-between-screen-interface-and-game-class\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-libgdx-the-relationship-between-screen-interface-and-game-class\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] LibGDX: The relationship between Screen interface and Game class"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/5853","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=5853"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/5853\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=5853"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=5853"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=5853"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}