Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.91/34: Рейтинг темы: голосов - 34, средняя оценка - 4.91
11 / 11 / 2
Регистрация: 17.02.2014
Сообщений: 947

Как создать кубик рубика в Unity?

01.01.2017, 16:20. Показов 6942. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Простой куб легко создаётся. Как сделать кубик рубика?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.01.2017, 16:20
Ответы с готовыми решениями:

Кубик Рубика
Здравствуйте подскажите пожалуйста , хочу попробовать сделать кубика Рубика , пока стоит задача -> определить куда хочет повернуть грань...

Не отображается Кубик. в Unity
Внимание! Знатоки,вопрос! Не отоброжается кубик,с чем это может быть связанно в Unity?

Как создать Unity 3D приложение?
Ребята кто чем можЭт помогите....! Дайте пару дельных советов,программы которые нужно для этого использовать..!

23
 Аватар для wmysterio
295 / 244 / 128
Регистрация: 24.12.2014
Сообщений: 708
01.01.2017, 19:08
Цитата Сообщение от jestero Посмотреть сообщение
Как сделать кубик рубика?
Стандартный кубик-рубик состоит из 9*3=27 обычных кубов, расположенных относительно центра на разные расстояния, кроме центрального куба, которого можно не создавать. Далее уже думайте, можете ли Вы вручную сделать и расположить такие кубы средствами Unity?

Хотя если вам нужен не динамический кубик-рубик( без каких действий, типа разворота кубов ), а талько так, чтобы просто где-то был, то можно обойтись и 1 кубом, на которого "наклеены" текстуры со швами между цветами.

Вопрос задан так, что не поймёшь какой вам кубик-рубик вообще нужен. Скажу только, что его можно создать.
0
11 / 11 / 2
Регистрация: 17.02.2014
Сообщений: 947
02.01.2017, 20:49  [ТС]
Цитата Сообщение от wmysterio Посмотреть сообщение
какой вам кубик-рубик вообще нужен.
Нужен большой куб который состоит из 27 маленьких кубов.
0
 Аватар для wmysterio
295 / 244 / 128
Регистрация: 24.12.2014
Сообщений: 708
02.01.2017, 23:32
Цитата Сообщение от jestero Посмотреть сообщение
Нужен большой куб который состоит из 27 маленьких кубов.
И на чём остановка? Создать один можете, а 27 нет?
0
 Аватар для Cr0c
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
03.01.2017, 11:42
Почему 27? Граней же 6...
0
11 / 11 / 2
Регистрация: 17.02.2014
Сообщений: 947
03.01.2017, 13:09  [ТС]
Цитата Сообщение от wmysterio Посмотреть сообщение
И на чём остановка? Создать один можете, а 27 нет?
Надо как то сделать, чтобы потом при нажатии на сегменты куба эти маленькие кубы отваливались. Поэтому один не подойдёт.
0
 Аватар для wmysterio
295 / 244 / 128
Регистрация: 24.12.2014
Сообщений: 708
03.01.2017, 13:57
Цитата Сообщение от Cr0c Посмотреть сообщение
Почему 27? Граней же 6...
Имелось ввиду количество мелких кубов в кубике-рубике, а не единый куб, который имеет вид как у кубика-рубика:

Цитата Сообщение от jestero Посмотреть сообщение
Поэтому один не подойдёт.
Естественно не подойдёт. Вы же сами написали, что вам нужен динамический куб, части которого отваливается и всё такое. По-этому я Вам и предлагаю создать 27 кубов и разместить их относительно центрального куба(или какой-то точки отсчёта) так, чтобы он имел вид большого куба(смотрите рисунок выше и сделайте, чтобы эти кубы были впритык друг другу)
.
Цитата Сообщение от jestero Посмотреть сообщение
чтобы потом при нажатии на сегменты куба эти маленькие кубы отваливались
После того, как большой куб сделан, на каждый мелкий куб прикрепляйте скрипт, который при нажатии на этот куб будет отваливаться.
0
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
06.01.2017, 18:58
jestero,
Береш любой 3d редактор и делаеш кубик рубика из 27 маленьких кубичков, красиш нужные плоскости и экспортируеш в Unity.
Я создал кубик рубик в программе blender к примеру смотри на картинки.
Миниатюры
Как создать кубик рубика в Unity?   Как создать кубик рубика в Unity?  
0
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
06.01.2017, 19:31
Вот смотрим на картинки я сделал кубика рубика, но для него еще нужно сделать и возможность крутить его.
Здесь как бы все просто родительскому кубу красная стрелка сделал дочерние зеленые стрелки смотрим на скрин.
Поворачиваю родительский поворачиваются и дочерние- все нормально и отлично!

