ПредишенСледващото

Здравейте на всички.
Днес аз ще ви покажа как да използвате AndEngine напиши малка игра. Стая оказа доста голям, и за да не се роди на читателя, докато ние се съсредоточи върху първата част. Всичко, което е необходимо от читателя - това Java знания, ООП и способността да се справят с Eclipse и Android SDK. Гледайки напред, ние получаваме нещо подобно Огледала Maze или лазерен Logic.
Във втората част на статията.
Третата част на статията.

Как да инсталирате Eclipse, Android SDK, за създаване на проекти и да се свърже аз няма в библиотеката, така че веднага се залавяме за работа.

Стъпка 1: На вентилатора. Можете да изтеглите източник AndEngine и свързани с проекта, като библиотека Android. Или да вземем пример с готов .jar. И в двата случая ще трябва да Mercurial. върху него ние също няма да спре.
Стъпка 2: Проектът е създаден, всички от библиотеките свързани. Сега имаме нужда от снимките. Szdaem в папката на проекта:

Или както ви харесва, и хвърли на 2 изображения. Един фон и нашия лазер.
Не са необходими повече изображения. Чао.
Стъпка 3: Ами, тъй като започнахме с образите след това да напишете малък клас, които ще ги инициализира с нас.
обществена класа текстури

частен Texture mTexture;
частен TextureRegion mLaserGunTextureRegion, mBackgroundTextureRegion;

обществени Textures (окончателен BaseGameActivity дейност, окончателно Двигател) Log.i ( "Лазер логика", "onLoadResources".);
това .mTexture = нова текстура (1024, 512,
TextureOptions.BILINEAR_PREMULTIPLYALPHA);
това .mLaserGunTextureRegion = TextureRegionFactory.createFromAsset (
това .mTexture, дейност ", GFX / laser_gun.png". 800, 0);
това .mBackgroundTextureRegion = TextureRegionFactory.createFromAsset (
това .mTexture, дейност ", GFX / laser_logic_background.png". 0, 0);
. Engine.getTextureManager () loadTexture (това .mTexture);
>

обществен TextureRegion getBackground () върне mBackgroundTextureRegion;
>

обществен TextureRegion getLaserGun () върне mLaserGunTextureRegion;
>

* Този код е подчертана с изходен код за открояване.

Какво се случва в този код? Да започнем с това, ние създаваме mTexture, той ще бъде нашите атлас. Важно е, че размерите са правомощията на две, като OpenGL не разбира другите измерения на текстурата. На следващо място, ние добавяме към нашия имидж атлас. И гледам внимателно, така че те не се припокриват. За нашия лазер е много важно прозрачен фон, така че във всеки случай ние използваме PNG за него. И за background'a няма значение в какъв формат да я съхранява. Ами и в края на краищата метод повикване loadTexture () и след това можем да използваме нашите атлас.

Стъпка 4: Textures ние заредени, сега нека да видим какво имаме.

обществени клас StageActivity простира BaseGameActivity

частен статичен краен Int CAMERA_WIDTH = 800;
частен статичен краен Int CAMERA_HEIGHT = 480;
частни статични крайните INT NUMBER_OF_LAYERS = 2;

частен Камера mCamera;
частни текстури mTextures;

@Override
обществени невалидни onLoadComplete () <>

@Override
onLoadEngine обществен Engine () тази .mCamera = нов фотоапарат (0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
окончателните варианти EngineOptions = нови EngineOptions (истински,
ScreenOrientation.LANDSCAPE, нов RatioResolutionPolicy (
getScreenResolutionRatio ()), това .mCamera);
върнете нов двигател (опции);
>

@Override
обществени невалидни onLoadResources () mTextures = нови текстури (това getEngine ().);
>

@Override
обществена сцена onLoadScene () Ln.i ( "OnLoadScene");
това .mEngine.registerUpdateHandler (нова FPSLogger ());

финалната сцена сцена = нова сцена (NUMBER_OF_LAYERS);
scene.setBackground (нов SpriteBackground (нов Sprite (0, 0, mTextures
.getBackground ())));
. Scene.getFirstChild () attachChild (нов Sprite (0, 0, mTextures.getLaserGun ()));
върнете сцена;
>

частен плувка getScreenResolutionRatio () DisplayMetrics дм = нови DisplayMetrics ();
.. GetWindowManager () getDefaultDisplay () getMetrics (DM);
връщане ((поплавък) dm.widthPixels) / ((поплавък) dm.heightPixels);
>

* Този код е подчертана с изходен код за открояване.
Това е основната ни дейност, да се надяваме да не се наложи да го обясня, ние веднага трябва да наследи от BaseGameActivity, в противен случай ние няма да работи. След това, ние предлагаме да се предефинират метода на IDE 4. Причинява се, че за да onLoadEngine-> onLoadResources-> onLoadScene-> onLoadComplete. Да започнем от началото на веригата тук, ние се инициализира на камерата и на самия двигател. Особено внимание се обръща на иска метод getScreenResolutionRatio (). Благодарение на него, ние сме на получената картина ще се разпъва за да запълни екрана. В този случай, пропорциите не се спазват. Или можем да оставим на пропорциите на камерата и след това играта ни няма да заема целия екран, за някои устройства. Разбира се, има и трети вариант - да напиша инициализация за всички размери на екрана, но ние, разбира се, няма да направя сега.

След това, ние се зареди нашата текстура, който след това може да се използва в onLoadScene. FPSLogger - ще покаже кадри в трупите. Странен scene.getFirstChild () връща структурата ние се позоваваме на нашата сцена topsheet. Разбира се, ние можем да направим без горния слой добавяне на обекти директно в сцената, но да се знае кои слой dobavlyaesh обект е по-удобно.
Сега можем да видим какво имаме.

Писане на игра за Android в по andengine

За първата част достатъчно. Проект код може да бъде намерена на SourceForge.
Благодаря ви за вниманието.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!