рд╣рдо рдПрдВрдбреНрд░реЙрдЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдЧреЗрдо рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВред рднрд╛рдЧ 1

рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░ред
рдЖрдЬ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ AndEngine рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЫреЛрдЯрд╛ рдЧреЗрдо рдХреИрд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реИред рдЭреБрдВрдб рдХрд╛рдлреА рдмрдбрд╝рд╛ рд╣реЛ рдЧрдпрд╛, рддрд╛рдХрд┐ рдкрд╛рдардХ рдмреЛрд░ рди рд╣реЛ, рдЬрдмрдХрд┐ рд╣рдо рдЗрд╕рдХреЗ рдкрд╣рд▓реЗ рднрд╛рдЧ рдкрд░ рд░рд╣рддреЗ рд╣реИрдВред рдкрд╛рдардХ рдХреЛ рдЬрд┐рд╕ рдЪреАрдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рд╡рд╣ рд╣реИ рдЬрд╛рд╡рд╛, рдУрдУрдкреА рдФрд░ рдЧреНрд░рд╣рдг рдФрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдПрд╕рдбреАрдХреЗ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛ рдЬреНрдЮрд╛рдиред рдЖрдЧреЗ рджреЗрдЦрддреЗ рд╣реБрдП, рд╣рдореЗрдВ рдорд┐рд░рд░реНрд╕ рднреВрд▓рднреБрд▓реИрдпрд╛ рдпрд╛ рд▓реЗрдЬрд░ рд▓реЙрдЬрд┐рдХ рдХреЗ рд╕рдорд╛рди рдХреБрдЫ рдорд┐рд▓рддрд╛ рд╣реИред
рд▓реЗрдЦ рдХрд╛ рджреВрд╕рд░рд╛ рднрд╛рдЧред
рд▓реЗрдЦ рдХрд╛ рддреАрд╕рд░рд╛ рднрд╛рдЧред

рдЧреНрд░рд╣рдг, рдПрдВрдбреНрд░реЙрдЗрдб рдПрд╕рдбреАрдХреЗ рдХреЛ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ рдФрд░ рдореБрдЭреЗ рдЬреЛ рд▓рд╛рдпрдмреНрд░реЗрд░реАрдЬрд╝ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рдХрд░рдиреА рд╣реИрдВ, рддреЛ рдЪрд▓рд┐рдП рддреБрд░рдВрдд рд╡реНрдпрд╛рдкрд╛рд░ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЙрддрд░реЗрдВред

рдЪрд░рдг 1: рд╢реМрдХрд┐рдпрд╛ рдХреЗ рд▓рд┐рдПред рдЖрдк рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрд░реЛрдд рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдВрдбреНрд░реЙрдЗрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдЬреБрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП .jar рд╕реЗ рд▓реЗрдВред рджреЛрдиреЛрдВ рд╣реА рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЖрдкрдХреЛ рдорд░реНрдХреНрдпреВрд░рд┐рдпрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рд╣рдо рдЙрд╕ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдиреНрджреНрд░рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред
рдЪрд░рдг 2: рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИ, рд╕рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВред рдЕрдм рд╣рдореЗрдВ рдЫрд╡рд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдБ:

рд╕рдВрдкрддреНрддрд┐ / gfx

