Уроки по использованию Простейшей игровой библиотекой для андроид
от samogost
Урок 1. Введение.
Здравствуйте, начинающие программисты для андроид. Я Сергей Самоделкин- начинающий программист на андроид, знаком с этой платформой около 3-4месяца, долгое время пытался создать какую-нибудь игру, но никак не получалось из-за отсутствия в андроиде игровых классов (спрайты, замощенные слои, менеджеры слоев), долгое время я пробывал делать игры с использованием ImageView, но это не подходило мне , так как не имело в себе игровые функции например для передвижения или детекции столкновений, а также анимации. Долгое время я мучился и искал различные игровые библиотеки.
Но все игровые библиотеки были непонятными и сложными.
Наконец я нашел статью про рисование на канве , с этого момента я начал рисовать простые картинки Bitmap, сделал простой класс , хранящий в себе картинку и ее координаты, и вот класс LayerSprite был готов.
Этот класс позволил мне наконец создать первый спрайт, который мог двигаться.
После я расширил этот класс и со временем добавил детекцию столкновения с другими спрайтами и сделал свою первую игру с несколькими спрайтами и декорацией.С этого момента я решил сделать простейшую игровую библиотеку в мире для таких же новичков как и я.
Так и назвал ее "ASGL"(Android Simplest Game Library, на русском языке звучит как "простейшая игровая библиотека для андроид.").
Эта библиотека самая простая в мире, подходит для новичков, содержит базовый функционал для создания различных спрайтов, карт, а также модифицированных спрайтов с простой физикой, например инерционные спрайты или прыгающие спрайты.
В дальнейших уроках расскажу об основах разработки простейшего скелета игры с помощью этой игровой библиотеки, самой простой в мире!
Урок 2. Учимся пользоваться библиотекой.
В этом уроке я научу вас как создать спрайт и нарисовать его в классе, наследованном от SurfaceView.
Нам потребуется создать проект с именем SampleAsgl, пакет прописать "com.sampleasgl".
После в папку libs надо положить файл библиотеки с расширением .jar .
Для начала нам надо создать сам класс, наследованный от SurfaceView, создадим его с именем MySurface и с одним спрайтом, весь код урока заранее написан мной, вот он:
В главной активности создадим экземпляр класса MySurface и выведем на окно.
При создании экземпляра класса MySurface происходят вот такие действия:
1)выполняется конструктор класса MySurface.
2)При вызове метода getHolder().addCallback(this) поверхность готова к работе, но еще не выведена на окно и поэтому получить канву не получится.
3)Управление передается конструктору активности вот этой строке: setContentView(ms).
4)Вызывается метод surfaceCreated() класса MySurface, в котором мы создаем поток и запускаем его.
Поздравляю, вы создали весь код и можно компилировать проект и делать свою первую игру, документация к классам понятная любому новичку.
Здравствуйте, начинающие программисты для андроид. Я Сергей Самоделкин- начинающий программист на андроид, знаком с этой платформой около 3-4месяца, долгое время пытался создать какую-нибудь игру, но никак не получалось из-за отсутствия в андроиде игровых классов (спрайты, замощенные слои, менеджеры слоев), долгое время я пробывал делать игры с использованием ImageView, но это не подходило мне , так как не имело в себе игровые функции например для передвижения или детекции столкновений, а также анимации. Долгое время я мучился и искал различные игровые библиотеки.
Но все игровые библиотеки были непонятными и сложными.
Наконец я нашел статью про рисование на канве , с этого момента я начал рисовать простые картинки Bitmap, сделал простой класс , хранящий в себе картинку и ее координаты, и вот класс LayerSprite был готов.
Этот класс позволил мне наконец создать первый спрайт, который мог двигаться.
После я расширил этот класс и со временем добавил детекцию столкновения с другими спрайтами и сделал свою первую игру с несколькими спрайтами и декорацией.С этого момента я решил сделать простейшую игровую библиотеку в мире для таких же новичков как и я.
Так и назвал ее "ASGL"(Android Simplest Game Library, на русском языке звучит как "простейшая игровая библиотека для андроид.").
Эта библиотека самая простая в мире, подходит для новичков, содержит базовый функционал для создания различных спрайтов, карт, а также модифицированных спрайтов с простой физикой, например инерционные спрайты или прыгающие спрайты.
В дальнейших уроках расскажу об основах разработки простейшего скелета игры с помощью этой игровой библиотеки, самой простой в мире!
Урок 2. Учимся пользоваться библиотекой.
В этом уроке я научу вас как создать спрайт и нарисовать его в классе, наследованном от SurfaceView.
Нам потребуется создать проект с именем SampleAsgl, пакет прописать "com.sampleasgl".
После в папку libs надо положить файл библиотеки с расширением .jar .
Для начала нам надо создать сам класс, наследованный от SurfaceView, создадим его с именем MySurface и с одним спрайтом, весь код урока заранее написан мной, вот он:
- package com.sampleasgl;
- import android.content.Context;
- import android.graphics.Canvas;
- import android.view.SurfaceHolder;
- import android.view.SurfaceView;
- import samodelkin.androidsimplestgamelibrary.*;
- public class MySurface extends SurfaceView implements SurfaceHolder.Callback,Runnable{
- private LayerSprite sprite;
- public MySurface(Context context) {
- super(context);
- sprite=new LayerSprite(R.drawable.ic_launcher,getResources());
- sprite.setPosition(100, 100);
- getHolder().addCallback(this);
- }
- public void run(){
- Canvas c=getHolder().lockCanvas();
- sprite.paint(c);
- getHolder().unlockCanvasAndPost(c);
- }
- public void surfaceCreated(SurfaceHolder holder) {
- new Thread(this).start();
- }
- public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
- }
- public void surfaceDestroyed(SurfaceHolder holder) {
- }
- }
При создании экземпляра класса MySurface происходят вот такие действия:
1)выполняется конструктор класса MySurface.
2)При вызове метода getHolder().addCallback(this) поверхность готова к работе, но еще не выведена на окно и поэтому получить канву не получится.
3)Управление передается конструктору активности вот этой строке: setContentView(ms).
4)Вызывается метод surfaceCreated() класса MySurface, в котором мы создаем поток и запускаем его.
Поздравляю, вы создали весь код и можно компилировать проект и делать свою первую игру, документация к классам понятная любому новичку.