![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Перс грузится вектором текстур (послойно - отдельно весь перс, отдельно рука) и одежда на нем - тоже вектором текстур. Можно для простоты считать, что каждый вектор текстур - это секвенция фазы ходьбы. Например, 12 кадров. Нижний слой - это весь перс, потом слой одежды, потом рука верхним слоем.
Что-то у меня получается не особенно красиво - либо просто положить три мувиклипа в контейнер и при каждом обновлении все три переставлять на следующий кадр, либо запечь кадры мувиклипов послойно в вектор рендертекстур, но над вектором рендертекстур мувиклип не создать, поэтому все равно переставлять кадры ручками. Например, присваивая текстуру из вектора имаджу. Возможности запечь слои в вектор текстур и потом скормить его мувиклипу я что-то не нашел. Или что-то есть? Последний раз редактировалось mikhailk; 06.10.2015 в 16:47. |
|
|||||
|
Используйте DragonBones.
По началу немного сложно разобраться, приходится посидеть, помучатся но за то потом очень упрощает жизнь, полный контроль над персонажем. |
|
|||||
|
Цитата:
Как вариант можно сделать хранение битмапок (я даже стандартный ассет менеджер расширил, чтобы он не убивал те картинки, которые мне нужны) А потом просто стандартным BitmapDraw все в одну запекать и делать текстуру, которую и кормить мувиклипу. Думаю это всяко лучше костыля, который у тебя получился |
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Цитата:
|
|
|||||
|
Цитата:
Собственно во вложении мой модифицированный Там есть массив На 148 строке Просто добавь туда названия картинок, для которых нужно сохранить битмап данные, естественно без расширения. Короче говоря если сделаешь так И загрузишь картинку some_image.png То потом можешь у ассет менеджера получить ее через Я уже писал на форуме старлинга, что нужно сделать такой функционал из коробки, Даниэль согласился, но хз когда сделает. Так что пока костыльный способ |
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Ок, попробую.
Да, действительно странно, что в коробке такого нет. Добавлено через 1 час 57 минут Кстати, случайно нашел еще вот такое решение: http://blog.eago.ws/2015/01/05/starl...apdata-saving/ |
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Расширил функцию для того, чтобы можно было получать так же изображения из атласа. В сеттере сохраняемых битмап для ассетменеджера указываем не имя текстуры, а имя атласа. При получении битмапа через функцию getBitmap вторым параметром указываем имя атласа.
public function getBitmap( textureName : String, atlasName : String = null ) : Bitmap { // case of simple texture if ( !atlasName ) { return mBitmaps[textureName]; } // case of texture in atlas var textureAtlas : TextureAtlas = getTextureAtlas( atlasName ); var textureRegion : Rectangle = textureAtlas.getRegion( textureName ); var textureFrame : Rectangle = textureAtlas.getFrame( textureName ); if ( textureFrame ) { var textureWidth : uint = textureFrame.width; var textureHeight : uint = textureFrame.height; var regionLeft : uint = -textureFrame.x; var regionTop : uint = -textureFrame.y; var regionWidth : uint = textureRegion.width; var regionHeight : uint = textureRegion.height; } else { textureWidth = textureRegion.width; textureHeight = textureRegion.height; regionLeft = 0; regionTop = 0; regionWidth = textureRegion.width; regionHeight = textureRegion.height; } var bitmapData : BitmapData = new BitmapData( textureWidth, textureHeight, true, 0x00000000 ); var pixels : ByteArray = ( mBitmaps[atlasName] as Bitmap ).bitmapData.getPixels( textureRegion ); pixels.position = 0; bitmapData.setPixels( new Rectangle( regionLeft, regionTop, regionWidth, regionHeight ), pixels ); return new Bitmap( bitmapData ); } |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:03. |
|
|
« Предыдущая тема | Следующая тема » |
|
|