Смысл в том что мы делаем к примеру дочерними кубиками все боковые относительно центрального.
Но как их делать программно!?

Скрипт к примеру я знаю который сделает дочерним объектом.
Кубик крутится во все стороны все кубики родители меняются по отношению к детям кубикам.

Ясно что программно нужно вечно менять родителей и детей, но каких детей и каких родителей давайте порешаем эту логику!

Добавлено через 10 минут
Подведем итоги ребята о сборке кубика в игре что мне удалось немного установить.
Все центральные кубички всегда будут родителями! А их 6 штук на 6 сторонах и плюс еще в центре (он невидимый загорожен другими кубиками) и это не меняется что уже хорошо!
Менятся тока будут дети, как вобще все это реализовать?
0
 Аватар для wmysterio
295 / 244 / 128
Регистрация: 24.12.2014
Сообщений: 708
07.01.2017, 01:26
Цитата Сообщение от NIKOLAYY Посмотреть сообщение
сделать и возможность крутить его
Ему нужно, чтобы
Цитата Сообщение от jestero Посмотреть сообщение
потом при нажатии на сегменты куба эти маленькие кубы отваливались
Если конечно не захочет сделать полноценную функциональность.
0
 Аватар для Cr0c
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
07.01.2017, 08:44
Родительский объект будет только тот, чья грань будет вращаться. После вращения все родительские связи надо сбрасывать.
Хранить состояние кубика надо в массиве, транзакции надо как-то определить, чтобы внутри массива делать сдвиги состояний граней.
2
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
07.01.2017, 14:53
wmysterio,
Ну разваливающийся кубик думаю легче сделать чем нормально крутящийся

Цитата Сообщение от Cr0c Посмотреть сообщение
После вращения все родительские связи надо сбрасывать.
Хранить состояние кубика надо в массиве, транзакции надо как-то определить, чтобы внутри массива делать сдвиги состояний граней.
Вот это все верно! Крутанули кубик и сбросили родительские связи.
Про массив думаю тоже верно! Нужен трехмерный массив 3 x 3 x 3 из 27 элементов.
Это уже какие-то продвиги! Небольшие шажки к реализации игры симулятора кубик-рубика!
0
 Аватар для wmysterio
295 / 244 / 128
Регистрация: 24.12.2014
Сообщений: 708
07.01.2017, 18:58
Цитата Сообщение от Cr0c Посмотреть сообщение
Родительский объект будет только тот, чья грань будет вращаться. После вращения все родительские связи надо сбрасывать.
Хорошо бы центральный куб сделать родительским. Тогда нужно только указываем ему необходимые дочерние кубы. При вращении родительского куба будут автоматически вращаться и дочерние. После завершение разворота всем "участникам" сбрасываем родительский контейнер. Сделали бесполезный невидимый куб действительно полезным Получится что-то вроде этого:

При вращении родителя на угол альфа1, автоматически будут вращаться и его дочерние 9 кубов на угол альфа2, который естественно будет равен альфа1. К тому же этот подход сократит нам работу, поскольку не нужно будет искать родительского куба в группе кубок, которые нужно будет вращать.

Осталось только придумать как получить этих 9 кубов для вращения и указать по какой оси будет идти их вращение ( X, Y, Z ), а дальше уже и так знаем
Цитата Сообщение от NIKOLAYY Посмотреть сообщение
Ну разваливающийся кубик думаю легче сделать чем нормально крутящийся
Ну это естественно было бы сложно если физику нужно было писать вручную )
0
 Аватар для Cr0c
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
07.01.2017, 21:38
Цитата Сообщение от NIKOLAYY Посмотреть сообщение
Нужен трехмерный массив 3 x 3 x 3 из 27 элементов.
Нет, нужно 6 массивов 3х3. Кубы, как таковые, не нужны - нужны грани кубов: 4х2 + 4х3 + 1х1 на каждой стороне.
Более удобная абстракция это:
- независимые массивы 3х3 для каждой грани
- ссылка на верхнего+нижнего+правого+левого соседа
Тогда имея грань и направление вращения можно легко повернуть грань и поменять местами соприкасающиеся ряды соседей. Если принять центральную ячейку за [0,0] - то поворот простенький, а соседей по часовой (или против) стрелке менять местами - ссылки на них же есть.
0
 Аватар для wmysterio
295 / 244 / 128
Регистрация: 24.12.2014
Сообщений: 708
08.01.2017, 02:05
Цитата Сообщение от NIKOLAYY Посмотреть сообщение
Нужен трехмерный массив 3 x 3 x 3 из 27 элементов
Ну я знаю как можно получать кубы без использования многомерных массивов. У нас есть родительский объект ( пусть называется "Parent" ), в которого 27 дочерних кубов. От центрального куба (координаты 0,0,0) остальные находятся на расстоянии на -1, 1 или 0 единиц по каждой с трёх осей. Мы можем выбирать все кубы, в которых локальное значения по определённым осям буде -1, 1 или 0. В результате мы получим 9 возможных вариантов для получения ряда из 9 кубов, которых можно будет вращать вместе с центральным кубом. Соответственно у нас будет 9 методов для поиска ряда кубов по каждой оси. Я вот посидел и соорудил такой скрипт:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
using UnityEngine;
using System.Linq;
 
public class Rubik : MonoBehaviour {
 
    public Transform Parent; // родительский объект, который содержит 27 дочерних кубов
    public float OffsetLeft = -1f; // смещения ряда влево относительно осей
    public float OffsetRight = 1f; // смещения ряда вправо относительно осей
    public float DefaultScale = 1f; // масштаб. у меня он изменяется при вращении и приходится его принудительно изменять
 
    private Transform[] allCubes; // храним все дочерние кубы
    private Transform centerCube; // ссылка на центральный куб
 
    void Awake() {
        // --- Устанавливаем в инспекторе родительский объект для кубов или загружаем его ---
        var obj = Instantiate( Resources.Load<GameObject>( "rubik" ), Vector3.zero, Quaternion.identity ) as GameObject;
        obj.name = "RubikParentContainer";
        Parent = obj.transform;
 
        var childCount = Parent.childCount; // получаем количество кубов, хотя можно было и вручную задать
        allCubes = new Transform[ childCount ];
        for( int i = 0; i < childCount; ++i )
            allCubes[ i ] = Parent.GetChild( i ); // заполняем массив всех ссылками на дочерние кубы
        centerCube = FindCubeInCenter(); // ищем центральный куб
    }
 
    void Update() {
            
        // одновременно можно вращать только одну ось!
        TurnCubes( FindCubesByX00(), 90f, 0f, 0f ); // просто для примера
        TurnCubes( FindCubesBy0X0(), -90f, 0f, 0f ); // просто для примера
        TurnCubes( FindCubesBy00X(), 90f, 0f, 0f ); // просто для примера
 
    }
 
    // метод находит центральный куб
    public Transform FindCubeInCenter() { return allCubes.Where( c => c.localPosition == Vector3.zero ).ToArray()[ 0 ]; }
 
    // методы для получения кубов 1-го, 2-го и 3-го ряда по осям X, Y и Z соответственно
    public Transform[] FindCubesByX00() { return allCubes.Where( c => c.localPosition.x == OffsetLeft ).ToArray(); }
    public Transform[] FindCubesBy0X0() { return allCubes.Where( c => c.localPosition.x == 0f ).ToArray(); }
    public Transform[] FindCubesBy00X() { return allCubes.Where( c => c.localPosition.x == OffsetRight ).ToArray(); }
    public Transform[] FindCubesByY00() { return allCubes.Where( c => c.localPosition.y == OffsetLeft ).ToArray(); }
    public Transform[] FindCubesBy0Y0() { return allCubes.Where( c => c.localPosition.y == 0f ).ToArray(); }
    public Transform[] FindCubesBy00Y() { return allCubes.Where( c => c.localPosition.y == OffsetRight ).ToArray(); }
    public Transform[] FindCubesByZ00() { return allCubes.Where( c => c.localPosition.z == OffsetLeft ).ToArray(); }
    public Transform[] FindCubesBy0Z0() { return allCubes.Where( c => c.localPosition.z == 0f ).ToArray(); }
    public Transform[] FindCubesBy00Z() { return allCubes.Where( c => c.localPosition.z == OffsetRight ).ToArray(); }
 