рдЦреИрд░, рдпрд╛ рдЬреЛ рднреА рдЖрдкрдХреЛ рдкрд╕рдВрдж рд╣реИ рдФрд░ рд╡рд╣рд╛рдВ 2 рдЫрд╡рд┐рдпрд╛рдВ рдлреЗрдВрдХреЗрдВред рдПрдХ рдкреГрд╖реНрдарднреВрдорд┐ рдФрд░ рд╣рдорд╛рд░реА рд▓реЗрдЬрд░ред
рдХрд┐рд╕реА рдФрд░ рдЪрд┐рддреНрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЕрд▓рд╡рд┐рджрд╛ред
рдЪрд░рдг 3: рдареАрдХ рд╣реИ, рдЬрдм рд╕реЗ рд╣рдордиреЗ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХреА, рд╣рдо рдПрдХ рдЫреЛрдЯреА рдХрдХреНрд╖рд╛ рд▓рд┐рдЦреЗрдВрдЧреЗ рдЬрд┐рд╕реЗ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдЖрд░рдВрдн рдХрд░реЗрдВрдЧреЗред
public class Textures {

private Texture mTexture;
private TextureRegion mLaserGunTextureRegion, mBackgroundTextureRegion;

public Textures(final BaseGameActivity activity, final Engine engine) {
Log.i( "Laser Logic" , "onLoadResources" );
this .mTexture = new Texture(1024, 512,
TextureOptions.BILINEAR_PREMULTIPLYALPHA);
this .mLaserGunTextureRegion = TextureRegionFactory.createFromAsset(
this .mTexture, activity, "gfx/laser_gun.png" , 800, 0);
this .mBackgroundTextureRegion = TextureRegionFactory.createFromAsset(
this .mTexture, activity, "gfx/laser_logic_background.png" , 0, 0);
engine.getTextureManager().loadTexture( this .mTexture);
}

public TextureRegion getBackground(){
return mBackgroundTextureRegion;
}

public TextureRegion getLaserGun(){
return mLaserGunTextureRegion;
}

}


* This source code was highlighted with Source Code Highlighter .


рдЗрд╕ рдХреЛрдб рдореЗрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ? рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо mTexture рдмрдирд╛рддреЗ рд╣реИрдВ, рдпрд╣ рд╣рдорд╛рд░рд╛ рдПрдЯрд▓рд╕ рд╣реЛрдЧрд╛ ред рдпрд╣ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рдЖрдпрд╛рдо рджреЛ рдХреА рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╢рдХреНрддрд┐рдпрд╛рдБ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдУрдкрдирдЬреАрдПрд▓ рдЕрдиреНрдп рдмрдирд╛рд╡рдЯ рдЖрдХрд╛рд░реЛрдВ рдХреЛ рдирд╣реАрдВ рд╕рдордЭрддрд╛ рд╣реИред рдЖрдЧреЗ рд╣рдо рдЕрдкрдиреЗ рдПрдЯрд▓рд╕ рдореЗрдВ рдЪрд┐рддреНрд░ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдФрд░ рд╣рдо рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдкреНрд░рддрд┐рдЪреНрдЫреЗрдж рди рдХрд░реЗрдВред рд╣рдорд╛рд░реЗ рд▓реЗрдЬрд░ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рджрд░реНрд╢реА рдкреГрд╖реНрдарднреВрдорд┐ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╡реИрд╕реЗ рднреА рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреАрдПрдирдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд▓рд┐рдП рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХрд┐рд╕ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЦреИрд░, рд╕рднреА рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХреЗ рдмрд╛рдж, рд╣рдо рд▓реЛрдбрдЯреЗрдХреНрд╕реНрдЪрд░ () рд╡рд┐рдзрд┐ рдХрд╣рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╣рдо рдЕрдкрдиреЗ рдПрдЯрд▓рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЪрд░рдг 4: рд╣рдордиреЗ рдмрдирд╛рд╡рдЯ рдХреЛ рд▓реЛрдб рдХрд┐рдпрд╛ рд╣реИ, рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ рдХреНрдпрд╛ рдорд┐рд▓рд╛ред

public class StageActivity extends BaseGameActivity {

private static final int CAMERA_WIDTH = 800;
private static final int CAMERA_HEIGHT = 480;
private static final int NUMBER_OF_LAYERS = 2;

private Camera mCamera;
private Textures mTextures;

@Override
public void onLoadComplete() {}

@Override
public Engine onLoadEngine() {
this .mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
final EngineOptions options = new EngineOptions( true ,
ScreenOrientation.LANDSCAPE, new RatioResolutionPolicy(
getScreenResolutionRatio()), this .mCamera);
return new Engine(options);
}

@Override
public void onLoadResources() {
mTextures = new Textures( this , getEngine());
}

@Override
public Scene onLoadScene() {
Ln.i( "OnLoadScene" );
this .mEngine.registerUpdateHandler( new FPSLogger());

final Scene scene = new Scene(NUMBER_OF_LAYERS);
scene.setBackground( new SpriteBackground( new Sprite(0, 0, mTextures
.getBackground())));
scene.getFirstChild().attachChild( new Sprite(0, 0, mTextures.getLaserGun()));
return scene;
}

private float getScreenResolutionRatio() {
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
return (( float ) dm.widthPixels) / (( float ) dm.heightPixels);
}

}


