рд╡рд┐рдЪрд╛рд░
- рдЦреЗрд▓ рд╕реНрдерд╛рди - рдлреНрд░реЗрдо рджреНрд╡рд╛рд░рд╛ рд╕реАрдорд┐рдд рдЪреЗрдХрд░ рдХреНрд╖реЗрддреНрд░
- рдореМрдЬреВрджрд╛ рд╕реЗрд▓ рдкреНрд░рдХрд╛рд░:
- рдЦрд╛рд▓реА рд╕реЗрд▓ - рд╕рдлреЗрдж
- рджреАрд╡рд╛рд░ - рдХрд╛рд▓реА
- рдЬрд╛рдирд╡рд░ - рд▓рд╛рд▓
- рдкрдЧрдбрдгреНрдбреА рднреВрд░реА рд╣реИ
- рдШрд░ рд╣рд░рд╛ рд╣реИ
- рдЬрд╛рдирд╡рд░ рдХреА рдЧрддрд┐ рдПрдХ рдЧреИрд░-рд▓реБрдкреНрдд рд╣реЛрддреА рд░рд╛рд╣ рдЫреЛрдбрд╝рддреА рд╣реИ
- рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░, рдПрдХ рднреВрд▓рднреБрд▓реИрдпрд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ
- рдЬрд╛рдирд╡рд░ рдкрдбрд╝реЛрд╕реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдЬрд╛рдирддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЪрд▓рддреЗ рд╕рдордп рдПрдХ рдирдХреНрд╢рд╛ рдмрдирд╛рддрд╛ рд╣реИ
- рдЪрд▓рддреЗ рд╕рдордп, рдЬрд╛рдирд╡рд░ рдЙрди рддрд╛рдХрддреЛрдВ рдХрд╛ рд╕реЗрд╡рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдШрд░ (+5) рдпрд╛ рдХрд┐рд╕реА рд╕реЗрд▓ (+1) рдкрд░ рдмрд╣рд╛рд▓ рд╣реЛрддреА рд╣реИрдВ
- рдПрдХ рдЯрдХреНрдХрд░ рдореЗрдВ, рдЬрд╛рдирд╡рд░реЛрдВ рдХреЛ рдЭреБрдВрдбреЛрдВ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ (рдШрд░реЛрдВ рдХреЛ рдкрдбрд╝реЛрд╕реА рдмрд┐рдВрджреБрдУрдВ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рдЕрдЧрд░ рдХрдИ рдЬрд╛рдирд╡рд░ рдПрдХ рд╕рд╛рде рдШрд░ рдореЗрдВ рдЖрд░рд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЙрдирдХреЗ рдХрд╛рд░реНрдб рд╕рдВрдпреБрдХреНрдд рд╣реИрдВ
- (рд▓рд╛рдЧреВ рдирд╣реАрдВ) рд╡рд┐рднрд┐рдиреНрди "рдХреБрд▓реЛрдВ" рдХреЛ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдпрд╛ рд▓рдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП
- (рд▓рд╛рдЧреВ рдирд╣реАрдВ) рдкреНрд░рдЬрдирди рдХреЗ рджреМрд░рд╛рди рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдорд┐рд╢реНрд░рд┐рдд рд╡рд┐рднрд┐рдиреНрди рдЬрд╛рдирд╡рд░реЛрдВ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд▓рд┐рдП рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо (+ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди), рдПрдХ рдФрд░ рдЕрдзрд┐рдХ рдЖрд╢рд╛рдЬрдирдХ рдкреНрд░рдЬрд╛рддрд┐ рдпреБрджреНрдзреЛрдВ рдореЗрдВ рдЬреАрд╡рд┐рдд рд░рд╣реЗрдЧреА
Libgdx рдХреНрдпреЛрдВ?
рдореИрдВрдиреЗ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдХрд░рдгреЛрдВ рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рдХрд┐рдпрд╛, ubuntu рдкрд░ рдШрд░реЗрд▓реВ рдХрдВрдкреНрдпреВрдЯрд░ рдФрд░ win8 рдкрд░ рдЯреИрдмрд▓реЗрдЯ, java + рдЧреНрд░рд╣рдг рдмрдВрдбрд▓ рдиреЗ рдореБрдЭреЗ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред Libgdx рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрдорд░реЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛, рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде-рд╕рд╛рде Android рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ
рдПрдХ рдЦреЗрд▓ рдХреА рдХрдЯрд╛рдИ рдЬрд┐рд╕рдореЗрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
- рдЦреЗрд▓ рдХрд╛ рдореИрджрд╛рди
- рднреВрд▓рднреБрд▓реИрдпрд╛ рдкреАрдврд╝реА
- рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдПрдХ рдЬрд╛рдирд╡рд░ рдмрдирд╛рдирд╛
- рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдПрдХ рдкреВрд░рд╛ рдирдХреНрд╢рд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд╖реЗрддреНрд░ рдореЗрдВ, рдмрд╛рдзрд╛рдУрдВ рд╕реЗ рдмрдЪрдиреЗ рд╡рд╛рд▓реЗ рдЬреАрд╡реЛрдВ рдХреЛ рд▓реЗ рдЬрд╛рдирд╛ред
рдкрд░рд┐рдгрд╛рдо:
рд╢реБрд░реБрдЖрдд
рдЧреНрд░рд╣рдг рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдмрдирд╛рдиреЗ рдФрд░ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрд╡рд╢реНрдпрдХ рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝реЗрдВ (libgdx рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ)
SpriteBatch batch;
рдмрдирд╛рдиреЗ () рд╡рд┐рдзрд┐ рдореЗрдВ, рдЙрдиреНрд╣реЗрдВ рдЖрд░рдВрдн рдХрд░реЗрдВ:
batch = new SpriteBatch(); batch.disableBlending(); camera = new OrthographicCamera(FIELD_SIZE, FIELD_SIZE);
рдЖрд╡рд╢реНрдпрдХ рд╕реНрдерд┐рд░рд╛рдВрдХ рдЬреЛрдбрд╝реЗрдВ:
public static final int FIELD_SIZE = 51;
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдореВрд░реНрдд рд╡рд░реНрдЧ рд╕реЗрд▓ рдЙрдкрдпреЛрдЧреА рд╣реИ, рдЬреЛ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдЧрд╛ред
public abstract class Cell { public Color color; Sprite sprite; public Cell(Texture texture, Color color){ this.color = color; sprite = new Sprite(texture); sprite.setColor(color); sprite.setSize(1, 1); } public abstract void update(Cell[][] map, int x, int y, Texture texture); public void setColor(Color color){ this.color = color; sprite.setColor(color); } public void draw(SpriteBatch batch,int x, int y){ sprite.setPosition(x-Main.FIELD_SIZE/2-sprite.getWidth()/2, y-Main.FIELD_SIZE/2-sprite.getHeight()/2); sprite.draw(batch); } }
рддреБрд░рдВрдд рдЗрд╕рдХреЗ рджреЛ рд╡рд╛рд░рд┐рд╕ рджреАрд╡рд╛рд░ рдФрд░ рдЦрд╛рд▓реА рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
public class Wall extends Cell { public Wall(Texture texture) { super(texture, new Color(0f, 0f, 0f, 1)); } @Override public void update(Cell[][] map, int x, int y, Texture texture) { } } public class Empty extends Cell { public Empty(Texture texture) { super(texture, new Color(1, 1, 1, 1)); } @Override public void update(Cell[][] map, int x, int y, Texture texture) { } }
рдЕрдм рдЖрдкрдХреЛ рдПрдХ рднреВрд▓рднреБрд▓реИрдпрд╛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ
рдпрд╣рд╛рдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛
рд╣реИ ред рдореИрдВрдиреЗ рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рдПрдХ рд╕рд┐рдВрдЧрд▓ рдЧреЗрдЯрдореЗрдЬрд╝реЗрдиреЗрдЯрд░ рдХреНрд▓рд╛рд╕ рдореЗрдВ рд╕рд┐рдВрдЧрд▓ рдЧреЗрдЯрдореИрдЬрд╝ (рдЗрдВрдЯ рд╕рд╛рдЗрдЬрд╝) рд╡рд┐рдзрд┐ рд╕реЗ рдЪреБрдирд╛ рд╣реИ рдЬреЛ рджреЛ-рдЖрдпрд╛рдореА рд╕рд░рдгреА рд╢реВрдиреНрдп рдФрд░ рд▓реЛрдЧреЛрдВ рдХреЛ рджреЗрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ 0 рдПрдХ рдЦрд╛рд▓реА рд╕реЗрд▓ рд╣реИ, 1 рдПрдХ рджреАрд╡рд╛рд░ рд╣реИред
рдЦреЗрд▓ рдореИрджрд╛рди рдХреЛ рдПрдХ рд╕рд░рд▓ рджреЛ-рдЖрдпрд╛рдореА рд╕рд░рдгреА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
Cell[][] map;
рдлрд╝реАрд▓реНрдб рдмрдирд╛рдирд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
map = new Cell[FIELD_SIZE][FIELD_SIZE]; texture = new Texture(Gdx.files.internal("tile.png"));
рдЕрдм рдХрд╛рд░реНрдпрдХреНрд░рдо рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рд╣рд░ рдмрд╛рд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рднреВрд▓рднреБрд▓реИрдпрд╛ рд╣реИред рдЖрдк рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рд╕рд╛рде рдЪрд╛рд░реЛрдВ рдУрд░ рдЦреЗрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдВрдпреЛрдЬрди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рд╛рдВ, рдЗрд╕ рд╕реНрдХреНрд░реАрди рдЯрд╛рдЗрд▓ рдкрд░ред рдкреАрдПрдирдЬреА рд╕рд┐рд░реНрдл рдПрдХ рд╕рдлреЗрдж рд╡рд░реНрдЧ рд╣реИред
рдЬрд╛рдирд╡рд░
рдпрд╣ рджреБрдирд┐рдпрд╛ рдХреЛ рдЬреАрд╡рди рд╕реЗ рднрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред
рдПрдХ рд╕реЗрд▓ рд╡рдВрд╢рдЬ рдмрдирд╛рдПрдБ:
public class Unit extends Cell { Cell[][] my_map = new Cell[3][3];
рдореИрдВ рдкреЛрд╕реНрдЯ рдХреЛ рдХреЛрдб рдХреЗ рд╕рд╛рде рд▓реЛрдб рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдкреВрд░реА рдЕрдкрдбреЗрдЯ рд╡рд┐рдзрд┐ рдирд╣реАрдВ рджреАред
рдХрд╛рдо рдХрд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╕рд░рд▓ рд╣реИ: рд╣рдо рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдХрддрд╛рд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ, рдпрджрд┐ рдпрд╣ рдЦрд╛рд▓реА рдирд╣реАрдВ рд╣реИ, рддреЛ рд╕реНрдкрд░реНрд╢ рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рдХрдо рдХрд░реЗрдВ, рдпрджрд┐ рдпрд╣ рдЦрд╛рд▓реА рд╣реИ, рддреЛ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдмрдврд╝рд╛рдПрдВ рдФрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░реЗрдВ рдФрд░ рдирдХреНрд╢реЗ рдкрд░ рдкрдбрд╝реЛрд╕ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред рдпрджрд┐ рдХреЛрдИ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рддреЛ рд╣рдо рдПрдХ рдирдпрд╛ рдорд╛рд░реНрдЧ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрд╕ рдкрд░ рдФрд░ рдмрд╛рдж рдореЗрдВ, рдФрд░ рдЕрдм рд╣рдо рдЪрд░рд┐рддреНрд░ рдХреЗ рдХрджрдо рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред
рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рджрд┐рд╢рд╛ рдореЗрдВ рдПрдХ рдХрджрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╡рд┐рдзрд┐ рдмрдирд╛рдПрдВ:
private int goRight(Cell[][] map, int x, int y, Texture texture) {...}
рдПрдХ "рдЪрд░рдг" рдореЗрдВ рдХрдИ рдХреНрд░рд┐рдпрд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреАред
- рдЬрд╛рдБрдЪ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдорд╛рдирдЪрд┐рддреНрд░ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
- рдирдХреНрд╢рд╛ рд╡рд┐рд╕реНрддрд╛рд░ (рдПрдХ рдирдпрд╛ рдмрдврд╝реЗ рд╣реБрдП рдПрд░реЗ рдХреЛ рдмрдирд╛рдирд╛ рдФрд░ рдкреБрд░рд╛рдиреЗ рдореИрдк рдХреЛ рдЙрд╕рдореЗрдВ рдХреЙрдкреА рдХрд░рдирд╛)
- рдПрдХ рдирдП рд╕реЗрд▓ рдореЗрдВ рдЬрд╛рдПрдВ
- MapX, mapY рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд▓рд┐рдЦрдирд╛
рдорд╛рд░реНрдЧ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛
рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рдПрдХ рддрд░рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╣реИ рдЬреЛ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЦрд╛рд▓реА рд╕реЗрд▓ рдореЗрдВ рдорд╛рд░реНрдЧ рдмрдирд╛рддрд╛ рд╣реИ
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рд╕реНрдерд┐рд░ рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ WavePath рд╡рд░реНрдЧ рдЬреЛрдбрд╝рд╛:
public static Vector<Action> getPath(Cell[][] my_map, int x, int y, int nx,int ny){...}
рдпрд╣ рд╡рд┐рдзрд┐ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдЪрдпрдирд┐рдд рдмрд┐рдВрджреБ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд░рдгреЛрдВ рдХрд╛ рдХреНрд░рдо рджреЗрддреА рд╣реИред
рдЕрдВрддрд┐рдо рд╕реНрдкрд░реНрд╢
рдЕрдм рдпрд╣ рдХреЗрд╡рд▓ рд╕реНрдХреНрд░реАрди рдкрд░ рдпрд╣ рд╕рдм рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ рдФрд░, рдорд╛рдирдЪрд┐рддреНрд░ рд╕рд░рдгреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЫрдВрдЯрдиреА рдХрд░рдХреЗ, рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИ
@Override public void render() { this.update();
рдирд┐рд╖реНрдХрд░реНрд╖
рдореИрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдорд╛рдлреА рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдФрд░ рд╕рд╛рдордЧреНрд░реА рдХреА рдкреВрд░реА рдкреНрд░рд╕реНрддреБрддрд┐ рдирд╣реАрдВред рдЧреАрдереВрдм рдкрд░ рд╕реВрддреНрд░ред
рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ, рддреЛ рдореИрдВ рдПрдХ рдЕрдЧрд▓реА рдХрдбрд╝реА рд▓рд┐рдЦреВрдВрдЧрд╛ред