2016-01-06 1 views
0

У меня есть лист спрайтов (экспортируется с помощью Packer Texture Packer), и я использую свойства (текстуры) и repeat, чтобы показать элементы моего листа спрайтов.Три вопроса JS с смещением текстуры и повторением для элементов позиционирования спрайта

В настоящее время это не работает (и обрезает неправильные элементы моей текстуры) - понравится, если у кого-то есть представление о том, где я ошибаюсь.

Вот мой код:

var tx = this._loadedTexture.clone(); // THREE.Texture 
var txData = this._atlas.frames[name]; 
var txFrame = txData.frame;//txFrame = Object {x: 122, y: 0, w: 68, h: 64} 
var img = tx.image; // HTMLImageElement - image.width = 256 image.height = 512 

tx.repeat.x = txFrame.w/img.width; 
tx.repeat.y = txFrame.h/img.height; 

tx.offset.x = (txFrame.x/img.width); 
tx.offset.y = (txFrame.y/img.height); 
tx.needsUpdate = true; 

Спасибо.

ответ

2

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

tx.wrapS = tx.wrapT = THREE.RepeatWrapping; 
tx.repeat.set(txFrame.w/img.width, txFrame.h/img.height); 
tx.offset.x = ((txFrame.x)/img.width); 
tx.offset.y = 1 - (txFrame.h/img.height) - (txFrame.y/img.height); 

Надеется, это будет надеяться, кто-то еще там.

+0

Если у вас такая же проблема, спасибо за ответ! Не могли ли вы получить обработку вращения? У меня есть атлас, который принесет много пользы от упаковки с вращением, но разбор их обратно в ТРИ. Текстуры сбивают с толку как ад. –

+0

Я не добавлял вращения. Обнаружил, что это было намного более эффективно, чтобы сохранить его как один лист/текстуру спрайта. – user2386872

Смежные вопросы