* This source code was highlighted with Source Code Highlighter .

рдпрд╣ рд╣рдорд╛рд░реА рдореБрдЦреНрдп рдЧрддрд┐рд╡рд┐рдзрд┐ рд╣реИ, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдордЭрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рддреБрд░рдВрдд рдмреЗрд╕рдЧреИрдорд╛рдЗрдЯрд┐рдЯреА рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ рд╣рдо рд╕рдлрд▓ рдирд╣реАрдВ рд╣реБрдПред рдЙрд╕рдХреЗ рдмрд╛рдж, IDE рд╣рдореЗрдВ 4 рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░реЗрдЧрд╛ред рдЬрд┐рдиреНрд╣реЗрдВ onLoadEngine-> onLoadResources-> onLoadScene-> onLoadComplete рдХреЗ рдХреНрд░рдо рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдЗрдП рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ рдпрд╣рд╛рдВ рд╣рдо рдХреИрдорд░рд╛ рдФрд░ рдЗрдВрдЬрди рдХреЛ рдЦреБрдж рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВ getScreenResolutionRatio () рдкрджреНрдзрддрд┐ рдкрд░ рд╡рд┐рд╢реЗрд╖ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЙрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдкрд░рд┐рдгрд╛рдореА рддрд╕реНрд╡реАрд░ рдкреВрд░реА рд╕реНрдХреНрд░реАрди рддрдХ рдЦрд┐рдВрдЪ рдЬрд╛рдПрдЧреАред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЕрдиреБрдкрд╛рдд рдХрд╛ рд╕рдореНрдорд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╛ рд╣рдо рдХреИрдорд░реЗ рдХреЗ рдЕрдиреБрдкрд╛рдд рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рд╣рдорд╛рд░рд╛ рдЧреЗрдо рдХреБрдЫ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдкреВрд░реА рд╕реНрдХреНрд░реАрди рдкрд░ рдХрдмреНрдЬрд╛ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдмреЗрд╢рдХ рддреАрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ - рд╕рднреА рд╕реНрдХреНрд░реАрди рдЖрдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд░рдВрднреАрдХрд░рдг рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реЗрдХрд┐рди рд╣рдо, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЕрдм рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред

рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдЕрдкрдиреЗ рдмрдирд╛рд╡рдЯ рдХреЛ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╣рдо рддрдм onLoadScene рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред FPSLogger - рд▓реЙрдЧ рдореЗрдВ рдлреНрд░реЗрдо рджрд░ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдЧрд╛ред рдФрд░ scene.getFirstChild () рдХрд╛ рдЕрдЬреАрдм рдирд┐рд░реНрдорд╛рдг рд╣рдореЗрдВ рд╣рдорд╛рд░реЗ рджреГрд╢реНрдп рдХреА рд╢реАрд░реНрд╖ рдкрд░рдд рдХрд╛ рд▓рд┐рдВрдХ рд▓реМрдЯрд╛ рджреЗрдЧрд╛ред рдмреЗрд╢рдХ, рд╣рдо рд╢реАрд░реНрд╖ рдкрд░рдд рдХреЛ рд╕реАрдзреЗ рджреГрд╢реНрдп рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЬрд╛рдирдирд╛ рдХрд┐ рдЖрдк рдХрд┐рд╕ рдкрд░рдд рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреЛрдбрд╝ рд░рд╣реЗ рд╣реИрдВ, рдЕрднреА рднреА рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред
рдЕрдм рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реБрдЖред


рдкрд╣рд▓реЗ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдЖрдк SourceForge рдкрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛрдб рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

Source: https://habr.com/ru/post/In120716/


All Articles