рдпрд╣рд╛рдВ рд▓реЛрдЧреЛрдВ рдиреЗ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдЧреЗрдо рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдФрд░ рдПрдВрдбреЗрдВрдЧреА рдореЗрдВ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ (рдЬреЛ рдирд╣реАрдВ рдЬрд╛рдирддрд╛, рдпрд╣ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдбреЗрд╕реНрдХрдЯреЙрдк рд╣реИред 2 рдбреА рдЗрдВрдЬрди) рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд╕рд╛рде: рдЗрдВрдЯрд░рдХрдиреЗрдХреНрдЯреЗрдб рд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ рдЬреЛ рдкрд░рд┐рджреГрд╢реНрдп рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ (рдХреИрд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ, рдЖрдк рдпрд╣рд╛рдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ -
gameprogrammer.com/fractal.html )ред рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджреЗрдЦрд╛ рдЧрдпрд╛:

рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдПрдХ "рдкреБрд▓" рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд╣рдореЗрдВ рдПрдХ рд╕рддрд╣ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рдмрдирд╛рд╡рдЯ рдХреЗ рд╕рд╛рде, рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ, рддрд╛рдХрд┐ рдпрд╣ рд╣рдорд╛рд░реЗ рдЬреИрд╕рд╛ рд╣реЛ ...

