{"id":224223,"date":"2014-05-27T05:38:02","date_gmt":"2014-05-27T01:38:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=224223"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=224223","title":{"rendered":"<span class=\"post_title\">[ libGDX ] \u041f\u0438\u0448\u0435\u043c \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0443\u044e \u0438\u0433\u0440\u0443 \u043f\u043e\u0434 Android. \u0427\u0430\u0441\u0442\u044c 2<\/span>"},"content":{"rendered":"<div class=\"content html_format\">     \t\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435! \u041d\u0435 \u043f\u0440\u043e\u0448\u043b\u043e \u0441\u0443\u0442\u043e\u043a \u0441 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/224175\/\">\u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438<\/a> \u0441\u0442\u0430\u0442\u044c\u0438, \u0430 \u044f \u043d\u0435 \u043c\u043e\u0433\u0443 \u0441\u043f\u0430\u0442\u044c, \u0442\u0430\u043a \u043a\u0430\u043a \u0435\u0441\u0442\u044c \u043d\u0435\u0437\u0430\u043a\u043e\u043d\u0447\u0435\u043d\u043d\u043e\u0435 \u0434\u0435\u043b\u043e \u0438 \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u044e. \u041f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c.<\/p>\n<p>  <a name=\"habracut\"><\/a><br \/>  \u041e\u0433\u043e\u0432\u043e\u0440\u044e\u0441\u044c \u0435\u0449\u0435 \u0440\u0430\u0437. \u042f \u0448\u0438\u0431\u043a\u0438\u0439 \u043d\u0435 \u0437\u043d\u0430\u0442\u043e\u043a Java \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0434\u0430\u043b\u0435\u0435 \u043a\u043e\u0434, \u043c\u043e\u0436\u0435\u0442 \u0441\u043c\u0443\u0442\u0438\u0442\u044c \u043c\u043d\u043e\u0433\u0438\u0445, \u043d\u043e \u0438\u0433\u0440\u0443 \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043c\u0435\u043d\u044c\u0448\u0435, \u0447\u0435\u043c \u0437\u0430 \u043d\u0435\u0434\u0435\u043b\u044e \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0441\u043a\u043e\u0440\u0435\u0435 \u043d\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u0447\u0435\u043c \u043d\u0430 \u043a\u0440\u0430\u0441\u043e\u0442\u0443 \u0438 \u043f\u043e\u0440\u044f\u0434\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u043a\u043e\u0434\u0430. \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u043d\u0430\u0439\u0434\u0435\u0442\u0441\u044f \u0442\u043e\u0442, \u043a\u0442\u043e \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043a\u043e\u0434 \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u0435\u0441\u043b\u0438 \u043d\u0435 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u044b\u043c\u0438, \u0442\u043e \u0445\u043e\u0442\u044f \u0431\u044b \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u0445\u043e\u0440\u043e\u0448\u0435\u043c\u0443 \u0432\u0438\u0434\u0443 \u0438 \u0434\u0430\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043c\u043d\u0435 \u0438 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u043c \u0441\u0442\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0445\u043e\u0440\u043e\u0448\u0438\u043c\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430\u043c\u0438. \u041b\u0430\u0434\u043d\u043e, \u0445\u0432\u0430\u0442\u0438\u0442 \u043b\u0438\u0440\u0438\u043a\u0438, \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u043c \u043d\u0430\u0448 \u00ab\u0445\u0430\u0440\u0434\u043a\u043e\u0440\u00bb.<br \/>  \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043d\u043e\u0432\u044b\u0439 <i>package<\/i> \u0438 \u043d\u0430\u0437\u043e\u0432\u0435\u043c \u0435\u0433\u043e <b>objects<\/b>. \u0412 \u043d\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043a\u043b\u0430\u0441\u0441 \u0444\u043e\u043d\u0430, \u0430 \u0432 \u043d\u0435\u0433\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434:<\/p>\n<p>  <i>\u0424\u0430\u0439\u043b BackgroundActor.java<\/i><\/p>\n<pre><code class=\"java\">package ru.habrahabr.songs_of_the_space.objects;  import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.Batch; import com.badlogic.gdx.graphics.g2d.Sprite; import com.badlogic.gdx.scenes.scene2d.Actor;  public class BackgroundActor extends Actor {     private Texture backgroundTexture;     private Sprite backgroundSprite;      public BackgroundActor() {         backgroundTexture = new Texture(&quot;images\/sky.jpg&quot;);         backgroundSprite = new Sprite(backgroundTexture);         backgroundSprite.setSize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());     }      @Override     public void draw(Batch batch, float alpha) {         backgroundSprite.draw(batch);     } } <\/code><\/pre>\n<p>  \u041d\u0438\u0447\u0435\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e. \u042d\u0442\u043e \u00ab\u0430\u043a\u0442\u0435\u0440\u00bb, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0443 \u044d\u043a\u0440\u0430\u043d\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u0434\u0435\u043b\u0430\u0435\u0442 \u043d\u0430\u0448\u0443 \u0438\u0433\u0440\u0443 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0445\u043e\u0436\u0435\u0439 \u043d\u0430 \u0437\u0432\u0435\u0437\u0434\u043d\u043e\u0435 \u043d\u0435\u0431\u043e. \u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a \u044d\u0442\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c:  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u044d\u043a\u0440\u0430\u043d \u0438\u0433\u0440\u044b<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/815\/50a\/749\/81550a74904b11a9dd879e934227b144.png\" alt=\"image\"\/><\/div>\n<\/div>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0435\u0433\u043e \u0432 <i>MyGame.java<\/i> \u0438 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0435\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c \u0438\u0437\u0432\u043d\u0435, \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u044d\u043a\u0440\u0430\u043d\u0435. \u042d\u0442\u043e \u0438\u0437\u0431\u0430\u0432\u0438\u0442 \u043d\u0430\u0441 \u043e\u0442 \u043c\u0435\u0440\u0446\u0430\u043d\u0438\u044f.<\/p>\n<p>  <i>\u0424\u0430\u0439\u043b MyGame.java<\/i><\/p>\n<pre><code class=\"java\">    \/\/ \u041f\u0435\u0440\u0435\u0434 \u043c\u0435\u0442\u043e\u0434\u043e\u043c create()     public BackgroundActor background;      @Override     public void create() {         ...                  background = new BackgroundActor();         background.setPosition(0, 0);                  ...     } <\/code><\/pre>\n<p>  \u0414\u0430\u043b\u0435\u0435, \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u043d\u043e\u0432\u043e\u0439 \u044d\u043a\u0440\u0430\u043d\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0435\u0433\u043e \u043d\u0430 \u0441\u0446\u0435\u043d\u0443:<\/p>\n<pre><code class=\"java\">stage.addActor(game.background); <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c, \u0442\u0430\u043a\u0436\u0435 \u0432 \u043f\u0430\u043a\u0435\u0442\u0435 <i>objects<\/i> \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043a\u043b\u0430\u0441\u0441 \u043d\u043e\u0442\u044b. \u041e\u043d \u0431\u0443\u0434\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432\u0441\u0435 \u043d\u0430\u0448\u0438 \u043d\u043e\u0442\u044b \u0432 \u043d\u0443\u0436\u043d\u043e\u0439 \u043d\u0430\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>  <i>\u0424\u0430\u0439\u043b Note.java<\/i><\/p>\n<pre><code class=\"java\">package ru.habrahabr.songs_of_the_space.objects;  public class Note {     private String note;     private float delay;     private Star star;      \/\/ \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043d\u043e\u0442\u044b. \u041d\u043e\u0442\u044b \u0431\u0443\u0434\u0435\u043c \u0431\u0440\u0430\u0442\u044c \u0438\u0437 xml \u0444\u0430\u0439\u043b\u0430 \u0443\u0440\u043e\u0432\u043d\u044f.     public void setNote(String note) {         this.note = note;     }      public String getNote() {         return this.note;     }      \/\/ \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443 \u0434\u043b\u044f \u043d\u043e\u0442\u044b, \u0447\u0442\u043e\u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043c\u0435\u043b\u043e\u0434\u0438\u0438 \u0440\u0430\u0437\u043d\u043e\u0439 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438     public void setDelay(String delay) {         this.delay = Float.parseFloat(delay);     }      public float getDelay() {         return this.delay;     }      \/\/ \u041d\u0430\u0448\u0430 \u043a\u0440\u0430\u0441\u0430\u0432\u0438\u0446\u0430 -- \u0437\u0432\u0435\u0437\u0434\u0430     public void setStar(Star star) {         this.star = star;     }      public Star getStar() {         return this.star;     } } <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u043d\u043e\u0442\u0443, \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0437\u0432\u0435\u0437\u0434\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0448\u0438\u043c \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c \u0430\u043a\u0442\u0435\u0440\u043e\u043c \u0432 \u043d\u0430\u0448\u0435\u0439 \u043a\u043e\u0441\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0446\u0435\u043d\u0435. \u041e\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u043c\u0435\u0440\u0446\u0430\u0442\u044c \u0438 \u043f\u0435\u0442\u044c \u0441\u0432\u043e\u044e \u0447\u0443\u0434\u043d\u0443\u044e \u043c\u0435\u043b\u043e\u0434\u0438\u044e \u0434\u043b\u044f \u0431\u0443\u0434\u0443\u0449\u0438\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439.<br \/>  \u041f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c, \u043a\u0430\u043a \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u044f\u0441\u043d\u044e, \u0437\u0430\u0447\u0435\u043c \u043d\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 \u0434\u043b\u044f \u043d\u043e\u0442\u044b \u0438 \u0434\u043b\u044f \u0437\u0432\u0435\u0437\u0434\u044b. \u041c\u0435\u043b\u043e\u0434\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0442\u044c \u0441\u0432\u043e\u0438 \u043d\u043e\u0442\u044b, \u0430 \u043a\u0430\u0436\u0434\u0430\u044f \u0437\u0432\u0435\u0437\u0434\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0432 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0435. \u041a\u043e\u0433\u0434\u0430 \u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0434\u0443\u043c\u044b\u0432\u0430\u043b \u0438\u0434\u0435\u044e \u0438\u0433\u0440\u044b, \u044f \u043a\u0430\u043a \u0440\u0430\u0437 \u0445\u0440\u0430\u043d\u0438\u043b \u043a\u0430\u0436\u0434\u0443\u044e \u043d\u043e\u0442\u0443 \u0432\u043d\u0443\u0442\u0440\u0438 \u0437\u0432\u0435\u0437\u0434\u044b. \u0412 \u0438\u0442\u043e\u0433\u0435, \u043b\u0438\u0431\u043e \u043c\u0435\u043b\u043e\u0434\u0438\u044f \u0431\u044b\u043b\u0430 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u0439, \u043b\u0438\u0431\u043e \u0437\u0432\u0435\u0437\u0434 \u043d\u0430 \u043d\u0435\u0431\u0435 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u043e\u0441\u044c \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u043d\u043e\u0433\u043e \u0438 \u0431\u044b\u043b\u043e \u0441\u043b\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0439\u0442\u0438 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0434\u0430\u0436\u0435 \u0441 \u0432\u043e\u0441\u0435\u043c\u044c\u044e \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u043c\u0438\u0441\u044f \u043d\u043e\u0442\u0430\u043c\u0438.<br \/>  \u0418\u0442\u0430\u043a, \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0437\u0432\u0435\u0437\u0434\u0443.<\/p>\n<p>  \u0424\u0430\u0439\u043b Star.java<\/p>\n<pre><code class=\"java\">package ru.sayakhov.songs_of_the_space.objects;  import com.badlogic.gdx.Gdx; import com.badlogic.gdx.audio.Sound; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.Texture.TextureFilter; import com.badlogic.gdx.graphics.g2d.Batch; import com.badlogic.gdx.graphics.g2d.Sprite; import com.badlogic.gdx.scenes.scene2d.Actor; import com.badlogic.gdx.scenes.scene2d.InputEvent; import com.badlogic.gdx.scenes.scene2d.Touchable; import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;  public class Star extends Actor {          \/\/ \u0417\u0432\u0443\u043a, \u0435\u0441\u043b\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043e\u0448\u0438\u0431\u0441\u044f     private Sound sound, wrong;      \/\/ \u041d\u043e\u0442\u044b \u0432 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438     private String note;      \/\/ \u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0437\u0432\u0435\u0437\u0434\u044b     private Sprite img;     private Texture img_texture;          \/\/ \u041d\u0430\u0448 \u0443\u0440\u043e\u0432\u0435\u043d\u044c. \u041e\u043d \u0431\u0443\u0434\u0435\u0442 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c, \u0433\u0434\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0437\u0432\u0435\u0437\u0434\u0430     private Level level;          public Star(String str_img, String str_sound) {         img_texture = new Texture(&quot;images\/stars\/&quot; + str_img + &quot;.png&quot;);         img_texture.setFilter(TextureFilter.Linear, TextureFilter.Linear);         img = new Sprite(img_texture);          \/\/ \u042d\u0442\u043e \u044f \u0441\u0434\u0435\u043b\u0430\u043b \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u043c\u0435\u0440 \u0437\u0432\u0435\u0437\u0434\u044b \u043c\u0435\u043d\u044f\u043b\u0441\u044f \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u044d\u043a\u0440\u0430\u043d\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f          img.setSize(Gdx.graphics.getHeight() * 15 \/ 100, Gdx.graphics.getHeight() * 15 \/ 100);         this.note = str_sound;         this.sound = Gdx.audio.newSound(Gdx.files.internal(&quot;sounds\/bells\/&quot; + str_sound + &quot;.mp3&quot;));         this.wrong = Gdx.audio.newSound(Gdx.files.internal(&quot;sounds\/bells\/wrong.mp3&quot;));          \/\/ \u0421\u043b\u0443\u0448\u0430\u0435\u0442 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u043a\u0430\u0441\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u0438\u0433\u0440\u0430\u0435\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u043d\u043e\u0442\u0443, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u044d\u0444\u0444\u0435\u043a\u0442 \u043c\u0435\u0440\u0446\u0430\u043d\u0438\u044f \u0437\u0430 \u0441\u0447\u0435\u0442 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u0437\u0432\u0435\u0437\u0434\u044b \u0432 \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u0445         addListener(new ClickListener() {             @Override             public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {                 img.setScale(1.2f);                 if (note.equals(level.getCurrentNoteStr())) {                     level.setCurrentNote();                     Gdx.input.vibrate(25); \/\/ \u0414\u0430\u0434\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u043e\u043d \u043d\u0430\u0436\u0430\u043b \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0432\u0438\u0431\u0440\u0438\u0440\u0443\u044f \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u043a\u0430\u0441\u0430\u043d\u0438\u044f                     getSound().play();                 } else {                      \/\/ \u0415\u0441\u043b\u0438 \u044e\u0437\u0435\u0440 \u043e\u0448\u0438\u0431\u0441\u044f, \u0442\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0441\u043d\u0430\u0447\u0430\u043b\u0430. \u041f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u0435\u043c \u043f\u0435\u0440\u0432\u044b\u0435 \u0447\u0435\u0442\u044b\u0440\u0435 \u043d\u043e\u0442\u044b \u0438 \u0438\u0433\u0440\u0430\u0435\u043c \u0438\u0445. \u0410 \u0442\u0430\u043a\u0436\u0435 \u0441\u0438\u043b\u044c\u043d\u0435\u0435 \u0432\u0438\u0431\u0440\u0438\u0440\u0443\u0435\u043c, \u0447\u0442\u043e\u0431\u044b \u043e\u043f\u043e\u0432\u0435\u0441\u0442\u0438\u0442\u044c \u0435\u0433\u043e \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435.                      level.setCurrentNote(0);                     level.setEndNote(true);                     level.setPlayMusic();                     getWrongSound().play();                     Gdx.input.vibrate(80);                 }                 return true;             }                          @Override             public void touchUp(InputEvent event, float x, float y, int pointer, int button) {                 img.setScale(1.0f); \/\/ \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043e\u0442\u043f\u0443\u0441\u0442\u0438\u043b \u043d\u0430\u0448\u0443 \u0437\u0432\u0435\u0437\u0434\u0443, \u0434\u0435\u043b\u0430\u0435\u043c \u0435\u0435 \u0440\u0430\u0437\u043c\u0435\u0440 \u0442\u0430\u043a\u0438\u043c \u0436\u0435, \u043a\u0430\u043a\u0438\u043c \u043e\u043d \u0431\u044b\u043b             }         });         setTouchable(Touchable.enabled); \/\/ \u0414\u0435\u043b\u0430\u0435\u043c \u043d\u0430\u0448\u0443 \u0437\u0432\u0435\u0437\u0434\u0443 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u0434\u043b\u044f \u043a\u0430\u0441\u0430\u043d\u0438\u044f     }          public void setLevel(Level level) {         this.level = level;     }           \/\/ \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0440\u0430\u0432\u043d\u043e\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0430\u043a\u0442\u0435\u0440\u0430, \u0438 \u0434\u0435\u043b\u0430\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0430\u043a\u0442\u0435\u0440\u0430 \u0440\u0430\u0432\u043d\u044b\u043c\u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u0443 \u0437\u0432\u0435\u0437\u0434\u044b     @Override     public void setBounds(float x, float y, float width, float height) {         super.setBounds(x, y, this.img.getWidth(), this.img.getHeight());         this.img.setPosition(x, y);     }          \/\/ \u0412 \u043a\u0430\u0436\u0434\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043a\u0440\u0443\u0442\u0438\u043c \u043d\u0430\u0448\u0443 \u0437\u0432\u0435\u0437\u0434\u0443. \u041f\u0443\u0441\u0442\u044c \u043f\u043e\u0442\u0430\u043d\u0446\u0443\u0435\u0442.     @Override     public void act(float delta) {         img.rotate(0.05f);     }          \/\/ \u0420\u0438\u0441\u0443\u0435\u043c \u0437\u0432\u0435\u0437\u0434\u0443 \u043d\u0430 \u0441\u0446\u0435\u043d\u0435     @Override     public void draw(Batch batch, float alpha) {         this.img.draw(batch);     }          public Sound getSound() {         return this.sound;     }          public Sound getWrongSound() {         return this.wrong;     }          public String getNote() {         return this.note;     }          public Sprite getImg() {         return this.img;     } } <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043d\u0430\u0448 \u043a\u043b\u0430\u0441\u0441 \u0443\u0440\u043e\u0432\u043d\u044f. \u041e\u043d \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u0437\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u0430\u043a\u0442\u0440\u0438\u0441 \u0438 \u0430\u043a\u0442\u0435\u0440\u043e\u0432, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u0433\u0440\u0430\u0442\u044c \u043c\u0435\u043b\u043e\u0434\u0438\u044e \u0438 \u043f\u043e\u0437\u0434\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0432 \u043f\u043e\u0431\u0435\u0434\u043e\u0439. \u042f \u0434\u043e\u0431\u0430\u0432\u0438\u043b \u0435\u0433\u043e \u0432 \u043f\u0430\u043a\u0435\u0442 <i>objects<\/i>, \u043d\u043e \u043e\u043d \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u043a\u0430\u043a \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u0435\u0433\u043e \u0442\u0443\u0434\u0430 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e.<\/p>\n<p>  \u0424\u0430\u0439\u043b Level.java<\/p>\n<pre><code class=\"java\">package ru.habrahabr.songs_of_the_space.objects;  import java.util.HashMap; import java.util.Map;  import com.badlogic.gdx.Gdx; import com.badlogic.gdx.audio.Sound; import com.badlogic.gdx.scenes.scene2d.Touchable; import com.badlogic.gdx.utils.Array;  public class Level {          private XMLparse xml_parse;     private Array&lt;Note&gt; notes = new Array&lt;Note&gt;();     private Array&lt;Star&gt; stars = new Array&lt;Star&gt;();     private Map&lt;String, Array&lt;String&gt;&gt; starsPos = new HashMap&lt;String, Array&lt;String&gt;&gt;();          private int currentNote;     private int endNote;          private float delay;     private boolean playMusic;          private boolean win;          private final Sound winner = Gdx.audio.newSound(Gdx.files.internal(&quot;sounds\/win.mp3&quot;)); \/\/ \u041f\u043e\u0431\u0435\u0434\u043d\u044b\u0439 \u0437\u0432\u0443\u043a \u0430\u043f\u043b\u043e\u0434\u0438\u0441\u043c\u0435\u043d\u0442\u043e\u0432          public Level(String level) {         xml_parse = new XMLparse();         Array&lt;Star&gt; xml_stars = xml_parse.XMLparseStars(); \/\/ \u043f\u0430\u0440\u0441\u0438\u043c \u0437\u0432\u0435\u0437\u0434\u044b \u0438\u0437 \u0432\u0441\u0435\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430 \u0438\u043c\u0435\u044e\u0449\u0438\u0445\u0441\u044f         notes = xml_parse.XMLparseNotes(level); \/\/ \u043f\u0430\u0440\u0441\u0438\u043c \u043d\u043e\u0442\u044b \u0434\u043b\u044f \u0443\u0440\u043e\u0432\u043d\u044f         starsPos = xml_parse.getPos(level); \/\/ \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0437\u0432\u0435\u0437\u0434 \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u0443\u0440\u043e\u0432\u043d\u0435         endNote = 3;         delay = 0;         this.win = false;                  setPlayMusic();                  for (Note n : this.notes) {             for (Star s : xml_stars) {                 if (n.getNote().equals(s.getNote()) && !this.stars.contains(s, true)) { \/\/ \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432 \u043e\u0434\u043d\u043e\u043c xml \u0443 \u043d\u0430\u0441 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432\u0441\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0437\u0432\u0435\u0437\u0434, \u044d\u0442\u043e\u0442 \u043a\u043e\u0434 \u043e\u0442\u0441\u0435\u0438\u0442 \u043b\u0438\u0448\u043d\u0438\u0435                     this.stars.add(s);                 }                 if (n.getNote().equals(s.getNote())) n.setStar(s); \/\/ \u0410 \u0437\u0434\u0435\u0441\u044c \u043c\u044b \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043d\u043e\u0442\u044b \u0441\u0432\u043e\u044e \u0437\u0432\u0435\u0437\u0434\u0443             }         }          for (Star s : this.stars) {             s.setLevel(this);             s.setBounds(                  \/\/ \u042d\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0437\u0438\u0446\u0438\u044e \u0437\u0432\u0435\u0437\u0434\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043e\u043c \u043e\u0442 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u044d\u043a\u0440\u0430\u043d\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0438 (\u0442\u0430\u043a \u043a\u0430\u043a \u0441\u043a\u043e\u043f\u043b\u0435\u043d\u0438\u044f \u043d\u0430\u0448\u0438\u0445 \u0437\u0432\u0435\u0437\u0434 \u0431\u0443\u0434\u0443\u0442 \u0441\u0442\u0430\u0440\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0445\u043e\u0434\u0438\u0442\u044c \u043d\u0430 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u0441\u043e\u0437\u0432\u0435\u0437\u0434\u0438\u044f \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u0441\u043c\u043e\u0441\u0430)                  Gdx.graphics.getWidth() * Float.parseFloat(starsPos.get(s.getNote()).get(0)) \/ 100,                 Gdx.graphics.getHeight() * Float.parseFloat(starsPos.get(s.getNote()).get(1)) \/ 100 - s.getImg().getHeight() \/ 2,                 s.getImg().getWidth(),                 s.getImg().getHeight()             );         }     }          public boolean isWin() {         return this.win;     }      \/\/ \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u043d\u043e\u0442\u0443          public void setEndNote() {         if (this.endNote &lt; this.notes.size - 1) {             this.endNote += 4;         }     }          \/\/ \u041f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0432 \u0441\u043b\u0443\u0447\u0430\u0435, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043e\u0448\u0438\u0431\u0441\u044f, \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0443\u044e \u043d\u043e\u0442\u0443.     \/\/ \u041c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0438 \u043e\u0434\u043d\u0438\u043c \u043c\u0435\u0442\u043e\u0434\u043e\u043c, \u043d\u043e \u043c\u043d\u0435 \u0442\u0430\u043a \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u043e\u0441\u044c \u0431\u043e\u043b\u044c\u0448\u0435. \u041f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0439! \u0412\u043b\u0430\u0441\u0442\u0432\u0443\u0439!      public void setEndNote(boolean begin) {         if (begin) {             this.endNote = 3;         }     }          public void setCurrentNote(int note) {         this.currentNote = note;     }      \/\/ \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u043d\u043e\u0442\u0443          public void setCurrentNote() {         if (this.currentNote &lt; this.notes.size - 1) {             this.currentNote++;             if (currentNote - 1 == endNote) {                 currentNote = 0;                 setEndNote(); \/\/ \u0423\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 4 \u0434\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u043d\u043e\u0442\u044b                 setPlayMusic(); \/\/ \u0418\u0433\u0440\u0430\u0435\u043c \u043c\u0435\u043b\u043e\u0434\u0438\u044e \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u043d\u043e\u0442             }         } else {              \/\/ \u0415\u0441\u043b\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043e\u0442\u044b\u0433\u0440\u0430\u043b \u0432\u0441\u0435 \u043d\u043e\u0442\u044b, \u0438\u0433\u0440\u0430\u0435\u043c \u043f\u043e\u0431\u0435\u0434\u043d\u044b\u0435 \u0430\u043f\u043b\u043e\u0434\u0438\u0441\u043c\u0435\u043d\u0442\u044b              this.endNote = notes.size - 1;             this.currentNote = 0;             this.win = true;             this.winner.play();         }     }          public int getCurrentNote() {         return this.currentNote;     }          public String getCurrentNoteStr() {         return this.notes.get(this.currentNote).getNote();     }          public Array&lt;Note&gt; getNotes() {         return this.notes;     }          public Array&lt;Star&gt; getStars() {         return this.stars;     }               public void setPlayMusic() {         if (playMusic) {             playMusic = false;         } else {             playMusic = true;         }     }          \/\/ \u0418\u0433\u0440\u0430\u0435\u043c \u043d\u0430\u0448\u0438 \u043d\u043e\u0442\u044b \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f      public void playStars() {         if (playMusic) {             for (Star s : stars) {                 s.setTouchable(Touchable.disabled); \/\/ \u041d\u0435 \u0434\u0430\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0442\u0440\u043e\u0433\u0430\u0442\u044c \u043d\u0430\u0448\u0438 \u0437\u0432\u0435\u0437\u0434\u044b, \u043f\u043e\u043a\u0430 \u0438\u0433\u0440\u0430\u0435\u0442 \u043c\u0435\u043b\u043e\u0434\u0438\u044f             }             if (getCurrentNote() &lt; notes.size) {                 if (getCurrentNote() &lt;= endNote) {                     Note note = notes.get(getCurrentNote());                                          delay += note.getDelay(); \/\/ delay \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443 \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043c\u0435\u0436\u0434\u0443 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u043d\u0438\u0435\u043c \u043d\u043e\u0442                                          if (delay &gt;= 0.9f) note.getStar().getImg().setScale(1.2f); \/\/ \u0423\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u043c \u0430\u043a\u0442\u0438\u0432\u043d\u0443\u044e \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0437\u0432\u0435\u0437\u0434\u0443 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u044d\u0444\u0444\u0435\u043a\u0442 \u043c\u0435\u0440\u0446\u0430\u043d\u0438\u044f                                          if (delay &gt;= 1.0f) {                         delay = 0;                         setCurrentNote(currentNote + 1);                         note.getStar().getSound().play();                         note.getStar().getImg().setScale(1f);                     }                 } else {                     setPlayMusic();                     setCurrentNote(0);                 }             } else {                 delay = 0;                 setCurrentNote(0);                 setPlayMusic();             }         } else {             for (Star s : stars) {                 s.setTouchable(Touchable.enabled); \/\/ \u0414\u0435\u043b\u0430\u0435\u043c \u0432\u0441\u0435 \u043d\u0430\u0448\u0438 \u0437\u0432\u0435\u0437\u0434\u044b \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u0434\u043b\u044f \u043a\u0430\u0441\u0430\u043d\u0438\u044f             }         }     } } <\/code><\/pre>\n<p>  \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u0432\u0441\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u043e. \u0421\u0442\u0430\u0440\u0430\u043b\u0441\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0434. \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435, \u0447\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u2014 \u044d\u0442\u043e <i>delay<\/i>. \u041f\u043e\u044f\u0441\u043d\u044e \u043d\u0435\u043c\u043d\u043e\u0433\u043e. \u041c\u0435\u0442\u043e\u0434 <b>playStars()<\/b> \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u043c\u0435\u0442\u043e\u0434\u0435 <b>render()<\/b> \u043a\u043b\u0430\u0441\u0441\u0430 <i>PlayScreen.java<\/i>. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443, \u043e\u043d \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u043f\u043e\u0442\u043e\u043a\u0435, \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043f\u0440\u0438 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0438 \u0432\u0441\u0435\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u0439, <i>delay<\/i> \u0431\u0443\u0434\u0435\u0442 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0438\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430 \u0432 \u0438\u0433\u0440\u0435 \u043d\u043e\u0442. \u042d\u0442\u043e \u043b\u0443\u0447\u0448\u0435 \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0432 \u043a\u043e\u0434\u0435. \u0414\u0430\u0432\u0430\u0439\u0442\u0435, \u043d\u0430\u043a\u043e\u043d\u0435\u0446 \u043d\u0430\u043f\u043e\u043b\u043d\u0438\u043c \u043d\u0430\u0448 \u043a\u043b\u0430\u0441\u0441 PlayScreen.java. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443, \u0442\u0430\u043c \u043c\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430, \u044f \u0440\u0435\u0448\u0438\u043b \u0435\u0433\u043e \u0441\u043f\u0440\u044f\u0442\u0430\u0442\u044c \u043f\u043e\u0434 \u0441\u043f\u043e\u0439\u043b\u0435\u0440.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0424\u0430\u0439\u043b PlayScreen.java<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">package ru.habrahabr.songs_of_the_space.managers;  import ru.habrahabr.songs_of_the_space.MyGame; import ru.habrahabr.songs_of_the_space.objects.GamePreferences; import ru.habrahabr.songs_of_the_space.objects.Level; import ru.habrahabr.songs_of_the_space.objects.PlayStage; import ru.habrahabr.songs_of_the_space.objects.PlayStage.OnHardKeyListener; import ru.habrahabr.songs_of_the_space.objects.Star;  import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Input.Keys; import com.badlogic.gdx.Screen; import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.g2d.TextureAtlas; import com.badlogic.gdx.scenes.scene2d.InputEvent; import com.badlogic.gdx.scenes.scene2d.Touchable; import com.badlogic.gdx.scenes.scene2d.ui.Label; import com.badlogic.gdx.scenes.scene2d.ui.Label.LabelStyle; import com.badlogic.gdx.scenes.scene2d.ui.Skin; import com.badlogic.gdx.scenes.scene2d.ui.Table; import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.badlogic.gdx.scenes.scene2d.ui.TextButton.TextButtonStyle; import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.viewport.ScreenViewport;  public class PlayScreen implements Screen {          final MyGame game;          private GamePreferences pref;          private Level level;     private String sL, nL;     private Array&lt;Star&gt; stars;      private PlayStage stage;     private Table table, table2;          public PlayScreen(final MyGame gam, String strLevel, String strNextLevel) {         game = gam;         this.sL = strLevel;         this.nL = strNextLevel;                  stage = new PlayStage(new ScreenViewport());                  stage.addActor(game.background); \/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0444\u043e\u043d                  pref = new GamePreferences();                  level = new Level(strLevel);         stars = level.getStars();                  level.setCurrentNote(0);                  for (final Star s : stars) {             stage.addActor(s); \/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432\u0441\u0435\u0445 \u0430\u043a\u0442\u0440\u0438\u0441 (\u0437\u0432\u0435\u0437\u0434\u044b) \u043d\u0430 \u0441\u0446\u0435\u043d\u0443         }                  LabelStyle labelStyle = new LabelStyle();         labelStyle.font = game.font;                  \/\/ Skin \u0434\u043b\u044f \u043a\u043d\u043e\u043f\u043e\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u043e\u0431\u0435\u0434\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f          Skin skin = new Skin();         TextureAtlas buttonAtlas = new TextureAtlas(Gdx.files.internal(&quot;images\/game\/images.pack&quot;));         skin.addRegions(buttonAtlas);         TextButtonStyle textButtonStyle = new TextButtonStyle();         textButtonStyle.font = game.font;         textButtonStyle.up = skin.getDrawable(&quot;button-up&quot;);         textButtonStyle.down = skin.getDrawable(&quot;button-down&quot;);         textButtonStyle.checked = skin.getDrawable(&quot;button-up&quot;);                  \/\/ \u0414\u043b\u044f \u0432\u0441\u0435\u0445 \u043a\u043d\u043e\u043f\u043e\u043a \u043b\u0443\u0447\u0448\u0435 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d\u0430 \u0445\u043e\u0440\u043e\u0448\u043e \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441 \u0432\u0430\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435\u043c          table = new Table();         table.padTop(20);         table.center().top();         table.setFillParent(true);          \/\/ label \u0434\u043b\u044f \u043f\u043e\u043a\u0430\u0437\u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0437\u0432\u0435\u0437\u0434\u0438\u044f                  Label label = new Label(game.langStr.get(&quot;Constellation&quot;), labelStyle);         table.add(label);         table.row().padBottom(30);         label = new Label(game.langStr.get(&quot;level_&quot; + strLevel), labelStyle);         table.add(label);                  table.setVisible(false);                  stage.addActor(table);                  table2 = new Table();         table2.center().bottom();         table2.setFillParent(true);         table2.row().colspan(2).padBottom(30);         label = new Label(game.langStr.get(&quot;YouWin&quot;), labelStyle);         table2.add(label).bottom();         table2.row().padBottom(20);         TextButton button = new TextButton(game.langStr.get(&quot;Again&quot;), textButtonStyle);          \/\/ \u041d\u0443\u0436\u043d\u043e \u043d\u0435 \u0437\u0430\u0431\u044b\u0442\u044c \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0438 \u043f\u0440\u043e\u0441\u043b\u0443\u0448\u0438\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0431\u044b\u0442\u0438\u0445 \u043a\u043b\u0438\u043a\u0430 (\u043a\u0430\u0441\u0430\u043d\u0438\u044f)                  \/\/ \u042d\u0442\u0430 \u043a\u043d\u043e\u043f\u043a\u0430, \u043f\u043e\u0441\u043b\u0435 \u043d\u0430\u0436\u0430\u0442\u0438\u044f, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0441\u043d\u0430\u0447\u0430\u043b\u0430                  button.addListener(new ClickListener() {             @Override             public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {                 Gdx.input.vibrate(20);                 return true;             };             @Override             public void touchUp(InputEvent event, float x, float y, int pointer, int button) {                 game.setScreen(new PlayScreen(game, sL, nL));                 dispose();             };         });         table2.add(button);          \/\/ \u0410 \u044d\u0442\u0430 \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u0432\u044b\u0431\u043e\u0440\u0430 \u0443\u0440\u043e\u0432\u043d\u044f          button = new TextButton(game.langStr.get(&quot;Levels&quot;), textButtonStyle);         button.addListener(new ClickListener() {             @Override             public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {                 Gdx.input.vibrate(20);                 return true;             };             @Override             public void touchUp(InputEvent event, float x, float y, int pointer, int button) {                 game.setScreen(new LevelScreen(game));                 dispose();             };         });         table2.add(button);         table2.setVisible(false);                  stage.addActor(table2);                  Gdx.input.setInputProcessor(stage);         Gdx.input.setCatchBackKey(true);         stage.setHardKeyListener(new OnHardKeyListener() {                       @Override             public void onHardKey(int keyCode, int state) {                 if (keyCode == Keys.BACK && state == 1){                     game.setScreen(new LevelScreen(game));                     }                    }         });     }      @Override     public void render(float delta) {          \/\/ \u041e\u0447\u0438\u0441\u0442\u043a\u0430 \u044d\u043a\u0440\u0430\u043d\u0430 \u0432 \u043a\u0430\u0436\u0434\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u0442\u043e\u043a\u0430              Gdx.gl.glClearColor(0, 0, 0, 1);         Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);                  \/\/ \u0420\u0438\u0441\u0443\u0435\u043c \u0441\u0446\u0435\u043d\u0443 \u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u043c\u0435\u0442\u043e\u0434 act() \u0434\u043b\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0430\u043a\u0442\u0435\u0440\u043e\u0432, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0432 \u043e\u0434\u043d\u043e\u0438\u043c\u0435\u043d\u043d\u043e\u043c \u043c\u0435\u0442\u043e\u0434\u0435 \u043a\u0430\u0436\u0434\u043e\u0433\u043e (\u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u044d\u0442\u043e \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0437\u0432\u0435\u0437\u0434)                  stage.act(delta);         stage.draw();                  level.playStars();                  \/\/ \u0415\u0441\u043b\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0432\u044b\u0438\u0433\u0440\u0430\u043b, \u0442\u043e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0435\u043c\u0443 \u0432\u0441\u0435 \u043d\u0430\u0448\u0438 \u043a\u043d\u043e\u043f\u043a\u0438, label'\u044b \u0438 \u043f\u0440\u043e\u0447\u0435\u0435          if (level.isWin()) {             table.setVisible(true);             table2.setVisible(true);             pref.setLevel(nL); \/\/ \u042d\u0442\u043e \u0434\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0438\u0433\u0440\u044b. \u041e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u044f \u043d\u0438\u0436\u0435.             for (Star s : stars) {                 s.setTouchable(Touchable.disabled); \/\/ \u0414\u0435\u043b\u0430\u0435\u043c \u0432\u0441\u0435 \u0437\u0432\u0435\u0437\u0434\u044b \u043d\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u0434\u043b\u044f \u043a\u0430\u0441\u0430\u043d\u0438\u044f \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u0431\u0435\u0434\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f             }         }     }      @Override     public void resize(int width, int height) {}      @Override     public void show() {}      @Override     public void hide() {}      @Override     public void pause() {}      @Override     public void resume() {}      \/\/ \u041d\u0430 \u0437\u0430\u0431\u044b\u0432\u0430\u0435\u043c \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0438\u0442\u044c \u0441\u0446\u0435\u043d\u0443 \u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \u043a\u043b\u0430\u0441\u0441\u0430 MyGame      @Override     public void dispose() {         stage.dispose();         game.dispose();     } } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u041d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u043a\u043e\u0434 \u0432\u044b\u0437\u0432\u0430\u043b \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432, \u0442\u0430\u043a \u043a\u0430\u043a \u0432 \u043d\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 <i>GamePreferences.java<\/i>. \u042d\u0442\u043e\u0442 \u043a\u043b\u0430\u0441\u0441 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043d\u0430\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432\u0441\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0438\u0433\u0440\u044b \u0432 \u0443\u0434\u043e\u0431\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435. \u0414\u043b\u044f Android \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d, \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 <a href=\"http:\/\/developer.android.com\/reference\/android\/content\/SharedPreferences.html\">\u00abSharedPreferences\u00bb<\/a>. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 <a href=\"https:\/\/github.com\/libgdx\/libgdx\/wiki\/Preferences\">\u0437\u0434\u0435\u0441\u044c<\/a>. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0432 \u043d\u0435\u043c \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0439\u0434\u0435\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c \u0443\u0440\u043e\u0432\u043d\u0438.<br \/>  \u041d\u0443 \u0447\u0442\u043e? \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0442\u0435\u043f\u0435\u0440\u044c \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0438 \u043d\u0430\u043f\u043e\u043b\u043d\u0438\u043c \u0435\u0433\u043e.<\/p>\n<p>  <i>\u0424\u0430\u0439\u043b GamePreferences.java<\/i><\/p>\n<pre><code class=\"java\">package ru.habrahabr.songs_of_the_space.objects;  import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Preferences;  public class GamePreferences {     private Preferences pref;          private static final String PREFS_NAME = &quot;SONGS_OF_THE_SPACE&quot;;     private static final String PREF_LEVEL = &quot;LEVEL_&quot;;          public GamePreferences() {         pref = Gdx.app.getPreferences(PREFS_NAME);     }          public boolean getLevel(String level) {         pref.putBoolean(PREF_LEVEL + 1, true);         pref.flush();         return pref.getBoolean(PREF_LEVEL + level, false);     }       public void setLevel(String level) {         pref.putBoolean(PREF_LEVEL + level, true);         pref.flush();     } } <\/code><\/pre>\n<p>  \u0412 \u043d\u0435\u043c \u043d\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e. \u041d\u0435 \u0431\u0443\u0434\u0443 \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e, \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043d\u0435\u0435 \u044f \u0434\u0430\u043b \u043d\u0438\u0436\u0435. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u043d\u0430\u0448 \u043a\u043b\u0430\u0441\u0441 <i>XMLparse.java<\/i>. \u0422\u0430\u043a, \u043c\u044b \u0435\u0449\u0435 \u043d\u0435 \u043d\u0430\u0443\u0447\u0438\u043b\u0438 \u043d\u0430\u0448\u0443 \u043f\u0430\u0440\u0441\u0438\u0442\u044c \u0437\u0432\u0435\u0437\u0434\u044b \u0438 \u043d\u043e\u0442\u044b. \u0421\u0434\u0435\u043b\u0430\u0435\u043c \u044d\u0442\u043e.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0424\u0430\u0439\u043b XMLparse.java<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">package ru.habrahabr.songs_of_the_space.objects;  import java.io.IOException; import java.util.HashMap; import java.util.Map;  import com.badlogic.gdx.Application.ApplicationType; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.files.FileHandle; import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.XmlReader; import com.badlogic.gdx.utils.XmlReader.Element;  public class XMLparse {          private Array&lt;Star&gt; stars = new Array&lt;Star&gt;();     private Array&lt;Note&gt; notes = new Array&lt;Note&gt;();     private Map&lt;String, Array&lt;String&gt;&gt; starsPos = new HashMap&lt;String, Array&lt;String&gt;&gt;();      \/\/ \u0412 \u044d\u0442\u043e\u043c \u043c\u0435\u0442\u043e\u0434\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043f\u0430\u0440\u0441\u0438\u0442\u044c \u043d\u0430\u0448\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u044b. \u0410 \u0432\u044b \u043a\u0430\u043a \u0434\u0443\u043c\u0430\u043b\u0438? \u041c\u044b \u0434\u0435\u043b\u0430\u0435\u043c \u043c\u043d\u043e\u0433\u043e\u044f\u0437\u044b\u0447\u043d\u0443\u044e \u0438\u0433\u0440\u0443!          public HashMap&lt;String, String&gt; XMLparseLangs(String lang) {         HashMap&lt;String, String&gt; langs = new HashMap&lt;String, String&gt;();         try {             Element root = new XmlReader().parse(Gdx.files.internal(&quot;xml\/langs.xml&quot;));             Array&lt;Element&gt; xml_langs = root.getChildrenByName(&quot;lang&quot;);                          for (Element el : xml_langs) {                 if (el.getAttribute(&quot;key&quot;).equals(lang)) {                     Array&lt;Element&gt; xml_strings = el.getChildrenByName(&quot;string&quot;);                     for (Element e : xml_strings) {                         langs.put(e.getAttribute(&quot;key&quot;), e.getText());                     }                 } else if (el.getAttribute(&quot;key&quot;).equals(&quot;en&quot;)) {                     Array&lt;Element&gt; xml_strings = el.getChildrenByName(&quot;string&quot;);                     for (Element e : xml_strings) {                         langs.put(e.getAttribute(&quot;key&quot;), e.getText());                     }                 }             }         } catch (IOException e) {             e.printStackTrace();         }         return langs;     }      \/\/ \u0412 \u044d\u0442\u043e\u043c \u043c\u0435\u0442\u043e\u0434\u0435 \u043f\u0430\u0440\u0441\u0438\u043c \u0437\u0432\u0435\u0437\u0434\u044b          public Array&lt;Star&gt; XMLparseStars() {         try {             Element root = new XmlReader().parse(Gdx.files.internal(&quot;xml\/stars.xml&quot;));             Array&lt;Element&gt; xml_stars = root.getChildrenByName(&quot;star&quot;);                          for (Element el : xml_stars) {                 Star star = new Star(                     el.getAttribute(&quot;files&quot;),                     el.getAttribute(&quot;files&quot;)                 );                                  stars.add(star);             }         } catch (IOException e) {             e.printStackTrace();         }         return this.stars;     }      \/\/ \u0412 \u044d\u0442\u043e\u043c \u043f\u0430\u0440\u0441\u0438\u043c \u0443\u0440\u043e\u0432\u043d\u0438          public Array&lt;String&gt; XMLparseLevels() {         Array&lt;String&gt; levels = new Array&lt;String&gt;();         Array&lt;Integer&gt; int_levels = new Array&lt;Integer&gt;();                  FileHandle dirHandle;         if (Gdx.app.getType() == ApplicationType.Android) {             dirHandle = Gdx.files.internal(&quot;xml\/levels&quot;);         } else {                          \/\/ \u042d\u0442\u043e \u0445\u0430\u043a, \u0442\u0430\u043a \u043a\u0430\u043a libGDX \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u043d\u0435 \u0445\u043e\u0442\u0435\u043b \u0432\u0438\u0434\u0435\u0442\u044c \u044d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b \u043f\u0440\u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 Desktop \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f              dirHandle = Gdx.files.internal(System.getProperty(&quot;user.dir&quot;) + &quot;\/assets\/xml\/levels&quot;);         }         for (FileHandle entry : dirHandle.list()) {             levels.add(entry.name().split(&quot;.xml&quot;)[0]);         }                  for (int i = 0; i &lt; levels.size; i++) {             int_levels.add(Integer.parseInt(levels.get(i)));         }         int_levels.sort();         levels.clear();                  for (int i = 0; i &lt; int_levels.size; i++) {             levels.add(String.valueOf(int_levels.get(i)));         }         return levels;     }      \/\/ \u041f\u0430\u0440\u0441\u0438\u043c \u043d\u043e\u0442\u044b          public Array&lt;Note&gt; XMLparseNotes(String strLevel) {         try {             Element root = new XmlReader().parse(Gdx.files.internal(&quot;xml\/levels\/&quot; + strLevel + &quot;.xml&quot;)).getChildByName(&quot;notes&quot;);             Array&lt;Element&gt; xml_notes = root.getChildrenByName(&quot;note&quot;);                          for (Element el : xml_notes) {                 Note note = new Note();                                  note.setNote(el.getText());                 note.setDelay(el.getAttribute(&quot;delay&quot;));                                  this.notes.add(note);             }                      } catch (IOException e) {             e.printStackTrace();         }         return this.notes;     }      \/\/ \u041f\u0430\u0440\u0441\u0438\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e \u0434\u043b\u044f \u0437\u0432\u0435\u0437\u0434. \u0417\u043d\u0430\u044e \u0437\u043d\u0430\u044e, \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u043f\u0440\u0438 \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0435 \u0443\u0440\u043e\u0432\u043d\u044f, \u043d\u043e \u043c\u043d\u0435 \u0442\u0430\u043a \u043b\u0435\u0433\u0447\u0435 \u043f\u043e\u0442\u043e\u043c \u0447\u0438\u0442\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u043a\u043e\u0434, \u0435\u0441\u043b\u0438 \u0440\u0430\u0437\u0431\u0438\u0442\u044c \u0435\u0433\u043e \u043f\u043e \u0437\u0430\u0434\u0430\u0447\u0430\u043c          public Map&lt;String, Array&lt;String&gt;&gt; getPos(String strLevel) {         try {             Element root = new XmlReader().parse(Gdx.files.internal(&quot;xml\/levels\/&quot; + strLevel + &quot;.xml&quot;)).getChildByName(&quot;positions&quot;);                          Array&lt;Element&gt; xml_pos = root.getChildrenByName(&quot;position&quot;);             for (Element el : xml_pos) {                 Array&lt;String&gt; xy = new Array&lt;String&gt;();                 xy.add(el.getAttribute(&quot;x&quot;));                 xy.add(el.getAttribute(&quot;y&quot;));                 this.starsPos.put(el.getAttribute(&quot;note&quot;), xy);             }                      } catch (IOException e) {             e.printStackTrace();         }         return this.starsPos;     } } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043d\u0435\u043c\u043d\u043e\u0433\u043e. \u041f\u0440\u0430\u0432\u0434\u0430. \u0422\u0435\u043f\u0435\u0440\u044c, \u0440\u0430\u0437 \u0443\u0436 \u044f \u0437\u0430\u0438\u043a\u043d\u0443\u043b\u0441\u044f \u043f\u0440\u043e \u043c\u043d\u043e\u0433\u043e\u044f\u0437\u044b\u043a\u043e\u0432\u0443\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u044f \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u044f\u0441\u043d\u044e, \u043a\u0430\u043a \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442. \u0417\u0430 \u043e\u0441\u043d\u043e\u0432\u0443 \u0431\u0435\u0440\u0435\u043c \u043b\u043e\u043a\u0430\u043b\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f. \u0414\u043b\u044f \u043d\u0430\u0441 \u043e\u043d\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u043c <b>ru<\/b>, \u0434\u043b\u044f \u0430\u043d\u0433\u043b\u0438\u0447\u0430\u043d \u0441 <b>en<\/b> \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435. \u042f \u043f\u0435\u0440\u0435\u0432\u0435\u043b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u0434\u0432\u0430 \u044f\u0437\u044b\u043a\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f\u0437\u044b\u043a\u043e\u0432\u043e\u0439 \u0444\u0430\u0439\u043b \u0431\u0443\u0434\u0435\u0442 \u0442\u0430\u043a\u0438\u043c (\u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u043a\u043e\u0434\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 <i>XMLparseLangs<\/i> \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0441\u0442\u0440\u0430\u043d\u043d\u043e\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u0435):<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0424\u0430\u0439\u043b langs.xml<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"xml\">&lt;?xml version=&quot;1.0&quot;?&gt; &lt;langs&gt;     &lt;lang key=&quot;en&quot;&gt;         &lt;string key=&quot;Play&quot;&gt;Play&lt;\/string&gt;         &lt;string key=&quot;Exit&quot;&gt;Exit&lt;\/string&gt;         &lt;string key=&quot;Again&quot;&gt;Again&lt;\/string&gt;         &lt;string key=&quot;Levels&quot;&gt;Levels&lt;\/string&gt;         &lt;string key=&quot;YouWin&quot;&gt;You win!&lt;\/string&gt;         &lt;string key=&quot;Constellation&quot;&gt;Constellation&lt;\/string&gt;                  &lt;!-- Levels --&gt;         &lt;string key=&quot;level_1&quot;&gt;Canes Venatici&lt;\/string&gt;         &lt;string key=&quot;level_2&quot;&gt;Triangulum&lt;\/string&gt;         &lt;string key=&quot;level_3&quot;&gt;Equuleus&lt;\/string&gt;         &lt;string key=&quot;level_4&quot;&gt;Apus&lt;\/string&gt;         &lt;string key=&quot;level_5&quot;&gt;Sagitta&lt;\/string&gt;         &lt;string key=&quot;level_6&quot;&gt;Musca&lt;\/string&gt;         &lt;string key=&quot;level_7&quot;&gt;Ursa Minor&lt;\/string&gt;         &lt;string key=&quot;level_8&quot;&gt;Orion&lt;\/string&gt;         &lt;string key=&quot;level_9&quot;&gt;Ursa Major&lt;\/string&gt;         &lt;string key=&quot;level_10&quot;&gt;Eridanus&lt;\/string&gt;         &lt;string key=&quot;level_11&quot;&gt;Lacerta&lt;\/string&gt;     &lt;\/lang&gt;     &lt;lang key=&quot;ru&quot;&gt;         &lt;string key=&quot;Play&quot;&gt;\u0418\u0433\u0440\u0430\u0442\u044c&lt;\/string&gt;         &lt;string key=&quot;Exit&quot;&gt;\u0412\u044b\u0445\u043e\u0434&lt;\/string&gt;         &lt;string key=&quot;Again&quot;&gt;\u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c&lt;\/string&gt;         &lt;string key=&quot;Levels&quot;&gt;\u0423\u0440\u043e\u0432\u043d\u0438&lt;\/string&gt;         &lt;string key=&quot;YouWin&quot;&gt;\u0412\u044b \u043f\u043e\u0431\u0435\u0434\u0438\u043b\u0438!&lt;\/string&gt;         &lt;string key=&quot;Constellation&quot;&gt;\u0421\u043e\u0437\u0432\u0435\u0437\u0434\u0438\u0435&lt;\/string&gt;                  &lt;!-- Levels --&gt;         &lt;string key=&quot;level_1&quot;&gt;\u0413\u043e\u043d\u0447\u0438\u0435 \u043f\u0441\u044b&lt;\/string&gt;         &lt;string key=&quot;level_2&quot;&gt;\u0422\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a&lt;\/string&gt;         &lt;string key=&quot;level_3&quot;&gt;\u041c\u0430\u043b\u044b\u0439 \u041a\u043e\u043d\u044c&lt;\/string&gt;         &lt;string key=&quot;level_4&quot;&gt;\u0420\u0430\u0439\u0441\u043a\u0430\u044f \u041f\u0442\u0438\u0446\u0430&lt;\/string&gt;         &lt;string key=&quot;level_5&quot;&gt;\u0421\u0442\u0440\u0435\u043b\u0430&lt;\/string&gt;         &lt;string key=&quot;level_6&quot;&gt;\u041c\u0443\u0445\u0430&lt;\/string&gt;         &lt;string key=&quot;level_7&quot;&gt;\u041c\u0430\u043b\u0430\u044f \u043c\u0435\u0434\u0432\u0435\u0434\u0438\u0446\u0430&lt;\/string&gt;         &lt;string key=&quot;level_8&quot;&gt;\u041e\u0440\u0438\u043e\u043d&lt;\/string&gt;         &lt;string key=&quot;level_9&quot;&gt;\u0411\u043e\u043b\u044c\u0448\u0430\u044f \u043c\u0435\u0434\u0432\u0435\u0434\u0438\u0446\u0430&lt;\/string&gt;         &lt;string key=&quot;level_10&quot;&gt;\u042d\u0440\u0438\u0434\u0430\u043d&lt;\/string&gt;         &lt;string key=&quot;level_11&quot;&gt;\u042f\u0449\u0435\u0440\u0438\u0446\u0430&lt;\/string&gt;     &lt;\/lang&gt; &lt;\/langs&gt; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e, \u043c\u044b \u0431\u0435\u0440\u0435\u043c \u0430\u0442\u0442\u0440\u0438\u0431\u0443\u0442 \u0438 \u043f\u043e \u043d\u0435\u043c\u0443 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c, \u0447\u0442\u043e \u043e\u0442\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0435\u0449\u0435 \u043a\u043e\u0435-\u0447\u0442\u043e. \u0421\u043e\u0437\u0434\u0430\u0442\u044c XML \u0444\u0430\u0439\u043b\u044b \u0437\u0432\u0435\u0437\u0434, \u043d\u043e\u0442, \u0443\u0440\u043e\u0432\u043d\u0435\u0439. \u0421\u0434\u0435\u043b\u0430\u0435\u043c \u044d\u0442\u043e.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0424\u0430\u0439\u043b stars.xml<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"xml\">&lt;?xml version=&quot;1.0&quot;?&gt; &lt;stars&gt;     &lt;star files=&quot;c5&quot; \/&gt;     &lt;star files=&quot;c#5&quot; \/&gt;     &lt;star files=&quot;d5&quot; \/&gt;     &lt;star files=&quot;d#5&quot; \/&gt;     &lt;star files=&quot;e5&quot; \/&gt;     &lt;star files=&quot;f5&quot; \/&gt;     &lt;star files=&quot;f#5&quot; \/&gt;     &lt;star files=&quot;g5&quot; \/&gt;     &lt;star files=&quot;g#5&quot; \/&gt;     &lt;star files=&quot;a5&quot; \/&gt;     &lt;star files=&quot;a#5&quot; \/&gt;     &lt;star files=&quot;b5&quot; \/&gt;          &lt;star files=&quot;c6&quot; \/&gt;     &lt;star files=&quot;c#6&quot; \/&gt;     &lt;star files=&quot;d6&quot; \/&gt;     &lt;star files=&quot;d#6&quot; \/&gt;     &lt;star files=&quot;e6&quot; \/&gt;     &lt;star files=&quot;f6&quot; \/&gt;     &lt;star files=&quot;f#6&quot; \/&gt;     &lt;star files=&quot;g6&quot; \/&gt;     &lt;star files=&quot;g#6&quot; \/&gt;     &lt;star files=&quot;a6&quot; \/&gt;     &lt;star files=&quot;a#6&quot; \/&gt;     &lt;star files=&quot;b6&quot; \/&gt; &lt;\/stars&gt; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0415\u0441\u043b\u0438 \u0431\u0435\u0433\u043b\u043e \u0433\u043b\u044f\u043d\u0443\u0442\u044c \u044d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0441\u043b\u0443\u043a\u0430\u0432\u0438\u043b, \u043a\u043e\u0433\u0434\u0430 \u0441\u043a\u0430\u0437\u0430\u043b, \u0447\u0442\u043e \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043d\u043e\u0442\u044b \u0431\u0443\u0434\u0435\u0442 \u0441\u0432\u043e\u044f \u0437\u0432\u0435\u0437\u0434\u0430. \u042f \u0441\u0434\u0435\u043b\u0430\u043b \u0440\u0430\u0437\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0437\u0432\u0435\u0437\u0434 \u0432 \u0440\u0430\u0437\u043d\u043e\u0439 \u0442\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u0417\u0430\u0447\u0435\u043c? \u0414\u043b\u044f \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0437\u0432\u0443\u0447\u0430\u043d\u0438\u044f, \u0442\u0430\u043a \u043a\u0430\u043a \u0435\u0441\u043b\u0438 \u0432\u0437\u044f\u0442\u044c \u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435 \u0441\u043e\u0437\u0432\u0435\u0437\u0434\u0438\u0435, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0442\u043e \u043e\u043d\u043e \u0441\u043e\u0441\u0442\u043e\u0438\u0442, \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0438\u0437 8-9 \u0437\u0432\u0435\u0437\u0434, \u0430 \u043f\u0438\u0441\u0430\u0442\u044c \u043c\u0435\u043b\u043e\u0434\u0438\u044e \u0434\u043b\u044f 8-9 \u0440\u0430\u0437\u043d\u044b\u0445 \u043d\u043e\u0442 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c-\u0442\u043e \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c, \u0432\u043e\u0442 \u044f \u0438 \u0440\u0435\u0448\u0438\u043b \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u0441\u0435\u0431\u0435 \u0436\u0438\u0437\u043d\u044c, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u0435\u0449\u0435 \u043e\u0434\u043d\u0443 \u043e\u043a\u0442\u0430\u0432\u0443.<br \/>  \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u0444\u0430\u0439\u043b(\u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430) \u0443\u0440\u043e\u0432\u043d\u044f.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0424\u0430\u0439\u043b 1.xml<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"xml\">&lt;?xml version=&quot;1.0&quot;?&gt;  &lt;level&gt;     &lt;notes&gt;         &lt;note delay=&quot;0.02f&quot;&gt;d5&lt;\/note&gt;         &lt;note delay=&quot;0.05f&quot;&gt;a6&lt;\/note&gt;         &lt;note delay=&quot;0.05f&quot;&gt;d6&lt;\/note&gt;         &lt;note delay=&quot;0.05f&quot;&gt;f#6&lt;\/note&gt;                  &lt;note delay=&quot;0.02f&quot;&gt;e5&lt;\/note&gt;         &lt;note delay=&quot;0.05f&quot;&gt;a6&lt;\/note&gt;         &lt;note delay=&quot;0.05f&quot;&gt;c#6&lt;\/note&gt;         &lt;note delay=&quot;0.05f&quot;&gt;e6&lt;\/note&gt;                  &lt;note delay=&quot;0.02f&quot;&gt;d6&lt;\/note&gt;         &lt;note delay=&quot;0.05f&quot;&gt;f#6&lt;\/note&gt;         &lt;note delay=&quot;0.05f&quot;&gt;a6&lt;\/note&gt;         &lt;note delay=&quot;0.05f&quot;&gt;d5&lt;\/note&gt;     &lt;\/notes&gt;     &lt;positions&gt;         &lt;position note=&quot;d5&quot; x=&quot;5&quot; y=&quot;35&quot; \/&gt;         &lt;position note=&quot;a6&quot; x=&quot;20&quot; y=&quot;43&quot; \/&gt;         &lt;position note=&quot;d6&quot; x=&quot;40&quot; y=&quot;50&quot; \/&gt;         &lt;position note=&quot;f#6&quot; x=&quot;55&quot; y=&quot;45&quot; \/&gt;         &lt;position note=&quot;e5&quot; x=&quot;67&quot; y=&quot;37&quot; \/&gt;         &lt;position note=&quot;c#6&quot; x=&quot;77&quot; y=&quot;47&quot; \/&gt;         &lt;position note=&quot;e6&quot; x=&quot;90&quot; y=&quot;50&quot; \/&gt;     &lt;\/positions&gt; &lt;\/level&gt; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e, \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043c\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043d\u043e\u0442 \u0438 \u0438\u0445 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443, \u0430 \u0437\u0430\u0442\u0435\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e \u043a\u0430\u0436\u0434\u043e\u0439 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u043d\u043e\u0442\u044b \u0432 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043e\u043c \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0438. \u041a\u0430\u0436\u0435\u0442\u0441\u044f \u044d\u0442\u043e \u0432\u0441\u0435. \u0415\u0441\u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u0437\u0430\u0431\u044b\u043b, \u0436\u0434\u0443 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432. \u0422\u0430\u043a\u0436\u0435, \u0436\u0434\u0443 \u043a\u0440\u0438\u0442\u0438\u043a\u0438 \u0438 \u0441\u043e\u0432\u0435\u0442\u043e\u0432. \u0415\u0441\u043b\u0438 \u043a\u043e\u043c\u0443-\u043d\u0438\u0431\u0443\u0434\u044c \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u043c\u043e\u0433\u0443 \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f AdMob \u043a \u043d\u0430\u0448\u0435\u0439 \u0438\u0433\u0440\u0435, \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u0430\u043a \u0438 \u043e\u0442\u043a\u0443\u0434\u0430 \u044f \u0431\u0440\u0430\u043b \u0437\u0432\u0443\u043a\u0438 \u0434\u043b\u044f \u0438\u0433\u0440\u044b, \u0438 \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u044f \u0432\u044b\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u043b \u0438\u0433\u0440\u0443 \u0432 Google Play. \u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435!<\/p>\n<p>  <a href=\"https:\/\/github.com\/newca9h\/Song-s-of-the-Space\">\u0424\u0430\u0439\u043b\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0438 \u043f\u0440\u0438\u043c\u0435\u0440 \u0433\u043e\u0442\u043e\u0432\u043e\u0439 \u0438\u0433\u0440\u044b.<\/a>    \t\t\t\t<\/p>\n<div class=\"polling\">\n<form action=\"\/json\/polling\/\" class=\"poll\" method=\"post\">\n<div class=\"poll_title\">\u041d\u0443\u0436\u043d\u043e \u043b\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u043d\u0443 \u0441\u0442\u0430\u0442\u044c\u044e, \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u044f \u0433\u043e\u0432\u043e\u0440\u0438\u043b \u0432 \u043a\u043e\u043d\u0446\u0435 \u043f\u043e\u0441\u0442\u0430?<\/div>\n<p>  \t\t<input type=\"hidden\" name=\"post_id\" value=\"224223\"\/> \t\t<input type=\"hidden\" name=\"polling_question_id\" value=\"11237\"\/>  \t\t<\/p>\n<table class=\"answer\">\n<tr>\n<td class=\"input\"> \t\t\t\t\t<input type=\"radio\" id=\"vv56697\" \t\t\t\t\t\tclass=\"radio js-field-data\" \t\t\t\t\t\tname=\"variant[]\" \t\t\t\t\t\tvalue=\"56697\" \/> \t\t\t\t<\/td>\n<td class=\"label\"> \t\t\t\t\t<label for=\"vv56697\">\u0414\u0430, \u043d\u0443\u0436\u043d\u043e!<\/label> \t\t\t\t<\/td>\n<\/tr>\n<tr>\n<td class=\"input\"> \t\t\t\t\t<input type=\"radio\" id=\"vv56699\" \t\t\t\t\t\tclass=\"radio js-field-data\" \t\t\t\t\t\tname=\"variant[]\" \t\t\t\t\t\tvalue=\"56699\" \/> \t\t\t\t<\/td>\n<td class=\"label\"> \t\t\t\t\t<label for=\"vv56699\">\u041d\u0435\u0442, \u043d\u0435 \u043d\u0443\u0436\u043d\u043e.<\/label> \t\t\t\t<\/td>\n<\/tr>\n<\/table>\n<p class=\"for_users_only_msg\">\u0422\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u043e\u043f\u0440\u043e\u0441\u0435. <a href=\"https:\/\/habrahabr.ru\/auth\/login\/\">\u0412\u043e\u0439\u0434\u0438\u0442\u0435<\/a>, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430.<\/p>\n<p class=\"total\">\u041d\u0438\u043a\u0442\u043e \u0435\u0449\u0451 \u043d\u0435 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043b. \u0412\u043e\u0437\u0434\u0435\u0440\u0436\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u043d\u0435\u0442.<\/p>\n<\/p><\/form>\n<\/p><\/div>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/224223\/\"> http:\/\/habrahabr.ru\/post\/224223\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">     \t\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435! \u041d\u0435 \u043f\u0440\u043e\u0448\u043b\u043e \u0441\u0443\u0442\u043e\u043a \u0441 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/224175\/\">\u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438<\/a> \u0441\u0442\u0430\u0442\u044c\u0438, \u0430 \u044f \u043d\u0435 \u043c\u043e\u0433\u0443 \u0441\u043f\u0430\u0442\u044c, \u0442\u0430\u043a \u043a\u0430\u043a \u0435\u0441\u0442\u044c \u043d\u0435\u0437\u0430\u043a\u043e\u043d\u0447\u0435\u043d\u043d\u043e\u0435 \u0434\u0435\u043b\u043e \u0438 \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u044e. \u041f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-224223","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/224223","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=224223"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/224223\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=224223"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=224223"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=224223"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}