рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ! рд▓реЗрдЦ рдХреЗ
рдкрд╣рд▓реЗ рднрд╛рдЧ рдХреЗ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рдмрд╛рдж рд╕реЗ рдПрдХ рджрд┐рди рднреА рдирд╣реАрдВ рдмреАрддрд╛ рд╣реИ, рдФрд░ рдореИрдВ рд╕реЛ рдирд╣реАрдВ рд╕рдХрддрд╛, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдЕрдзреВрд░рд╛ рд╡реНрдпрд╡рд╕рд╛рдп рд╣реИ рдФрд░ рдореБрдЭреЗ рд▓реЗрдЦ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рдореИрдВ рдлрд┐рд░ рд╕реЗ рдЖрд░рдХреНрд╖рдг рдХрд░рд╛рдКрдВрдЧрд╛ред рдореИрдВ рдЬрд╛рд╡рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдЬрд╛рдирдХрд╛рд░ рдирд╣реАрдВ рд╣реВрдВ рдФрд░ рдЗрд╕рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХрдИ рдХреЗ рд▓рд┐рдП рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдПрдХ рд╕рдкреНрддрд╛рд╣ рд╕реЗ рднреА рдХрдо рд╕рдордп рдореЗрдВ рдЦреЗрд▓ рд▓рд┐рдЦрд╛ рдФрд░ рдХреЛрдб рдХреА рд╕реБрдВрджрд░рддрд╛ рдФрд░ рд╢рд╛рд▓реАрдирддрд╛ рдХреЗ рдмрдЬрд╛рдп рдкрд░рд┐рдгрд╛рдо рдкрд░ рдЕрдзрд┐рдХ рдХрд╛рдо рдХрд┐рдпрд╛ред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдХреЛрдИ рдРрд╕рд╛ рд╡реНрдпрдХреНрддрд┐ рд╣реИ рдЬреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдХреЛрдб рдФрд░ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЕрдЧрд░ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ, рддреЛ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдЕрдЪреНрдЫреЗ рд░реВрдк рдореЗрдВ рдиреЗрддреГрддреНрд╡ рдХрд░реЗрдВ рдФрд░ рдореБрдЭреЗ рдФрд░ рдмрд╛рдХреА рдХреЛ рдмреЗрд╣рддрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдмрдирдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВред рдареАрдХ рд╣реИ, рдкрд░реНрдпрд╛рдкреНрдд рдЧреАрдд, рдЪрд▓реЛ рд╣рдорд╛рд░реЗ "рдХрдЯреНрдЯрд░" рдЬрд╛рд░реА рд░рдЦреЗрдВред
рдПрдХ рдирдпрд╛
рдкреИрдХреЗрдЬ рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕реЗ рдирд╛рдо рджреЗрдВред рд╣рдо рдЗрд╕рдореЗрдВ рдПрдХ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдХреНрд▓рд╛рд╕ рдмрдирд╛рдПрдВрдЧреЗ, рдФрд░ рдЗрд╕рдореЗрдВ рдирд┐рдореНрди рдХреЛрдб рдЬреЛрдбрд╝реЗрдВрдЧреЗ:
BackgroundActor.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("images/sky.jpg"); backgroundSprite = new Sprite(backgroundTexture); backgroundSprite.setSize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); } @Override public void draw(Batch batch, float alpha) { backgroundSprite.draw(batch); } }
рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдПрдХ "рдЕрднрд┐рдиреЗрддрд╛" рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╕реНрдХреНрд░реАрди рдХреЛ рдлрд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ рдФрд░ рд╣рдорд╛рд░реЗ рдЦреЗрд▓ рдХреЛ рдПрдХ рддрд╛рд░реЛрдВ рд╡рд╛рд▓реЗ рдЖрдХрд╛рд╢ рдХреА рддрд░рд╣ рдмрдирд╛рддрд╛ рд╣реИред рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:
рдЦреЗрд▓ рд╣реЛрдо рд╕реНрдХреНрд░реАрди рдЕрдм рдЗрд╕реЗ
MyGame.java рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдЗрд╕реЗ рдмрд╛рд╣рд░ рд╕реЗ рд╕реБрд▓рдн рдмрдирд╛рдПрдВ, рддрд╛рдХрд┐ рдЗрд╕реЗ рд╣рд░ рдЕрдЧрд▓реА рд╕реНрдХреНрд░реАрди рдкрд░ рди рдмрдирд╛рдпрд╛ рдЬрд╛рдПред рдпрд╣ рд╣рдореЗрдВ рдЪрдВрдЪрд▓рддрд╛ рд╕реЗ рдмрдЪрд╛рдПрдЧрд╛ред
рдлрд╝рд╛рдЗрд▓ MyGame.java
рдЕрдЧрд▓рд╛, рд╣рдореЗрдВ рдЗрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдирдИ рд╕реНрдХреНрд░реАрди рдореЗрдВ рджреГрд╢реНрдп рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛:
stage.addActor(game.background);
рдЕрдм,
рдСрдмреНрдЬреЗрдХреНрдЯ рдкреИрдХреЗрдЬ рдореЗрдВ рднреА, рдПрдХ рдиреЛрдЯ рдХреНрд▓рд╛рд╕ рдмрдирд╛рдПрдВред рд╡рд╣ рд╣рдорд╛рд░реЗ рд╕рднреА рдиреЛрдЯреЛрдВ рдХреЛ рдЙрд╕ рдХреНрд░рдо рдореЗрдВ рд╕рдВрдЪрд┐рдд рдХрд░реЗрдЧрд╛ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдлрд╛рдЗрд▓ рдиреЛрдЯ.рдЬрд╛рд╡рд╛ package ru.habrahabr.songs_of_the_space.objects; public class Note { private String note; private float delay; private Star star;
рдЕрдм рдЬрдм рд╣рдордиреЗ рдиреЛрдЯ рдмрдирд╛рдпрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдПрдХ рд╕реНрдЯрд╛рд░ рдмрдирд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рдЕрдВрддрд░рд┐рдХреНрд╖ рджреГрд╢реНрдп рдореЗрдВ рд╣рдорд╛рд░рд╛ рдореБрдЦреНрдп рдЕрднрд┐рдиреЗрддрд╛ рд╣реЛрдЧрд╛ред рд╡рд╣ рдЭрд┐рд▓рдорд┐рд▓рд╛рд╣рдЯ рдХрд░реЗрдЧрд╛ рдФрд░ рднрд╡рд┐рд╖реНрдп рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрд╕рдХреА рдЕрджреНрднреБрдд рдзреБрди рдЧрд╛рдПрдЧрд╛ред
рдЬрд╛рд░реА рд░рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдереЛрдбрд╝рд╛ рд╕рдордЭрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдореЗрдВ рдиреЛрдЯреНрд╕ рдФрд░ рд╕рд┐рддрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╡рд░реНрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИред рдПрдХ рдореЗрд▓реЛрдбреА рдЕрдкрдиреЗ рдиреЛрдЯреНрд╕ рдХреЛ рджреЛрд╣рд░рд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдЯрд╛рд░ рдХреЛ рдПрдХ рд╣реА рдХреЙрдкреА рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬрдм рдореИрдВ рд╕рд┐рд░реНрдл рдЦреЗрд▓ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛, рддреЛ рдореИрдВрдиреЗ рд╣рд░ рдиреЛрдЯ рдХреЛ рд╕реНрдЯрд╛рд░ рдХреЗ рдЕрдВрджрд░ рд░рдЦрд╛ред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдпрд╛ рддреЛ рдорд╛рдзреБрд░реНрдп рдмрд╣реБрдд рд╕рд░рд▓ рдерд╛, рдпрд╛ рдЖрдХрд╛рд╢ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рддрд╛рд░реЗ рдереЗ рдФрд░ рдЖрда рдмрд╛рд░ рдХреЗ рдиреЛрдЯреЛрдВ рдХреЗ рд╕рд╛рде рднреА рд╕реНрддрд░ рдХреЛ рдкрд╛рд░ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдерд╛ред
рдЗрд╕рд▓рд┐рдП, рдПрдХ рд╕реНрдЯрд╛рд░ рдмрдирд╛рдПрдВред
Star.java рдлрд╝рд╛рдЗрд▓
package ru.habrahabr.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 {
рдЕрдм рд╣рдорд╛рд░реЗ рд╕реНрддрд░ рдХреА рдХрдХреНрд╖рд╛ рдмрдирд╛рдПрдБред рд╡рд╣ рд╕рднреА рдЕрднрд┐рдиреЗрддреНрд░рд┐рдпреЛрдВ рдФрд░ рдЕрднрд┐рдиреЗрддрд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдЧрд╛, рд╕рд╛рде рд╣реА рдПрдХ рдзреБрди рдмрдЬрд╛рдПрдЧрд╛ рдФрд░ рдЖрдкрдХреЛ рдЕрдкрдиреА рдЬреАрдд рдкрд░ рдмрдзрд╛рдИ рджреЗрдЧрд╛ред рдореИрдВрдиреЗ рдЗрд╕реЗ
рдСрдмреНрдЬреЗрдХреНрдЯ рдкреИрдХреЗрдЬ рдореЗрдВ рдЬреЛрдбрд╝рд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдкреНрд░рдмрдВрдзрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдмреЗрд╣рддрд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рд╡рд╣рд╛рдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
Level.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<Note> notes = new Array<Note>(); private Array<Star> stars = new Array<Star>(); private Map<String, Array<String>> starsPos = new HashMap<String, Array<String>>(); 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("sounds/win.mp3"));
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИред рдореИрдВрдиреЗ рдпрдерд╛рд╕рдВрднрд╡ рдХреЛрдб рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рд╕рд╡рд╛рд▓реЛрдВ рдХрд╛ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддреА рд╣реИ
рджреЗрд░реА рд╣реИ ред рдореИрдВ рдереЛрдбрд╝рд╛ рд╕рдордЭрд╛рдКрдВрдЧрд╛ред
PlayScreen.java рд╡рд░реНрдЧ рдХреЗ
рд░реЗрдВрдбрд░ () рдкрджреНрдзрддрд┐ рдореЗрдВ
playStars () рд╡рд┐рдзрд┐ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЪреВрдВрдХрд┐ рдЗрд╕реЗ рдереНрд░реЗрдб рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рд░ рдмрд╛рд░ рдЬрдм рд╕рднреА рд╢рд░реНрддреЗрдВ
рдкреВрд░реА рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ, рддреЛ
рд╡рд┐рд▓рдВрдм рдПрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд░рд╛рд╢рд┐ рд╕реЗ рдмрдврд╝ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдиреЛрдЯ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рджреЗрд░реА рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдХреЛрдб рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рджреЗрдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЪрд▓реЛ рдЕрдВрдд рдореЗрдВ рд╣рдорд╛рд░реЗ PlayScreen.java рд╡рд░реНрдЧ рдХреЛ рдЖрдмрд╛рдж рдХрд░реЗрдВред рдЪреВрдВрдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреЛрдб рд╣реИрдВ, рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕реНрдкреЙрдЗрд▓рд░ рдХреЗ рдиреАрдЪреЗ рдЫрд┐рдкрд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рдлрд╝рд╛рдЗрд▓ PlayScreen.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<Star> 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);
рдХреЛрдб рдиреЗ рд╢рд╛рдпрдж рдХреБрдЫ рд╕рд╡рд╛рд▓ рдЙрдард╛рдП рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЗрд╕рдореЗрдВ рдирдП
GamePreferences.java рд╡рд░реНрдЧ рдХреЛ рдиреЛрдЯрд┐рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╡рд░реНрдЧ рд╣рдореЗрдВ рд╕рднреА рдЧреЗрдо рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдПрдВрдбреНрд░реЙрдЗрдб рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рддрдерд╛рдХрдерд┐рдд
"рд╢реЗрдпрд░реНрдбрдкреНрд░реЗрдлреЗрд░реЗрдВрд╕" рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА
рдпрд╣рд╛рдБ ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕рдореЗрдВ рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкрд╛рд░рд┐рдд рд╕реНрддрд░реЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВрдЧреЗред
рд╡реИрд╕реЗ рдХреНрдпрд╛? рдЕрдм рд╣рдо рдЗрд╕реЗ рдмрдирд╛рддреЗ рдФрд░ рднрд░рддреЗ рд╣реИрдВред
GamePreferences.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 = "SONGS_OF_THE_SPACE"; private static final String PREF_LEVEL = "LEVEL_"; 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(); } }
рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИред рдореИрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреА рдирдХрд▓ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдореИрдВрдиреЗ рдиреАрдЪреЗ рдПрдХ рд▓рд┐рдВрдХ рджрд┐рдпрд╛ред рдЕрдм рд╣рдореЗрдВ рдЕрдкрдиреЗ
XMLparse.java рдХреНрд▓рд╛рд╕ рдХреЛ
рдереЛрдбрд╝рд╛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛
рд╣реЛрдЧрд╛ ред рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдЕрднреА рддрдХ рдЕрдкрдиреЗ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рд╕рд┐рддрд╛рд░реЛрдВ рдФрд░ рдиреЛрдЯреНрд╕ рдХреЛ рдирд╣реАрдВ рд╕рд┐рдЦрд╛рдпрд╛ рд╣реИред рдЪрд▓реЛ рдХрд░рддреЗ рд╣реИрдВред
XMLparse.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<Star> stars = new Array<Star>(); private Array<Note> notes = new Array<Note>(); private Map<String, Array<String>> starsPos = new HashMap<String, Array<String>>();
рдмрд╣реБрдд рдХрдо рдмрдЪрд╛ рд╣реИред рд╕рдЪ рддреЛ рдпрд╣ рд╣реИред рдЕрдм, рдЬрдм рд╕реЗ рдореИрдВрдиреЗ рдмрд╣реБрднрд╛рд╖реА рд╕рдорд░реНрдерди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рд╣реИ, рддреЛ рдЖрдЗрдП рдмрдирд╛рддреЗ рд╣реИрдВред рдореИрдВ рдереЛрдбрд╝рд╛ рд╕рдордЭрд╛рдКрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕рд╛ рд╣реЛрдЧрд╛ред рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЖрдзрд╛рд░ рдХреЛ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рд▓рд┐рдП, рдпрд╣ рдкреНрд░рддреАрдХ
рдЖрд░рдпреВ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЕрдВрдЧреНрд░реЗрдЬреА рдХреЗ рд▓рд┐рдП
рдПрди рдХреЗ рд╕рд╛рде
, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдореИрдВрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рджреЛ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рднрд╛рд╖рд╛ рдлрд╝рд╛рдЗрд▓ рдЗрд╕ рддрд░рд╣ рд╣реЛрдЧреА (рдФрд░ рдЗрд╕рд▓рд┐рдП
XMLparseLangs рд╡рд┐рдзрд┐ рдХреЛрдб рдореЗрдВ рдереЛрдбрд╝реА рдЕрдЬреАрдм рд╕реНрдерд┐рддрд┐ рд╣реИ):
Langs.xml рдлрд╝рд╛рдЗрд▓ <?xml version="1.0"?> <langs> <lang key="en"> <string key="Play">Play</string> <string key="Exit">Exit</string> <string key="Again">Again</string> <string key="Levels">Levels</string> <string key="YouWin">You win!</string> <string key="Constellation">Constellation</string> <string key="level_1">Canes Venatici</string> <string key="level_2">Triangulum</string> <string key="level_3">Equuleus</string> <string key="level_4">Apus</string> <string key="level_5">Sagitta</string> <string key="level_6">Musca</string> <string key="level_7">Ursa Minor</string> <string key="level_8">Orion</string> <string key="level_9">Ursa Major</string> <string key="level_10">Eridanus</string> <string key="level_11">Lacerta</string> </lang> <lang key="ru"> <string key="Play"></string> <string key="Exit"></string> <string key="Again"></string> <string key="Levels"></string> <string key="YouWin"> !</string> <string key="Constellation"></string> <string key="level_1"> </string> <string key="level_2"></string> <string key="level_3"> </string> <string key="level_4"> </string> <string key="level_5"></string> <string key="level_6"></string> <string key="level_7"> </string> <string key="level_8"></string> <string key="level_9"> </string> <string key="level_10"></string> <string key="level_11"></string> </lang> </langs>
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдо рд╡рд┐рд╢реЗрд╖рддрд╛ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕ рдкрд░ рд╣рдо рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХреНрдпрд╛ рджреЗрдирд╛ рд╣реИред рдЕрдм рд╣рдореЗрдВ рдХреБрдЫ рдФрд░ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рд╕рд┐рддрд╛рд░реЛрдВ, рдиреЛрдЯреНрд╕, рд╕реНрддрд░реЛрдВ рдХреА XML рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛рдПрдВред рдЪрд▓реЛ рдХрд░рддреЗ рд╣реИрдВред
Stars.xml рдлрд╝рд╛рдЗрд▓ <?xml version="1.0"?> <stars> <star files="c5" /> <star files="c#5" /> <star files="d5" /> <star files="d#5" /> <star files="e5" /> <star files="f5" /> <star files="f#5" /> <star files="g5" /> <star files="g#5" /> <star files="a5" /> <star files="a#5" /> <star files="b5" /> <star files="c6" /> <star files="c#6" /> <star files="d6" /> <star files="d#6" /> <star files="e6" /> <star files="f6" /> <star files="f#6" /> <star files="g6" /> <star files="g#6" /> <star files="a6" /> <star files="a#6" /> <star files="b6" /> </stars>
рдпрджрд┐ рдЖрдк рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд╣ рдереЛрдбрд╝рд╛ рдЪрд╛рд▓рд╛рдХ рдерд╛ рдЬрдм рдЙрд╕рдиреЗ рдХрд╣рд╛ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдЯрд╛рд░ рд╣реЛрдЧрд╛ред рдореИрдВрдиреЗ рд╡рд┐рднрд┐рдиреНрди рдХреБрдВрдЬрд┐рдпреЛрдВ рдореЗрдВ рд╕рд┐рддрд╛рд░реЛрдВ рдХрд╛ рдПрдХ рдЕрд▓рдЧ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд┐рдпрд╛ред рдХреНрдпреЛрдВ? рдзреНрд╡рдирд┐ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЪреВрдВрдХрд┐ рдЖрдк рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рджрд┐рд▓рдЪрд╕реНрдк рддрд╛рд░рд╛рдордВрдбрд▓ рд▓реЗрддреЗ рд╣реИрдВ, рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рдореЗрдВ рдХрдо рд╕реЗ рдХрдо 8-9 рд╕рд┐рддрд╛рд░реЗ рд╣реИрдВ, рдФрд░ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ 8-9 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдиреЛрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд░рд╛рдЧ рдирд╣реАрдВ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдереЛрдбрд╝рд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдПрдХ рдФрд░ рд╕рдкреНрддрдХ рдЬреЛрдбрд╝рдХрд░ рдЕрдкрдиреЗ рдЬреАрд╡рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдПрдВред
рдЕрдм рдореИрдВ рд╕реНрддрд░ рдХреА рдПрдХ рдлрд╝рд╛рдЗрд▓ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП) рджреВрдВрдЧрд╛ред
1.xml рдлрд╝рд╛рдЗрд▓ <?xml version="1.0"?> <level> <notes> <note delay="0.02f">d5</note> <note delay="0.05f">a6</note> <note delay="0.05f">d6</note> <note delay="0.05f">f#6</note> <note delay="0.02f">e5</note> <note delay="0.05f">a6</note> <note delay="0.05f">c#6</note> <note delay="0.05f">e6</note> <note delay="0.02f">d6</note> <note delay="0.05f">f#6</note> <note delay="0.05f">a6</note> <note delay="0.05f">d5</note> </notes> <positions> <position note="d5" x="5" y="35" /> <position note="a6" x="20" y="43" /> <position note="d6" x="40" y="50" /> <position note="f#6" x="55" y="45" /> <position note="e5" x="67" y="37" /> <position note="c#6" x="77" y="47" /> <position note="e6" x="90" y="50" /> </positions> </level>
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкрд╣рд▓реЗ рд╣рдо рдиреЛрдЯреЛрдВ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдФрд░ рдЙрдирдХреА рджреЗрд░реА рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рд╣рдо рдкреНрд░рддрд┐рд╢рдд рд╢рдмреНрджреЛрдВ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЕрджреНрд╡рд┐рддреАрдп рдиреЛрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╡рд╣ рд╕рдм рдорд╛рд▓реВрдо рд╣реЛрддрд╛ рд╣реИред рдЕрдЧрд░ рдореИрдВ рдХреБрдЫ рднреВрд▓ рдЧрдпрд╛, рддреЛ рдореБрдЭреЗ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдЖрд▓реЛрдЪрдирд╛ рдФрд░ рд╕рд▓рд╛рд╣ рдХреЗ рд▓рд┐рдП рддрддреНрдкрд░ рд╣реВрдВред рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ, рддреЛ рдореИрдВ AdMob рдХреЛ рд╣рдорд╛рд░реЗ рдЧреЗрдо рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдореБрдЭреЗ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЧреЗрдо рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдФрд░ рдХрд╣рд╛рдВ рдзреНрд╡рдирд┐рдпрд╛рдВ рдорд┐рд▓реАрдВ, рдФрд░ рдпрд╣ рднреА рдмрд╛рдд рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВрдиреЗ Google Play рдкрд░ рдЧреЗрдо рдХреЛ рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ред рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╛рдЗрд▓реЗрдВ рдФрд░ рдПрдХ рддреИрдпрд╛рд░ рдЦреЗрд▓ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдгредрдЕрджреНрдпрддрдиред рдореИрдВрдиреЗ рдПрдХ рдирдИ рдкреЛрд╕реНрдЯ рдирд╣реАрдВ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдкреВрд░реА рдкреЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕рд╛рдордЧреНрд░реА рдирд╣реАрдВ рдереА, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдпрд╣рд╛рдВ рдХреБрдЫ рд╕реБрдзрд╛рд░ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ред
рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдФрд░ рд╕реБрдзрд╛рд░рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, zig1375
habrayuzer рдиреЗ рд▓рд┐рдЦрд╛ рдХрд┐ AssetManager рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЙрдЪрд┐рдд рдЯрд┐рдкреНрдкрдгреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд╕реНрддрд░ рдЪреБрдирдиреЗ рдХреЗ рдмрд╛рдж, рдЦреЗрд▓ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд▓рдЯрдХрд╛ рд╣реБрдЖ рдерд╛ рдпрд╛ рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рдерд╛ред рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣рд▓ рдХрд┐рдпрд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ,
MyGame.java рд╡рд░реНрдЧ рдореЗрдВ
, AssetManager рдХрд╛ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ
рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕реЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд░реЗрдВред рдлрд┐рд░, рдПрдХ рдирдИ рд╕реНрдХреНрд░реАрди рдмрдирд╛рдПрдВ, рдореИрдВрдиреЗ рдЗрд╕реЗ рд▓реЛрдбрд░рд╕реНрдХреНрд░реАрди рдирд╛рдо рджрд┐рдпрд╛ред рдЬрд╛рд╡рд╛ рдФрд░ рдЗрд╕рдореЗрдВ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦреЗрдВ:
рдлрд╝рд╛рдЗрд▓ рд▓реЛрдбрд░рд╕реНрдХреНрд░реАрдиред Java package ru.habrahabr.songs_of_the_space.managers; import ru.habrahabr.songs_of_the_space.MyGame; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Screen; import com.badlogic.gdx.audio.Sound; import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.g2d.TextureAtlas; import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.scenes.scene2d.ui.Label; import com.badlogic.gdx.scenes.scene2d.ui.Label.LabelStyle; import com.badlogic.gdx.scenes.scene2d.ui.Table; import com.badlogic.gdx.utils.viewport.ScreenViewport; public class LoaderScreen implements Screen { private MyGame game; private Stage stage; private Table table; private LabelStyle labelStyle; private Label label; public LoaderScreen(MyGame gam) { game = gam;
рдЕрдм,
MyGame.java рд╡рд░реНрдЧ рдореЗрдВ,
рд╣рдо рдХреЗрд╡рд▓
MainMenuScreen.java рд╕реНрдХреНрд░реАрди рдХреЗ рдмрдЬрд╛рдп рдЗрд╕ рд╕реНрдХреНрд░реАрди рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдкреНрд░рд▓реЗрдЦрди рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдФрд░ рдЬрд╣рд╛рдБ рднреА рд╣рдо рдлрд╝рд╛рдЗрд▓реЛрдВ рддрдХ рдкрд╣реБрдБрдЪрддреЗ рд╣реИрдВ, рдЙрд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
game.manager.get("some/file.png", TextureAtlas.class);
рдЕрдм рдЬрдм рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИ, рдЦреЗрд▓ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рд╕реНрдХреНрд░реАрди рджреЗрдЦреЗрдВрдЧреЗ:
рдмреВрдЯ рд╕реНрдХреНрд░реАрди рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдиреАрдореЗрд╢рди рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХреЗ рдХрд┐ рдЧреЗрдо рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдлреНрд░реАрдЬрд┐рдВрдЧ рдирд╣реАрдВ рд╣реИред
рдЕрдЧрд▓рд╛ред рдЕрдм 1nt3g3r
habrayuzer рд╕реЗ рдПрдХ рдЯрд┐рдкреНрдкрдгреАред рдЙрдиреНрд╣реЛрдВрдиреЗ рд▓рд┐рдЦрд╛ рдХрд┐ рд╕рднреА рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рдПрдХ рдлрд╛рдЗрд▓ рдореЗрдВ рдкреИрдХ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рдореИрдВрдиреЗ рдмрдЯрди рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рддрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд░рдирд╛ рднреВрд▓ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рд╡реНрдпрд░реНрдеред рдЖрдк libGDX рдХреЗ рд▓рд┐рдП
рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдкреИрдХреЗрдЬрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдХреЗрд╡рд▓ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рдХреБрдЫ рдлрд╛рдпрджреЗ рдмрддрд╛рдКрдВрдЧрд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕рднреА рддрд╛рд░реЛрдВ рдХреЛ рдкреИрдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдХрд╛рд░ рдореЗрдВ 300 рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рдХреА рдХрдореА рдЖрдИ, рдЬреЛ рдХрд╛рдлреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рджреВрд╕рд░реЗ, рдореИрдВрдиреЗ рдПрдХ рдПрдЯрд▓рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдФрд░ рдЗрд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛, рдЬреЛ рдХрд┐ рдореЗрд░реА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдкреНрд░рджрд░реНрд╢рди рдкрд░, рдмреЗрд╣рддрд░ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдкреНрд░рднрд╛рд╡ рдерд╛ред ? . libGDX - :
java -cp gdx.jar:extensions/gdx-tools/gdx-tools.jar com.badlogic.gdx.tools.texturepacker.TexturePacker inputDir [outputDir] [packFileName]
, region :
starsAtlas = manager.get("images/stars/stars.pack", TextureAtlas.class);
,
sperson , libGDX json :
Skin.get(String, Class<?>);
,
1nt3g3r , xml, json. , , xml . json
.
, AdMob. ,
, ┬л┬╗ . . , 16 !
, Google Play. . , , , - , , . , , , Google Play. - , . , . , .
.
, .
FL Studio . , .
Sytrus , ,
. ,
Audacity , - , , .
FreeSound . , , , .
, . ? . - , . , .