Уроки по использованию Простейшей игровой библиотекой для андроид

от
Android    library

Урок 1. Введение.
Здравствуйте, начинающие программисты для андроид. Я Сергей Самоделкин- начинающий программист на андроид, знаком с этой платформой около 3-4месяца, долгое время пытался создать какую-нибудь игру, но никак не получалось из-за отсутствия в андроиде игровых классов (спрайты, замощенные слои, менеджеры слоев), долгое время я пробывал делать игры с использованием ImageView, но это не подходило мне , так как не имело в себе игровые функции например для передвижения или детекции столкновений, а также анимации. Долгое время я мучился и искал различные игровые библиотеки.
Но все игровые библиотеки были непонятными и сложными.
Наконец я нашел статью про рисование на канве , с этого момента я начал рисовать простые картинки Bitmap, сделал простой класс , хранящий в себе картинку и ее координаты, и вот класс LayerSprite был готов.
Этот класс позволил мне наконец создать первый спрайт, который мог двигаться.
После я расширил этот класс и со временем добавил детекцию столкновения с другими спрайтами и сделал свою первую игру с несколькими спрайтами и декорацией.С этого момента я решил сделать простейшую игровую библиотеку в мире для таких же новичков как и я.
Так и назвал ее "ASGL"(Android Simplest Game Library, на русском языке звучит как "простейшая игровая библиотека для андроид.").
Эта библиотека самая простая в мире, подходит для новичков, содержит базовый функционал для создания различных спрайтов, карт, а также модифицированных спрайтов с простой физикой, например инерционные спрайты или прыгающие спрайты.
В дальнейших уроках расскажу об основах разработки простейшего скелета игры с помощью этой игровой библиотеки, самой простой в мире!

Урок 2. Учимся пользоваться библиотекой.
В этом уроке я научу вас как создать спрайт и нарисовать его в классе, наследованном от SurfaceView.
Нам потребуется создать проект с именем SampleAsgl, пакет прописать "com.sampleasgl".
После в папку libs надо положить файл библиотеки с расширением .jar .
Для начала нам надо создать сам класс, наследованный от SurfaceView, создадим его с именем MySurface и с одним спрайтом, весь код урока заранее написан мной, вот он:

  1. package com.sampleasgl;
  2.  
  3. import android.content.Context;
  4. import android.graphics.Canvas;
  5. import android.view.SurfaceHolder;
  6. import android.view.SurfaceView;
  7. import samodelkin.androidsimplestgamelibrary.*;
  8.  
  9. public class MySurface extends SurfaceView implements SurfaceHolder.Callback,Runnable{
  10. private LayerSprite sprite;
  11.  
  12. public MySurface(Context context) {
  13. super(context);
  14. sprite=new LayerSprite(R.drawable.ic_launcher,getResources());
  15. sprite.setPosition(100, 100);
  16. getHolder().addCallback(this);
  17. }
  18.  
  19. public void run(){
  20. Canvas c=getHolder().lockCanvas();
  21. sprite.paint(c);
  22. getHolder().unlockCanvasAndPost(c);
  23. }
  24.  
  25.  
  26.  
  27. public void surfaceCreated(SurfaceHolder holder) {
  28. new Thread(this).start();
  29. }
  30.  
  31. public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
  32. }
  33.  
  34. public void surfaceDestroyed(SurfaceHolder holder) {
  35. }
  36.  
  37. }
В главной активности создадим экземпляр класса MySurface и выведем на окно.
При создании экземпляра класса MySurface происходят вот такие действия:
1)выполняется конструктор класса MySurface.
2)При вызове метода getHolder().addCallback(this) поверхность готова к работе, но еще не выведена на окно и поэтому получить канву не получится.
3)Управление передается конструктору активности вот этой строке: setContentView(ms).
4)Вызывается метод surfaceCreated() класса MySurface, в котором мы создаем поток и запускаем его.
Поздравляю, вы создали весь код и можно компилировать проект и делать свою первую игру, документация к классам понятная любому новичку.
  • +4
  • views 4372