понедельник, 1 октября 2012 г.

Бэкграунд.


Научился добавлять бэкграунд в сцену. Хотя по сути я просто создал еще один спрайт. Главное - правильно пихать текстуры в конструкцию try-catch в загрузчике ресурсов.
Вот как это выглядит для двух текстур:
@Override
    protected void onCreateResources()
    {
    
     try {
   this.mHeroTexture = new BitmapTexture(this.getTextureManager(), new IInputStreamOpener() {
    public InputStream open() throws IOException {
     return getAssets().open("gfx/ship.png");
    }
   });  
   this.mHeroTexture.load(); 
   this.mBackGroundTexture = new BitmapTexture(this.getTextureManager(), new IInputStreamOpener() {
    public InputStream open() throws IOException {
     return getAssets().open("gfx/Back1.png");
    }
   });
   this.mBackGroundTexture.load();
   
   this.mHeroFaceTextureRegion = TextureRegionFactory.extractFromTexture(this.mHeroTexture);
   this.mBackGroundTextureRegion = TextureRegionFactory.extractFromTexture(this.mBackGroundTexture);
  } 
     
     catch (IOException e) {
   Debug.e(e);
  }         
    }
Надо бы все-таки получше разобраться с этими самыми потоками... Ну а дальше не буду листинг выкладывать - суть простая - перед подключением спрайта героя в сцену надо подключить спрайт.

2 комментария:

  1. Спасибо за то, что пишете, есть интересные моменты. И у меня есть вопрос, какого размера вы используете изображение для фона? Что если размер экрана будет больше чем ваше изображение? Нормально ли масштабируется?

    ОтветитьУдалить
    Ответы
    1. Привет. Прошу прощения, что так запоздало отвечаю - много личнчых заморочек. Потому и новых постов пока не появляется.

      Но касательно вашего вопроса у меня был интересный опыт. Приехал ко мне человек с Samsung Galaxy Note. Лопата такая 10-дюймовая вроде. Или около того. И я конечно, воспользовался им для тэстов. Результат: все растягивается на весь экран, то есть экран подстараивается под разрешение 320*480 или какое там выставлено. Каждый пиксел очень крупный - примерно миллиметр, может больше. То есть как в старинных играх под Dos. Но все работает как положено. Андройд там стоял какойто из последнийх, 4х.

      Вывод. Дешево и сердито можно запилить самое мелкое разрешение и совать его везде, на все девайсы. Будет выглядеть очень топорно, но работать будет. Конечно, этот вариант не подходит для комерческого использования. Если делать что-то на продажу, то надо делать несколько паков с графикой - под разные разрешения. Ну и определять нужное разрешение уже на конкретном девайсе. Думаю, это сделать довольно просто стандартными средствами Фндройда (именно самого Андройда, а не движка АЕ). Вот такое вот мое скромное мнение :)

      Удалить