Форум программистов, компьютерный форум, киберфорум
JavaScript: Фреймворки
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
 Аватар для zalec
76 / 54 / 22
Регистрация: 03.03.2019
Сообщений: 176

PixiJS. Как из одной текстуры сделать несколько спрайтов?

02.01.2024, 17:26. Показов 1358. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем Hi!;
Допустим есть текстура:https://img.craftpix.net/2023/... 8x512.webp
Как ее нарезат на спрайты?

Пробовал:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
  sprites = []
 for (let iy = 0; iy < 1024; iy += 128)
    for (let ix = 0; ix < 1024; ix += 128)
    {        
        const sprite = new PIXI.Sprite(PIXI.Texture.from('./1024.png'))
        sprite.texture.frame = new PIXI.Rectangle(ix,iy, 128,128)
            
        sprites.push(sprite);
        
        sprite.x = ix;
        sprite.y = iy;
        app.stage.addChild(sprite);
      }
Почемуто создается один и тотже спрайт?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.01.2024, 17:26
Ответы с готовыми решениями:

Из одной большой текстуры сделать несколько более маленьких без использования отрисовки
Я решил резко уменьшить количество текстур, находящихся в папке Content. Для этого я сделал отдельный файл со всеми блоками, но тут...

Как делать из одной картинки несколько спрайтов (и музыки один файл)?
В скачанных некоторых проектах замечал что используется одна картинка а на ней несколько спрайтов, в итоге на префабы цепляют только те...

Как сделать так что бы при нажатии одной кнопки сделать разные вещи несколько раз ?
можно взять интегер i, и если оно ровно 1 то делай это а если нет то нет и если кликнуть на кнопку то i ровно 1, так другая кнопка будет...

2
Эксперт .NET
 Аватар для Usaga
14127 / 9347 / 1350
Регистрация: 21.01.2016
Сообщений: 35,125
05.01.2024, 11:38
Цитата Сообщение от zalec Посмотреть сообщение
const sprite = new PIXI.Sprite(PIXI.Texture.from('./1024.png'))
Я не знаю касаемо одного и того же спрайта, но в данной строке ты N раз загружаешь одну и ту же картинку под видом новой текстуры, а потом через спрайт из неё кусок выделяешь. Расход памяти, конечно, будет отличный просто.
0
 Аватар для zalec
76 / 54 / 22
Регистрация: 03.03.2019
Сообщений: 176
05.01.2024, 15:09  [ТС]
В итоге получилось так:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        this.#sprites = [];
        this.#textures = [];
 
        var bt = Texture.from('./abc1_1024.png');
        let texture;
        for (let iy = 0; iy < 1024; iy += 128) {
            for (let ix = 0; ix < 1024; ix += 128) {
                texture = new Texture(bt);
                texture.frame = new Rectangle(ix, iy, 128, 128)
                this.#textures.push(texture);
            }
        }
 
        for (let i = 0; i < this.#textures.length; i++) {
            const sprite = new Sprite(this.#textures[i]i);
            this.#sprites .push(sprite);
        }
И важное замечание:
Чтобы это все заработало нужно закоментировать строки 7996 - 8002
Кликните здесь для просмотра всего текста
/*
if (xNotFit || yNotFit) {
const relationship = xNotFit && yNotFit ? "and" : "or";
const errorX = `X: ${x} + ${width} = ${x + width} > ${this.baseTexture.width}`;
const errorY = `Y: ${y} + ${height} = ${y + height} > ${this.baseTexture.height}`;
throw new Error(`Texture Error: frame does not fit inside the base Texture dimensions: ${errorX} ${relationship} ${errorY}`);
}
*/
в файле pixi.mjs (версия 7.3.3).
если этого не сделать, будет ошибка : pixi.mjs:8001 Uncaught Error: Texture Error: frame does not fit inside the base Texture dimensions: X: 0 + 128 = 128 > 0 and Y: 0 + 128 = 128 > 0
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.01.2024, 15:09
Помогаю со студенческими работами здесь

Розовые текстуры спрайтов при сборке проекта
В редакторе и плей моде всё в порядке. При сборке проекта спрайты, которые включены в атлас, который включен в ассет-бандл addressable,...

Как из этой одной строчки сделать несколько
Ребята нужно сделать большее количество этих строчек. Присвоить им тоже самое значения что бы делали одну и ту же функцию. unit...

Как сделать несколько форм на одной странице?
Здравствуйте. Есть сайт на Modx revo, на нём есть раздел с каталогом товаров. После нажатия на кнопку заказать, всплывает модальное...

Как из одной функции сделать несколько подобных?
Добрый день уважаемые форумчане! Скачал скрипт с инета. Вроде работает более менее. Но я хотел бы его доделать по своему усмотрению....

Как сделать несколько страниц в одной форме
Добрый вечер, коллеги. Помогите, пожалуйста. До этого с Java был практически незнаком, а тут потребовалось написать GUI приложение. Так...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru