Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/1: Рейтинг темы: голосов - 1, средняя оценка - 5.00
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3

Совместное создание игры

08.01.2025, 12:45. Показов 46090. Ответов 942
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
 Комментарий администратора 
Обсуждение вынесено из темы Ищу человека для совместного изучения программирования


Цитата Сообщение от Royal_X Посмотреть сообщение
Вот на моем неигровом ноуте последний UE без проблем запускается и не тормозит даже.
ок.
если ТС готов варганить со мной сапера, то я сделаю ещё одну попытку его(пожалуй 4 версию) установить и испытать.

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

и больше ничаво.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.01.2025, 12:45
Ответы с готовыми решениями:

Для чего создан язык С++?
Для чего создан язык С++????

создан массив
создан массив автовладельцев, для каждого известны Ф.И.О., номер, адрес...,Выяснить есть ли автовладельцы у которых имеются больше 1-ой...

Теория игр, массивы
Есть задание (прикрепил его в виде файла к сообщению). Есть решение для 12-ого варианта на BORLANDC, у меня 2-ой. Я изменил в начале...

942
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6312 / 3035 / 1053
Регистрация: 01.06.2021
Сообщений: 11,537
24.02.2025, 16:25
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от XLAT Посмотреть сообщение
но в 3 версии там чуть-чуть поменяли и я, тупо, не хочу парится над выяснениями, что они там поменяли
прочесть всего одну статью и всё https://www.sfml-dev.org/tutor... d/migrate/
0
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
24.02.2025, 16:31  [ТС]
Цитата Сообщение от XLAT Посмотреть сообщение
1. загрузить их в память, чтобы получить доступ к пикселям.
2. нарисовать на экране, чтобы можно было пощупать глазками.
как древние люди сделали первый молоток, если для этого нужен молоток?

короче, нужен начальный стенд:
1. процедура показывающая на экране объекты поданные ей на вход, как аргументы.
2. какой-нить тестовый объект.

1.
"images.h"
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
...
 
namespace myl
{
    ///--------------------------------------|
    /// Карманный рендер, чтобы увидеть obj. |
    ///--------------------------------------:
    template<class T> void show(const T& obj)
    {
        sf::RenderWindow window(sf::VideoMode(800, 600), "myl::show(obj)");
                         window.setFramerateLimit  (50);
 
        sf::View camW  = window.getView();
                 camW.setCenter({0,0});
                 window.setView(camW);
 
        while (window.isOpen())
        {
            for (sf::Event event; window.pollEvent(event); )
            {   if (event.type == sf::Event::Closed) window.close();
            }
            window.clear  ();
            window.draw(obj);
            window.display();
        }
    }
 
...
2.
тестовый объект:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
///---------------------------------|
/// Это прототип ресурса.           |
///---------------------------------:
struct  HeroTest : sf::RectangleShape
{       HeroTest()
        {   setFillColor   (sf::Color(0,128,0));
            setSize        ({700, 450}        );
            setOutlineColor(sf::Color(222,0,0));
            setOutlineThickness           (5.f);
            setOrigin({getSize().x / 2, getSize().y / 2});
        }
 