    // метод для вращения ряда кубов
    public void TurnCubes( Transform[] cubeArray, float up_dowd_x, float up_dowd_y, float up_dowd_z ) {
 
        for( int i = 0; i < 9; i++ ) // можно и cubeArray.Length вместо 9
            cubeArray[ i ].parent = centerCube;
 
        centerCube.Rotate( up_dowd_x, up_dowd_y, up_dowd_z );
 
        for( int i = 0; i < 9; i++ ) { // можно и cubeArray.Length вместо 9
 
            // позиция иногда немного изменяется, исправляем таким путём
            cubeArray[ i ].localPosition.Set(
                Mathf.RoundToInt( cubeArray[ i ].localPosition.x ),
                Mathf.RoundToInt( cubeArray[ i ].localPosition.y ),
                Mathf.RoundToInt( cubeArray[ i ].localPosition.z )
            );
 
            // масштаб почему-то увеличивался на 0.0001
            cubeArray[ i ].localScale = new Vector3( DefaultScale, DefaultScale, DefaultScale );
            cubeArray[ i ].parent = Parent;
        }
 
    }
 
}
Все возможные варианты вращения:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// вращение кубов 1 ряда по оси X
TurnCubes( FindCubesByX00(), 90f, 0f, 0f ); // вперёд
TurnCubes( FindCubesByX00(), -90f, 0f, 0f ); // назад
 
// вращение кубов 2 ряда по оси X
TurnCubes( FindCubesBy0X0(), 90f, 0f, 0f ); // вперёд
TurnCubes( FindCubesBy0X0(), -90f, 0f, 0f ); // назад
 
// вращение кубов 3 ряда по оси X
TurnCubes( FindCubesBy00X(), 90f, 0f, 0f ); // вперёд
TurnCubes( FindCubesBy00X(), -90f, 0f, 0f ); // назад
 
 
// вращение кубов 1 ряда по оси Y
TurnCubes( FindCubesByY00(), 0f, 90f, 0f ); // вперёд
TurnCubes( FindCubesByY00(), 0f, -90f, 0f ); // назад
 
// вращение кубов 2 ряда по оси Y
TurnCubes( FindCubesBy0Y0(), 0f, 90f, 0f ); // вперёд
TurnCubes( FindCubesBy0Y0(), 0f, -90f, 0f ); // назад
 
// вращение кубов 3 ряда по оси Y
TurnCubes( FindCubesBy00Y(), 0f, 90f, 0f ); // вперёд
TurnCubes( FindCubesBy00Y(), 0f, -90f, 0f ); // назад
 
 
// вращение кубов 1 ряда по оси Z
TurnCubes( FindCubesByZ00(), 0f, 0f, 90f ); // вперёд
TurnCubes( FindCubesByZ00(), 0f, 0f, -90f ); // назад
 
// вращение кубов 2 ряда по оси Z
TurnCubes( FindCubesBy0Z0(), 0f, 0f, 90f ); // вперёд
TurnCubes( FindCubesBy0Z0(), 0f, 0f, -90f ); // назад
 
// вращение кубов 3 ряда по оси Z
TurnCubes( FindCubesBy00Z(), 0f, 0f, 90f ); // вперёд
TurnCubes( FindCubesBy00Z(), 0f, 0f, -90f ); // назад
Недостаток скрипта в том, что он очень требовательный к точности локальных координат. Приходится всевозможными способами корректировать расположение дочерних кубов после вращения + Вращение происходит мгновенно.

Но в целом работает. Осталось только создать/импортировать нужный объект с 27 дочерними кубами и расположить их в правильных положениях и реализовать "управление", например 18 кнопок, при нажатии которых выполняется какой-то метод TurnCubes.

Я тестировал скрипт на обычных кубах от Unity. Сам кубик-рубик(префаб) в прикреплении. Вращение можно проверить во время выполнения, просто кликнув на последний дочерний элемент.
Вложения
Тип файла: rar rubik_example.rar (4.4 Кб, 29 просмотров)
1
 Аватар для Cr0c
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
08.01.2017, 07:55
Цитата Сообщение от wmysterio Посмотреть сообщение
Ну я знаю как можно получать кубы без использования многомерных массивов
А я не про кубы, а про грани говорил. Я сомневаюсь, что таким вычислением можно узнать уникальную грань любого куба.
Да и зачем привязываться к реальной модели, когда проще абстракцию сваять?
0
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
08.01.2017, 16:35
wmysterio,
Отлично получилось! Тока я не совсем понял как его вращать в коде, он может быть и вращался но так как все стороны кубика рубика были белые - эти повороты на 90 градусов становились невидимыми..(

Прилагаю архив цветного кубик- рубика в удобном для юнити формате .fbx с размерами кубиков такими же как в юнити.
Весь кубик отцентрован по координатам и размерам, имена частей кубика это простые порядковые номера (для упрощения написания кода).
Миниатюры
Как создать кубик рубика в Unity?  
Вложения
Тип файла: rar rubik.rar (11.8 Кб, 27 просмотров)
0
 Аватар для wmysterio
295 / 244 / 128
Регистрация: 24.12.2014
Сообщений: 708
08.01.2017, 19:49
Цитата Сообщение от Cr0c Посмотреть сообщение
Я сомневаюсь, что таким вычислением можно узнать уникальную грань любого куба.
Я это уже сделал и вариант с кубиком, который предложил в прикреплении товарищ NIKOLAYY, точно выбирает необходимый ряд кубов. У меня этот куб прекрасно вращает все необходимые кубы для вращения по любой из оси.

NIKOLAYY, спасибо за куб! Он как влитый вписывается и вращается без без проблем:


Цитата Сообщение от NIKOLAYY Посмотреть сообщение
Тока я не совсем понял как его вращать в коде
Ддля вращения кубов я написал целых 9 методов, которые в моём посте выше(подписал "Все возможные варианты вращения"). Программно его как раз так и нужно вращать. Никаких параметров изменять не нужно - я всё уже там рассчитал. Осталось только написать взаимодействие с пользователем: там кнопочки, вращение камеры относительно куиба-рубика и так далее. Я просто привёл пример как получать требуемые кубы для вращения.

Цитата Сообщение от Cr0c Посмотреть сообщение
Да и зачем привязываться к реальной модели, когда проще абстракцию сваять?
А зачем собственно усложнять?
0
 Аватар для Cr0c
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
08.01.2017, 21:27
Цитата Сообщение от wmysterio Посмотреть сообщение
А зачем собственно усложнять?
Усложнять?
Цитата Сообщение от wmysterio Посмотреть сообщение
для вращения кубов я написал целых 9 методов
а ЭТО - упрощение?
Как теперь узнать цвета на любой произвольной грани куба?
0
 Аватар для wmysterio
295 / 244 / 128
Регистрация: 24.12.2014
Сообщений: 708
08.01.2017, 22:32
Цитата Сообщение от Cr0c Посмотреть сообщение
Усложнять?
Именно.
Цитата Сообщение от Cr0c Посмотреть сообщение
а ЭТО - упрощение?
Я считаю, что да. У нас есть только единый одномерный массив, с которого легко получить любой ряд по любой оси. Это всего 9 простых методов. Можно было написать один с кучей параметров, но это ничего не изменит.
Цитата Сообщение от Cr0c Посмотреть сообщение
Как теперь узнать цвета на любой произвольной грани куба?
Зачем это вообще нужно??? о_0 Может в Вашей идеи это нужно, но за моим вариантом нет никакой зависимости от цвета куба, грани.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.01.2017, 22:32
Помогаю со студенческими работами здесь

Как в Unity создать всплывающее окно в игре?
Подскажите как реализовать всплывающее окно в Unity такого плана ? http://littlebeetle.net/images/geniy7.jpg

Unity 3D (nGUI). Как создать новый динамичный лейбл при нажатии кнопки?
Есть такая вот штука: void OnClick () { // присваиваем значениям val1 и val2 то, что введено в инпутах string val1 =...

Как сделать кубик рубика?
Как сделать в 3дс максе понятно, а дальше нет.

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

кубик рубика
Нужна помощь. Никак не могу найти алгоритма. Мне нужно заштрихованный кубик передвинуть на 3 ряд без нарушения 1 и 2 ряда. Подскажите...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru