ForSer , "будет ли правильно пытаться реализовать" - нет. Аргументов не привожу, т.к. тебе же хочется просто изучить питон поглубже. Так что, от попытки отговаривать тебя никто не станет.
"Или лучше учить для такой цели какой то из низкоуровневых языков программирования?" - стоп, ты все таки против правил игры пойти хочешь или просто получше питон изучить?
"насколько это сложная задача если учесть" - начни с IG бота для обычного сапера.
"мне же интересно возможно ли читать данные из памяти процесса" - Люди это даже на AutoIt делают. О продуктивности этого занятия я рассуждать не берусь.
Noortvel , нужно больше информации.
Дай краткое определение типов и функции GetAnimInstance. Так же будет полезным увидеть окружение и обоснование необходимости приведения типа.
Nexeon , XCode :)
Маршалинг типов из ObjC/Swift в C++ и обратно делается куда проще, чем в JNI/JNA/Jni++. Clang умеет сплетать код высокого и низкого уровней в красивую конструкцию. Поэтому для разработки на C++ для iOS кроме XCode толком больше ничего не надо.
PeroPero , неа, не так. :)
Давай на примере с этим самым квадратом и этой анимацией. Скажем, за 1 секунду квадрат перемещается на 10 точек по оси X.
Это будет означать таймлайн ровно с одним ключевым кадром. Таймлайн измеряется в относительных величинах: 0.0 - это начало, 1.0 - это конец вне зависимости от времени анимации. Время задается отдельно от таймлайна и спокойно может меняться прямо в рантайме.
На таймлайне будет стоять ровно один ключевой кадр - в 1.0 в инструкцией вида "хочу быть смещен на (10.0, 0.0, 0.0)".
Представление данных может быть примерно таким: Таймлайн - это структура из вещественного числа (длительность анимации) и вектора ключевых кадров. Ключевой кадр - это структура из вещественного числа (относительное время начала) и инструкции в виде математического вектора.
Когда ты запускаешь анимацию, ключевой кадр в 0.0 говорит тебе задать начальное состояние объекта. Дальше ты считаешь время анимации, на каждом тике обновления считаешь точное относительное время анимации и на таймлайне всегда смотришь на следующий по таймлайну кадр. В процессе анимации выполняется ближайший следующий ключевой кадр.
Т.е. ты идешь по таймлайну из нашего примера, смотришь на единственный и последний кадр, берешь вектор смещения, множишь его на дельту времени с прошлого тика обновления и прибавляешь к трансформации квадрата.
Чаще всего анимации выглядят так, чаще всего в них хранятся инструкции преобразования в локальной системе координат анимируемого объекта. Чаще всего SRT трансформацию раскладывают по именованным таймлайнам и применяют к объекту в правильном порядке.
nazandr , вот бы еще знать, что же скрывается за этой туманной завесой терминов "раюотает" и "не работает".
Что в этих словах кроется? Исклюение? Неправильная работа функции? Разверзнутые небеса с армией ангелов?
Я подозреваю что это из-за того что в памяти находятся две копии данных, но адреса то у них разные.
Не в этом. Статическая переменная внутри образа приложения размечается на пространстве его образа, статическая переменная внутри динамической библиотеки размечается внутри ее образа. Это две разные переменные с точки зрения памяти.
Проблема в другом.
Тебе не удалось собрать минимальный воспроизводящий пример именно потому что проблема не в этих std::string-ах, а в том, как, может быть, с ними работают элементы статической библиотеки.
Тут полный полет фантазии, все ответы есть только у тебя, т.к. только у тебя имеется исходный код.
hound406 , пара замечаний.
Первое, суть вопроса вообще не проглядывается. Согласно текущей постановке вопроса, на него ответить в состоянии только ты. Т.е. только ты можешь принять решение о дизайне базового класса исходя из известной только тебе ситуации.
Второе, согласно твоему ответу Лорри, ты хочешь реализовать полиморфное конфигурирование. Посмотри в сторону декомпозиции и компонентного подхода. Так, может оказаться, тебе будет удобнее.
synapse_people , глянь вот на это : https://github.com/mxgmn/WaveFunctionCollapse
Думаю, тебе будет полезно почитать этот код.
А вообще, шум Перлина - не тот механизм чтобы реки создавать. Клеточные автоматы, Square-Diamond и волновой алгоритм (поиск в ширину) куда удобнее будут.
NDK - это не средство разработки ПО на Android. NDK - это средство реализации критичных к производительности участков кода. У NDK есть JNI и возможность запросить выполнение кода высокого уровня, но в более-менее большой задаче с JNI можно легко захлебнуться.
Скорее всего у тебя ошибка в выборе инструмента разработки.
Дмитрий , за то каждый из 2-4-8 процессов компилятора еще по 2 может скушать.
Я работаю в MSVC++2015. В сторону i3-i5 не смотрю в силу специфики моей работы. На борту только топовые модели i7 большим разгоном и от 16ГБ топовой оперативы.
Так вот, сборка моих проектов задействует все 8 ядер на 100% и до 12ГБ оперативы. В спокойное время у меня работает несколько инстанций MSVS вместе с Android Studio, что вместе с системой и рутиной потребляет от 5ГБ оперативы.
Такие дела...
Tash1moto , ты лучше опиши цели твоего интереса. Если цель "просто интересно" - то ответ: "Такого в C++ нет".
Поэтому... Определи свои цели в своем вопросе.
"Или лучше учить для такой цели какой то из низкоуровневых языков программирования?" - стоп, ты все таки против правил игры пойти хочешь или просто получше питон изучить?
"насколько это сложная задача если учесть" - начни с IG бота для обычного сапера.
"мне же интересно возможно ли читать данные из памяти процесса" - Люди это даже на AutoIt делают. О продуктивности этого занятия я рассуждать не берусь.