рдПрдВрдбрдЧреНрд╡рд┐рди рдЦреЛрджрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдпрд╣ рдмрдирд╛рд╡рдЯ рдХреЗ рд╕рд╛рде рдирд┐рдХрд▓рд╛ рдХрд┐ рд╡рд╣ рдХреЗрд╡рд▓ рджреЛ рддреНрд░рд┐рдХреЛрдгреЛрдВ рдХреЗ рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╣рдореЗрдВ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╕реВрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рдкрд░рд┐рджреГрд╢реНрдп рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдпреВрд╡реА 1: 1 рдХреЗ рдЕрдиреБрдкрд╛рдд рд╣рдореЗрдВ рдЪреИрдирд▓ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдпрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рддрд╣ рдПрдХ рдЧреИрд░-рдЙрддреНрддрд▓ рдкреЙрд▓реАрд╣реЗрдбреНрд░реЙрди рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдореЗрдВ рдЕрдкрдиреА рдмрд╛рдЗрдХ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ googling рдиреЗ рдореБрдЦреНрдп andengine рд╢рд╛рдЦрд╛ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рджрд┐рдПред рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рдЙрд╕рдХреЗ рдкрд╛рд╕ рдкрд░реНрдпрд╛рдкреНрдд рд╡рд░реНрдЧ рдЗрдВрдЯрд░рдлреЗрд╕ рд╣реИ рдФрд░ рд╕рдм рдХреБрдЫ рддрд╛рд░реНрдХрд┐рдХ рд╣реИ, рдЖрдкрдХреЛ рдмрд╕ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдореЗрдВ рддреНрд░рд┐рдХреЛрдг рдФрд░ рдЙрдирдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рдпреВрд╡реА рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд▓рд┐рдП рд╢реАрд░реНрд╖ рдмрдлрд░ рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ рдЕрдкрдиреЗ рд╡рд░реНрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореБрдЭреЗ рддреБрд░рдВрдд рдпрд╣ рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдореИрдВ рдЗрд╕ рдмрд╛рдд рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдУрд╡рд░рд▓реЛрдб рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рдХреБрдЫ рдЪреАрдЬреЗрдВ рдХреНрдпреЛрдВ рдХреА рдЬрд╛рддреА рд╣реИрдВред рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ, andengine рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмреБрдирд╛ рд╣реБрдЖ рдЬрдВрдЧрд▓ рд╣реИ рдФрд░ рдореИрдВрдиреЗ рд╕рд┐рд░реНрдл рдЙрди рдЪреАрдЬреЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рд╣реИ рдЬрд┐рдирдореЗрдВ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреВрд░реЗ рдЗрдВрдЬрди рдЗрдВрдЬрди рдХреЛ рдЫрд╛рдВрдЯрдиреЗ рдореЗрдВ 10 рдРрд╕реЗ рд▓реЗрдЦ рдФрд░ рдЬреАрд╡рди рдХреЗ рдЖрдзреЗ рд╕рд╛рд▓ рд▓рдЧреЗрдВрдЧреЗред
рдЖрдЗрдП рдЬрд╛рдиреЗ ...
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдЗрд╕ рдмрд╛рдд рд╕реЗ рд╕рд╣рдордд рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╕реВрдЪреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рддрд╣ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реА рд╕рднреА рд▓рд╛рдЗрдиреЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЙрд╕реА "рдкреБрд▓" рдХреЛ рдкрд╣рд▓реА рд╕реНрдХреНрд░реАрди рдкрд░ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╣рдо рдЙрд╕ рд╡рд░реНрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдорд╛рд░реА рд╕рддрд╣ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░реЗрдЧрд╛:
private abstract class GroundShape extends Shape {
рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рд╢реАрд░реНрд╖ рдХреЗ рд▓рд┐рдП рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ рдЬреЛ рдЕрдВрддрд░рд┐рдХреНрд╖ рдФрд░ рдпреВрд╡реА рдореЗрдВ рдЕрдкрдиреЗ рджреЛ-рдЖрдпрд╛рдореА рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред
protected class Vertex { float x, y; float u, v; }; protected class MorphVertexBuffer extends VertexBuffer { public MorphVertexBuffer(int capacity) {
[vertexes.length * protected class Vertex { float x, y; float u, v; }; protected class MorphVertexBuffer extends VertexBuffer { public MorphVertexBuffer(int capacity) {
рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдЖрдВрддрд░рд┐рдХ рд╡рд░реНрдЧ рдХрд┐ рдХреЛрдиреЗ рдХрд┐ рдЗрдВрдЬрди рдлрд╝реАрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдмрдлрд░ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред рд╣рдо рдорд╛рдирдХ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореЗрдВ рд░рд╣рдиреЗ рдФрд░ рдЕрджреНрдпрддрди () рд╡рд┐рдзрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдЯреЗрдХреНрд╕рдмрдлрд╝рд░ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╡рд░реНрдЯреЗрдХреНрд╕ рдмрдлрд░ рдХреЛ рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рдЕрдЧрд▓рд╛ рдХрджрдо рдПрдХ рдкреНрд░рдХрд╛рд░ рдмрдирд╛рдирд╛ рд╣реИ рдЬреЛ рдпреВрд╡реА рд╕рдордиреНрд╡рдп рдбреЗрдЯрд╛ рдФрд░ рдПрдХ рдмрдирд╛рд╡рдЯ рдорд╛рдирдЪрд┐рддреНрд░рдг рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рдмрдлрд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред
protected class MorphTexture extends BufferObject {
; protected class MorphTexture extends BufferObject {
[vertexes.length * protected class MorphTexture extends BufferObject {
рдлрд┐рд░ рд╣рдордиреЗ рдлрд┐рд░ рд╕реЗ рдПрдХ рдмрдлрд░ рдХрд╛ рдЧрдарди рдХрд┐рдпрд╛ рдЬрд┐рд╕реЗ рд╣рдо рдЗрдВрдЬрди рдХреЛ рдЦрд┐рд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдмрдирд╛рд╡рдЯ рдХреЛ "рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ" рдФрд░ рдпреВрд╡реА рдХреЗ рдХреЛрдиреЛрдВ рдХреЗ рдкреЙрдЗрдВрдЯрд░ рдмрдлрд░ рдХреЛ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо ApplyUV () рдореЗрдВ рдЧрдард┐рдд рдХрд░рддреЗ рд╣реИрдВред
public void onApply(final GL10 pGL) { this.mTexture.bind(pGL);
рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╡рд░реНрдгрд┐рдд рд╢реАрд░реНрд╖ рдФрд░ рдпреВрд╡реА рд╕рдордиреНрд╡рдп рдмрдлрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
MorphVertexBuffer m_Buffer; MorphTexture m_TextureRegion; int vertexesLimit;
рдореИрдВ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХрдХреНрд╖рд╛рдПрдВ рдЧреНрд░рд╛рдЙрдВрдбрд╢реЗрдк рдХреА рдЖрдВрддрд░рд┐рдХ рдХрдХреНрд╖рд╛рдПрдВ рд╣реИрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдо рдПрдХ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рд╡рд┐рд╡рд░рдг рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рддреБрдЪреНрдЫ рд╣реИ рдФрд░ рд╣рдо рдХреЗрд╡рд▓ рдЗрд╕рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕реЗ рдХрд┐рд╕ рд╕реНрдерд╛рди рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЬреЛ рдмрдирд╛рд╡рдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
public GroundShape(BitmapTextureAtlas texture) { super(0, 0); m_Texture = texture; }
рдЕрдЧрд▓рд╛, рд╣рдо рдЖрд░рдВрднреАрдХрд░рдг рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╢реАрд░реНрд╖ рдХреНрд░рдо рдмрдлрд╝рд░реНрд╕ рдФрд░ рдпреВрд╡реА рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЛ рдЖрд░рдореНрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рдВрд╢ рдореЗрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
protected void Init() { Vertex[] vertexes = buildVertexBuffer();
рдХреНрдпреЛрдВрдХрд┐ рдЧреНрд░рд╛рдЙрдВрдбрд╢реИрдк - рдЕрдореВрд░реНрдд, рд╣рдо рд╡рдВрд╢рдЬреЛрдВ рдореЗрдВ рдмрд┐рд▓реНрдбрд╡реЗрд░рдЯреЗрдХреНрд╕рдмрдлрд╝рд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдУрд╡рд░рд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рд╣рдореЗрдВ рд╡рд░реНрдЯрд┐рд╕ рдХреА рд╕реВрдЪреА (рдпреВрд╡реА рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд╕рд╛рде) рдмрдирд╛рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣рд╛рдБ рд╡рд╣ рд╣реИ
protected abstract Vertex[] buildVertexBuffer();
рдЕрдЧрд▓рд╛ рдХрджрдо рдпрд╣ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреНрд░рд╛рдЙрдВрдбрд╢реИрдк рддрд░реАрдХреЛрдВ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдХреЛ рдЕрдзрд┐рднрд╛рд░ рджреЗрдирд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реА рд╕рддрд╣ рдкрд░ рдХреНрдпрд╛ рдФрд░ рдХреИрд╕реЗ рдкреЗрдВрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПред
@Override protected void doDraw(final GL10 pGL, final Camera pCamera) {
, рдЕрдВрддрд┐рдо рдХреИрдорд░рд╛ pCamera) @Override protected void doDraw(final GL10 pGL, final Camera pCamera) {
рдХреИрдорд░рд╛ ARG1) @Override protected void doDraw(final GL10 pGL, final Camera pCamera) {
рдЕрдЧрд░ рд╣рдо onApply рдХреЙрд▓ рдХрд░рдХреЗ doRaw рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ UV рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рдХреЛрдиреЗ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рддреНрд░рд┐рдХреЛрдгреЛрдВ рдХреЗ рдХреЛрдиреЗ рдХреЛ рд╕реНрд╡рдпрдВ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╕ getVertexBuffer рдХреЛ рдЕрдзрд┐рднрд╛рд░рд┐рдд рдХрд░реЗрдВ рдФрд░ рд╢реАрд░реНрд╖ рдмрдлрд░ рдХреЛ рд▓реМрдЯрд╛рдПрдВред
@Override protected VertexBuffer getVertexBuffer() { return m_Buffer; }
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрддрд┐рднрд╛рд░рд┐рдд рд╣реИрдВ рдФрд░ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХреЛрдИ рдЕрд░реНрде рдирд╣реАрдВ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡реЗ рд╡рд┐рд░рд╛рд╕рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдПрдХ рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВред
@Override public boolean collidesWith(IShape arg0) { return false; } @Override public float getBaseHeight() { return 0; } @Override public float getBaseWidth() { return 0; } @Override public float getHeight() { return 0; } @Override public float getWidth() { return 0; } @Override public boolean contains(float arg0, float arg1) { return false; } @Override protected boolean isCulled(Camera arg0) { return false; } @Override protected void onUpdateVertexBuffer() { } }
рдареАрдХ рд╣реИ, рд╣рдордиреЗ рдПрдХ рд╡рд░реНрдЧ рдХреЛ рд╕реНрдХреЗрдЪ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдПрдВрдбрдЧреНрд╡рд┐рди рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рддреНрд░рд┐рдХреЛрдг рд╕реЗ рдорд┐рд▓рдХрд░ рдХрд┐рд╕реА рднреА "рдореЙрдбрд▓" рдХреЛ рдХреИрд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдПрдХ рдмрдирд╛рд╡рдЯ рд╣реЛред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдПрдХ 2D рдЗрдВрдЬрди рд╣реИ, рдпрд╣ рдЕрднреА рднреА OpenGL рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдмрд╕ рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рдХреЛ рджреЛ рддреНрд░рд┐рдХреЛрдгреЛрдВ рдкрд░ рдЦреАрдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╡реИрд╕реЗ, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ OGL рдореЗрдВ Android рдХреЗ рддрд╣рдд,
GL_POLYGONS рдирд╣реАрдВ рд╣реИрдВ, рдХреЗрд╡рд▓
GL_TRIANGSES рд╣реИрдВ ред рдЬрд┐рдирдореЗрдВ рд╕реЗ рд╕рдмрд╕реЗ рддреЗрдЬрд╝
GL_TRIANGLE_STRIP рд╣реИ , рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╣рд╛рдБ рдкрдврд╝реЗрдВ -
en.wikipedia.org/wiki/Triangle_strip рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЙрдиреНрд╣реЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЕрдиреБрдХреНрд░рдо рдФрд░ рдкрд░реЗрд╢рд╛рдирд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ, рдЗрд╕рд▓рд┐рдП рд╣рдо
GL_TRIANGLES (рдмрд╛рдж рдХреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ, рдкреНрд░рджрд░реНрд╢рди рдХреА рд╡реГрджреНрдзрд┐ рдиреНрдпреВрдирддрдо рдереА) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реА рд╕рддрд╣, рдЕрдЧрд░ рдЖрдк рдЗрд╕реЗ "рддреНрд░рд┐рдХреЛрдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ" рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рд╢реБрд░реБрдЖрдд рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:


рддреЛ рдЕрдм рд╣рдореЗрдВ рдЗрд╕реЗ рдЙрди рд▓рд╛рдЗрдиреЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкреНрд░реЗрд╖рд┐рдд рдХреА рдЬрд╛рдПрдВрдЧреАред рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ:
private class GroundSelf extends GroundShape { public GroundSelf(List<Section> sec, BitmapTextureAtlas texture) { super(texture); sections = sec;
, BitmapTextureAtlas рдмрдирд╛рд╡рдЯ) private class GroundSelf extends GroundShape { public GroundSelf(List<Section> sec, BitmapTextureAtlas texture) { super(texture); sections = sec;
рдФрд░ рдЧреНрд░рд╛рдЙрдВрдбрд╢реЗрдк :: Init (), рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ, buildVertexBuffer () рдХреЛ рдХреЙрд▓ рдХрд░реЗрдЧрд╛, рдЬрд┐рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╡рд╛рд░рд┐рд╕ рдХреЛ рдЕрдзрд┐рднрд╛рд░ рджреЗрдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕ рд╕рдорд╛рд░реЛрд╣ рдореЗрдВ, рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рддреНрд░рд┐рдХреЛрдг рдХреЗ рд╕рднреА рдХреЛрдиреЗ рдпреВрд╡реА рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдФрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рд╣рдорд╛рд░реА рдмрдирд╛рд╡рдЯ рдЪреМрдХреЛрд░ рд╣реИ, рдФрд░ рдкреГрдереНрд╡реА рдЖрдо рддреМрд░ рдкрд░ рдПрдХ рдЧреИрд░-рдЙрддреНрддрд▓ рдкреЙрд▓реАрд╣реЗрдбреНрд░реЙрди рд╣реИ, рдФрд░ рдпрджрд┐ рд╣рдо 1: 1 рдХреЗ рд╕рдордиреНрд╡рдп рдЕрдиреБрдкрд╛рдд рдореЗрдВ рд╕рднреА рддреНрд░рд┐рднреБрдЬреЛрдВ рдореЗрдВ рдПрдХ рдмрдирд╛рд╡рдЯ рдХреЛ рдореВрд░реНрдЦрддрд╛ рд╕реЗ рдЦреАрдВрдЪрддреЗ рд╣реИрдВ, рддреЛ рд╣рдордиреЗ рдЪрд┐рддреНрд░реЛрдВ рдХреА рддрд░рд╣ рдмрдирд╛рд╡рдЯ рдХреЛ рднреА рдирд╣реАрдВ рдЬреАрддрд╛ рд╣реИред рд╣рдореЗрдВ рдХрд╛рд░рдХ, рдЕрддрд┐рд░рд┐рдХреНрдд, рд╕реЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд▓рдВрдмрд╛рдИ рдКрдВрдЪрд╛рдИ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рдпреВ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдПрдХ рдХрд╛рд░рдХ рд╕реЗ рдмрдбрд╝рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореИрдВ рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдЬрдм рдЖрдк рдмрдирд╛рд╡рдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЪрд┐рддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХреБрдЫ рдХрдореНрдкрд╛рд╕ рд▓реЗрдВ, рддрд╛рдХрд┐ рдЖрдк рдмрдирд╛рд╡рдЯ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рдЙрдиреНрдореБрдЦреАрдХрд░рдг рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХреЗрдВред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, buildVertexBuffer рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ, рдЖрдк рдЕрдкрдиреА рд╡рд╕реНрддреБ рдФрд░ рдЙрд╕рдХреЗ рдпреВрд╡реА рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд╕рднреА рддреНрд░рд┐рдХреЛрдгреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
@Override protected Vertex[] buildVertexBuffer() { int vertexesCount = 0, i, j, k = 0; float hellY = 800.0f;
() * @Override protected Vertex[] buildVertexBuffer() { int vertexesCount = 0, i, j, k = 0; float hellY = 800.0f;
рдЬреЗ) @Override protected Vertex[] buildVertexBuffer() { int vertexesCount = 0, i, j, k = 0; float hellY = 800.0f;
рд╕рддрд╣ рдмрдирд╛рдИред рдЕрдм рд╣рдореЗрдВ рдЗрд╕реЗ рджреБрдирд┐рдпрд╛ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЕрдВрдбрдорд╛рди рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
рдкрд░рд┐рдгрд╛рдо:

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЬреЛ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдХреА рддрд▓рд╛рд╢ рдореЗрдВ Google рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╣рд╛рдВ рдЖрдпрд╛ рд╣реИ рд╡рд╣ рд╕рдВрддреБрд╖реНрдЯ рд╣реИред