    TEST
    {   HeroTest  hero ;
        myl::show(hero);
    }
};
main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
...
 
void tests()
{
/// myl::testfoo_getVSizeWH();
/// CastomFilesCargo ::test();
    HeroTest         ::test();
}
 
 
///----------------------------------------------------------------------------|
/// Start.
///----------------------------------------------------------------------------:
int main ()
{   std::cout << "START ...\n\n";
    tests();
    std::cout << "\nFINISHED PROGRAMM!\n";
}
рез:
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6312 / 3035 / 1053
Регистрация: 01.06.2021
Сообщений: 11,537
24.02.2025, 16:32
Цитата Сообщение от XLAT Посмотреть сообщение
по алгоритмам
мой алгоритм склеивает по лучшему совпадению, и склеивает, анализируя соседние ячейки.
Недостатки алгоритма в том, что
- не всегда нужно выбирать лучшее совпадение
- нужно анализировать не только соседние ячейки, а прям все куски в целом
Т.е. тупые простые проверки не подойдут. Нужно тут придумать что-то грандиозное.
Но у меня сейчас очень много дел, нет времени лезть в теорию графов.
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
24.02.2025, 16:35
Цитата Сообщение от Royal_X Посмотреть сообщение
Так а в чем смысл программирования? Создать программу или шашечки?
Так это именно об этом и речь.
Если не умеешь, то будешь кодить на функциях, со всеми вытекающими.

Приведенные тобой примеры были разработаны в процедурной парадигме не по причине "монолитности" ООП.

Глупо начинать такие разговоры когда у тебя нет достаточно знаний и желания. С заведомо стоять на своей позиции.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6312 / 3035 / 1053
Регистрация: 01.06.2021
Сообщений: 11,537
24.02.2025, 16:47
Цитата Сообщение от SmallEvil Посмотреть сообщение
Если не умеешь, то будешь кодить на функциях, со всеми вытекающими.
В этом и ошибка. Почему-то людям кажется, что ООП не используют те, которые не знают, как его использовать. Конечно, такое тоже возможно. Но я привел пример, как от ООП отказываются огромные корпорации, у которые сотни опытных программистов, любой из которых порвет здешнего форумчанина по знаниям и опыту. И они точно отказываются от ООП не потому, что не умеют, а потому что так надо. Карл, так надо для их конкретных проектов.
ООП не является обязательным и неотъемлемым элементом любого С++ кода. Это всего лишь выбор. Программист выбирает те инструменты, которые ему больше подходят. Так же само, он выбирает ООП, а не функциональное программирование, когда ему это нужно, а не он выбирает ООП всегда, боясь, если не будет использовать ООП, то значит другие скажут типа он еще нуб.
В этом и мощь С++, что он позволяет как использовать ООП, так и не использовать.
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
24.02.2025, 16:51
Цитата Сообщение от Royal_X Посмотреть сообщение
В этом и ошибка. Почему-то людям кажется, что ООП не используют те, которые не знают, как его использовать.
Но ООП не является обязательным и неотъемлемым элементом любого С++ кода. Это всего лишь выбор. Программист выбирает те инструменты, которые ему больше подходят. Так же само, он выбирает ООП, а не функциональное программирование, когда ему это нужно, а не он выбирает ООП всегда, боясь, если не будет использовать ООП, то значит он еще нуб.
Но ты же приводил совсем другие аргументы. Видать XLAT заразен.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6312 / 3035 / 1053
Регистрация: 01.06.2021
Сообщений: 11,537
24.02.2025, 16:56
Цитата Сообщение от SmallEvil Посмотреть сообщение
XLAT
Как уже сказал, ООП нужно выбрать тогда, когда это объективно нужно для конкретного проекта.

Но в случае XLAT, проверять, нужно ли ООП или нет в конкретном проекте, не стоит, ибо он тут писал, что у него тут главная цель - это учиться, тренироваться в ООП и прочее.
0
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
24.02.2025, 17:55  [ТС]
Цитата Сообщение от XLAT Посмотреть сообщение
1. загрузить их в память, чтобы получить доступ к пикселям.
2. нарисовать на экране, чтобы можно было пощупать глазками.
пару слов, картинка картинке рознь,
имидж в озу компа, а текстура в памяти гпу.

т.е. за имидж у нас отвечает sf::Image
а за текстуру она самая sf::Texture

а значит так:
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
///-----------------------------------------------------------------------------
/// Класс-расширение для sf::Image.
///-------------------------------------------------------------------- myImage:
struct  myImage : sf::Image
{       myImage(std::string_view _filename) : filename(_filename)
        {   loadFromFile(filename);
        }
 
    std::string filename;
 
    virtual myImage* getThis() { return this; }
 
    ///----------------------------------|
    /// Что уже есть в составе:          |
    /// см. доку на www.sfml-dev.org     |
    ///----------------------------------:
    /// Например,
    sf::Vector2u getSize() const { return sf::Image::getSize(); };
 
    std::string debug() const
    {   return std::format(
            "    filename: \"{}\", Size: [{}, {}]",
            filename,
            getSize().x,
            getSize().y
        );
    }
};
выше пусть так и останется - общее - без унификаций ...
и далее под задачу:
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
using Mat2dPixel = std::vector<std::vector<sf::Color>>;
 
///-----------------------------------------------------------------------------
/// Прототип класса для задачи.
///------------------------------------------------------------------ TaskImage:
struct  TaskImage : myImage
{       TaskImage(std::string_view filename) : myImage(filename)
        {   init_4Sides();
        }
 
    enum eSIDES
    {    UP   ,
         RIGHT,
         DOWN ,
         LEFT
    };
 
    const Mat2dPixel& get(eSIDES Side) const { return _4Sides[Side]; }
 
private:
    ///--------------------------------------|
    /// 4 дампа с пикселями.                 |
    ///--------------------------------------:
    std::array<Mat2dPixel, 4>         _4Sides;
 
    ///--------------------------------------|
    /// Берём пиксели с пазла и укладываем.  |
    ///--------------------------------------:
    void init_4Sides()
    {
        /// TODO ...
    }
 
    ///--------------------------------------|
    /// Тест разраба.                        |
    ///--------------------------------------:
    TEST
    {   FilesCargo     filesCargo;
        TaskImage task(filesCargo.get(".png").front().string());
               ln(task.debug());
    }
};
main.cpp
C++
1
2
3
4
5
6
7
8
9
void tests()
{
/// myl::testfoo_getVSizeWH();
/// CastomFilesCargo ::test();
/// HeroTest         ::test();
 
///
TaskImage        ::test();
...
рез:
Code
1
2
3
4
5
6
7
LOGOVERSION: Test-demo-config::0.0.2
START ...
 
task.debug():
    filename: "./images/00150.png", Size: [32, 32]
 
FINISHED PROGRAMM!
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
24.02.2025, 18:01
Цитата Сообщение от Royal_X Посмотреть сообщение
Как уже сказал, ООП нужно выбрать тогда, когда это объективно нужно для конкретного проекта.
Согласись. Что если ты не владеешь инструментом ООП в достаточной мере. Использовать его для создания гибких систем.
То всегда будешь выбирать процедурное. Потому что оно понятно.
Это никак не отменяет что процедурное лучше.
Давайте ещё goto вспомним.
0
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
24.02.2025, 18:18  [ТС]
далее грузим все картинки, какие найдём:
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
///-----------------------------------------------------------------------------
/// Класс-загрузчик всех выбранных картинок на диске в контексте sf::Image.
///--------------------------------------------------------------- LoaderImages:
struct  LoaderImages : std::vector<TaskImage>
{       LoaderImages()
        {
            FilesCargo filesCargo;
            reserve   (filesCargo.get(".png").size());
 
            for(const auto&  filename : filesCargo.get(".png"))
            {   emplace_back (TaskImage(filename.string()));
            }
        }
 
private:
    std::vector<sf::Texture>* getTextures()
    {   static std::vector<sf::Texture> tt;
        if(!tt.empty())         return &tt;
 
        tt.reserve(size());
 
        for(const auto& image : *this)
        {   tt.emplace_back(sf::Texture());
            tt.back().loadFromImage(image);
        }
        return &tt;
    }
 
    friend struct DrawImage;
    ///--------------------------------------|
    /// Тест разраба.                        |
    ///--------------------------------------:
    TEST
    {   LoaderImages loaderImages;
                   l(loaderImages.size())
                   l(loaderImages[0].debug());
                   l(loaderImages[1].debug());
                   l(loaderImages[2].debug());
    }
};
main.cpp
C++
1
2
3
4
5
6
7
8
9
void tests()
{
/// myl::testfoo_getVSizeWH();
/// CastomFilesCargo ::test();
/// HeroTest         ::test();
/// TaskImage        ::test();
///
LoaderImages     ::test();
...
рез:
Code
1
2
3
4
5
6
7
8
9
LOGOVERSION: Test-demo::0.0.2
START ...
 
loaderImages.size(): 384
loaderImages[0].debug():     filename: "./images/00150.png", Size: [32, 32]
loaderImages[1].debug():     filename: "./images/00255.png", Size: [32, 32]
loaderImages[2].debug():     filename: "./images/00300.png", Size: [32, 32]
 
FINISHED PROGRAMM!
1
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6312 / 3035 / 1053
Регистрация: 01.06.2021
Сообщений: 11,537
24.02.2025, 18:49
Цитата Сообщение от SmallEvil Посмотреть сообщение
Давайте ещё goto вспомним.
только из-за того, что есть дураки, которые говорят, что ни в коему случае нельзя использовать goto в С++, я не стану полностью отказываться от goto.
Например, как выйти из вложенных циклов при выполнении некого условия, когда у нас, допустим, 5 вложенных циклов? break выходит только из одного цикла. Или как выйти не из всех циклов, но вернуться ко второму.
Сразу предупреждаю, что я знаю 1001 способ, как это делать, прям как в восточных сказках, начиная от изменения значений счетчиков, использования исключений, доп. проверок, и до создания лямбда-функций или вообще отдельной функции. Я это к тому, чтобы ты не говорил, что "детишкам легче".
Но ни один из этих способов не лучше goto. Все они хуже: кто-то хуже по производительности, кто-то хуже по читаемости, поскольку усложняется восприятие кода, а кто-то вообще можно рассмотреть как использование микроскопа для забивания гвоздей, например, я имею в виду использование исключений.
Как ни крути, goto в такой задаче лучше справляется. И ничего не произойдёт, если использовать goto.

Кстати, именно так работают и в других языках. Например, в Java тебе любой эксперт скажет, что в такой ситуации нужно пользоваться именованным блоком, который прям очень похож на goto, вот только вместо goto label; там пишут break label;, а сам label нужно писать до циклов, а не после.

Так что прекращай мыслить чужими мыслями.

XLAT, загрузчик проверяет же, чтобы картинки были одинакового размера?
1
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
24.02.2025, 18:58  [ТС]
Цитата Сообщение от XLAT Посмотреть сообщение
2. нарисовать на экране, чтобы можно было пощупать глазками.
далее ляпаем текстуры, вешаем на спрайты и отображаем:
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
///-----------------------------------------------------------------------------
/// Класс готовит массив sf::Image для визуализации.
///------------------------------------------------------------------ DrawImage:
struct  DrawImage : sf::Drawable
{       DrawImage(LoaderImages& _images) : images(_images)
        {   init(myl::getVSizeWH(images.size()).front());
        }
 
private:
    LoaderImages&       images;
    std::vector<sf::Sprite> sp;
 
    ///--------------------------------------|
    /// Расстановка спрайтов на экране.      |
    ///--------------------------------------:
    void init(const sf::Vector2u& sz)
    {
        if(images.empty()) return;
 
        std::vector<sf::Texture>& tt = *images.getTextures();
 
        sp.reserve(tt.size());
 
        const unsigned& SIDEx  = images.front().getSize().x;
        const unsigned& SIDEy  = images.front().getSize().y;
        const unsigned  SIDE2x = SIDEx / 2;
        const unsigned  SIDE2y = SIDEy / 2;
 
        const sf::Vector2u sza{sz.x * SIDEx / 2 - SIDE2x,
                               sz.y * SIDEy / 2 - SIDE2y};
 
        for    (unsigned y = 0; y < sz.y; ++y)
        {   for(unsigned x = 0; x < sz.x; ++x)
            {
                sp.emplace_back(sf::Sprite());
                sp.back().setOrigin  (SIDE2x, SIDE2y);
                sp.back().setTexture (  tt[sz.x  * y + x]);
                sp.back().setPosition(  float(x) * SIDEx - sza.x,
                                        float(y) * SIDEy - sza.y);
            }
        }
    }
 
    ///--------------------------------------|
    /// На рендер.                           |
    ///--------------------------------------:
    virtual void draw(sf::RenderTarget& target,
                      sf::RenderStates  states) const
    {
        for(const auto& sprite : sp) target.draw(sprite);
    }
 
    ///--------------------------------------|
    /// Тест разраба.                        |
    ///--------------------------------------:
    TEST
    {   LoaderImages        loaderImages ;
        DrawImage drawImage(loaderImages);
        SHOW(drawImage);
    }
};
main.cpp
C++
1
2
3
4
5
6
7
8
9
10
void tests()
{
/// myl::testfoo_getVSizeWH();
/// CastomFilesCargo ::test();
/// HeroTest         ::test();
/// TaskImage        ::test();
/// LoaderImages     ::test();
///
 DrawImage        ::test();
...


Цитата Сообщение от Royal_X Посмотреть сообщение
я вот думаю, а действительно ли это надо?
тя щас видно - зачем оно было мя надо?
Вложения
Тип файла: rar pazzle-384-[CB+sources+exe.win64].rar (2.65 Мб, 3 просмотров)
2
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
24.02.2025, 19:16  [ТС]
Цитата Сообщение от Royal_X Посмотреть сообщение
загрузчик проверяет же, чтобы картинки были одинакового размера?
если не уверен в глазомере, то легко добавить метод doVerify()
ключевое слово тут "легко"
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6312 / 3035 / 1053
Регистрация: 01.06.2021
Сообщений: 11,537
24.02.2025, 20:00
Цитата Сообщение от XLAT Посмотреть сообщение
если не уверен в глазомере
ну как бы нет желания 384 кусков проверять на то, нет ли у какого-то куска 32х31 вместо 32х32

Добавлено через 3 минуты
XLAT, кстати, у оригинальной картинки 16 кусков по ширине и 24 по высоте, а у тебя наоборот
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
24.02.2025, 20:00
Цитата Сообщение от Royal_X Посмотреть сообщение
я не стану полностью отказываться от goto
Да, детишкам легче пользоваться goto, чем чем то другим.
И если пришло к тому что хочется использовать goto, значит ты уже облажался.
0
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
24.02.2025, 20:05  [ТС]
Цитата Сообщение от Royal_X Посмотреть сообщение
кстати, у оригинальной картинки 16 кусков по ширине и 24 по высоте, а у тебя наоборот
у правильного билдера нет знания на соотношение сторон,
потому что он и без этих знаний перебьетсясправится...
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6312 / 3035 / 1053
Регистрация: 01.06.2021
Сообщений: 11,537
24.02.2025, 22:48
Цитата Сообщение от SmallEvil Посмотреть сообщение
Да, детишкам легче пользоваться goto, чем чем то другим.
вот только самые тупые детишки, которых я видел на форуме, goto не использовали (и это хорошо, ведь, goto предназначен не для детей). Потому что, они знают, что goto это не то, чем можно понтоваться (ведь, чем тупее, тем больше понтов). Детишки, которых я видел на форуме, любили ассемблерные вставки, массовое использование указателей и ссылок, отказ от STL, использование ООП с огромными утечками. Одним, словом péter plus haut que son cul.

Добавлено через 2 часа 39 минут
Цитата Сообщение от XLAT Посмотреть сообщение
pazzle-384-[CB+sources+exe.win64].rar
респект за то, что делишься кодом. И, кстати, в этот раз даже антивирус не пожаловался на исполняемый файл, все норм запустилось

но вот ни я, ни, наверное, Хулиган, не станем что-то писать на sfml, особенно старой версии.
я вот выбрал Qt неспроста, он позволяет очень быстро сделать красивый ui обычным формошлепством, не тратя время на вещи, не связанные с программированием. А в этом sfml всё нужно ручками делать...
0
place status here
 Аватар для gunslinger
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,026
24.02.2025, 22:54
Цитата Сообщение от XLAT Посмотреть сообщение
gunslinger, прости за VCL


Насчет живости борланда сам не знаю (но для меня он как Ленин жив).
2
24.02.2025, 23:01

Не по теме:

Цитата Сообщение от gunslinger Посмотреть сообщение
Насчет живости борланда сам не знаю
ты главное не покушайся на эталон sfml, вот за это XLAT тебя не простит. Я вот уже попал в опалу.

0
24.02.2025, 23:14

Не по теме:

Royal_X, я не могу покушаться на то, о чем понятия не имею. Или это уже "покушение"?

Я тут пока такое делаю (хотя голова совсем не варит, но вроде справляюсь, однако это не точно):



0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.02.2025, 23:14

Решение матричных игр. Есть у кого такая программа написанная уже...
Требуется программа по решению матричных игр... С выбором размера матрицы и выдачей решения... Может кто смогёт такую сбатцать?

Запуск приложений(старых игр) в оконном режиме
День добрый, подскажите, хотелось бы реализовать свое желание запуска старых игр windo`вых(типа StarCraft) в оконном режиме, с чего начать,...

Алгоритм календаря игр (например в футболе)
необходимо составить календарь футбольных матчей, допустим есть 6 команд char *teams = {&quot;TEAM A&quot;,&quot;TEAM B&quot;,&quot;TEAM...

Движок для игр
Всем привет!!!, хотел узнать возможно ли создать движок на C++ чтобы экспортировать модели из 3ds max а после в самом движке можно было...

Выбор IDE для создания 2D игр
Здравствуйте. Задача сделать пака 2ух – мерные драчки загружая в проект анимацию-как удар(ы) и реакция на удар...(лучше всего секвенцию...


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

Или воспользуйтесь поиском по форуму:
840
Закрытая тема Создать тему
Новые блоги и статьи
После бана на Пикабу не работает авторизация аккаунта с Яндекса.
Hrethgir 09.07.2026
В частности https:/ / auto. ru/ logbook/ zapret-na-vozhdenie-posle-65-let_1cf28789-07b4-4c75-a2f7-4cd4edf9deeb тут хотел оставить комментарий такой Зрите в корень - монополизация на разработку программ. . .
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru