AndEngine пользовательские спрайты - PullRequest
2 голосов
/ 24 декабря 2011

Я начал использовать andEngine вчера, но я немного сбит с толку .. Я хочу создать собственный персонаж для каждого игрока, поэтому я хочу создать базу данных внутри приложения в Assets / gfx, и если, например, игрок выбрал другой глаза или нос, характер изменится. Есть ли способ построить что-то подобное, не создавая разные спрайты, не устанавливая позиции и все такое. (есть некоторые игры на компьютере, которые делают то, что я хочу сделать с моим приложением, например, maplestory, LaTale, Gust online и т. д.)

Спасибо!

Ответы [ 2 ]

3 голосов
/ 25 декабря 2011

Я не уверен, что это сделано таким образом (у меня никогда не было игры, в которой я ее использовал и не пробовал), но вот одна мысль пришла мне в голову:

Допустим, у нас есть игра с редактированием внешнего вида персонажей, например, maplestory. Проще говоря, персонаж - это просто круг или двухмерный шар, и вы можете изменить его цвет и цвет глаз. Итак, у вас есть эти папки:

assets/gfx/circles

А

assets/gfx/eyes

Теперь, допустим, у нас есть этот круг:

Red circle

И у нас есть эти глаза:

Yellow eyes

И мы хотим объединить их.

Вы могли бы сделать это:

    BitmapTextureAtlas playerTextureAtlas = new BitmapTextureAtlas(256, 256 TextureOptions.BILINEAR_PREMULTIPLYALPHA);
    TextureRegion playerTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(playerTextureAtlas, this, "circles/redcircle.png", 0, 0);
    //By executing the next line, we place the eyes over the player texture area.
    //There is NO need to keep a reference to the texture region this returns to us, because technically this one and playerTextureRegion are THE SAME - they both hold the same region in the texture (As long as they have the same sizes, of course)
    BitmapTextureAtlasTextureRegionFactory.createFromAsset(playerTextureAtlas, this, "eyes/yelloweyes.png", 0, 0); 

Помните - фон изображения глаз должен быть прозрачным, чтобы он не перекрывал круг! Поиграйте с параметром TextureOptions. Я не уверен, что тот, который я использовал, подойдет для этой цели - может быть, другой будет.

И, наконец, вы должны держать глаза и круги одинакового размера, так как таким образом легче проверить, подходят ли они. Если вы сделаете глаза просто маленьким прямоугольником, вам придется возиться с ним, пока не найдете место, где вы должны расположить его над кругом. Пустая трата времени ...

Теперь вы можете просто загружать разные тела / глаза / волосы и т. Д., Размещать их, и у вас есть настроенный игрок!

0 голосов
/ 14 февраля 2012

Боюсь, решение Йонга не сработает, по крайней мере, не в GLES1 версии AndEngine. Когда я попытался объединить спрайты таким образом, последний просто переписал все, что было под ним. В этом случае на экране появятся только глаза.

...