• Как двигать объект по окружности, используя rigidbody?

    Эм... это обычная школьная физика...
    Вычисляем вектор от частицы к точке нажатия и воздействуем силой в этом направлении.
    Ответ написан
  • QT OpenGL как отрисовать линию массивом?

    Копипаст это плохо(если не знаешь, что копипастиш)!
    -glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, 0, 0);
    +glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 0, 0);

    Вы рисуете линии, следовательно, нужно только 2значения из буфера, а не 4. Подозреваю, что в примере рисовали квадраты:)

    З.Ы. Тестировал в OpenTK, все заработало.

    UPD. Извиняюсь за задержку как-то долго я не заходил в linux. Возможно я опоздал, но все равно код будет полезет тем кто прийдет сюда из гугла. Тестировал я ваш код таким образом:
    #include "widget.h"
    
    Widget::Widget(QWidget *parent)
        : QOpenGLWidget(parent)
    {
    }
    GLuint VBO;
    GLfloat arr[4];
    
    void Widget::initializeGL()
    {
        glewExperimental = true;
        glewInit();
        glClearColor(0,0,0,1);
        glColor3f(1,1,1);
    
        arr[0] = -1;
        arr[1] = -1;
        arr[2] = 1;
        arr[3] = 1;
    
        glGenBuffers( 1, &VBO);
        glBindBuffer(GL_ARRAY_BUFFER, VBO);
        glBufferData(GL_ARRAY_BUFFER, sizeof(arr), arr, GL_STATIC_DRAW);
        glEnableVertexAttribArray(0);
    }
    
    void Widget::paintGL()
    {
        glClear(GL_COLOR_BUFFER_BIT);
        glLoadIdentity();
    
        glColor4f(1.0f, 0.0, 0.0, 1.0);
        glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 0, 0);
    
        glDrawArrays(GL_LINES, 0, sizeof(arr));
    }
    
    void Widget::resizeGL(int w, int h)
    {
        glViewport(0,0,w,h);
    }
    Ответ написан
    4 комментария
  • Как вытащить данные из массива анонимных объектов?

    Во общем я знаю как решить эту проблему... но лучше сделайте отдельные классы.

    Используйте Reflection чтобы достать нужные вам данные из анонимный типов, но использовать такую магию для такого случая просто не оправданно.
    Ответ написан
    Комментировать
  • Микширование картинок в Qt: стоит ли использовать OpenGL?

    Выигрыш в производительности будет, это точно.
    Как вариант можно сделать так:
    1. Делаем простую квадратную плоскость(размер не главное, нужно просто правильно выставить камеру).
    2. Делаем шейдер который будет нам смешивать наши изображения(по моим предположениям он будет ну очень простой:))
    3. Рисуем нашу плоскость при помощи шейдера.
    4. Готово.

    Насколько я могу судить из вопроса, то с OpenGL вы работали мало. Для вас это может показаться очень сложным, но я советую попробовать, такой опыт дорого стоит...

    UPD. Вспомнил про QML там это дело со одной стороны немного упроститься(OpenGL + шейдер), а с другой усложниться, если вы не использовали QML раньше.
    Ответ написан
    Комментировать
  • Как продолжить выполнение кода после отображения формы?

    Как вариант можно воспользоваться самим событием Shown, только подписаться на него с первой формы:
    private void button1_Click(object sender, EventArgs e)
            {
                var form = new Form1();
                form.Shown += form_Shown;
                form.Show();
    
            }
    
            void form_Shown(object sender, EventArgs e)
            {
                MessageBox.Show("Test");
            }
    Ответ написан
    Комментировать
  • Входная строка имела неверный формат. В чём ошибка?

    А так:
    double d = double.Parse("1,1");
    Console.WriteLine("Value of d: {0}", d);


    Все дело в локализации которая установлена в операционной системе. Если ru, то запитая, если eng, то точка.
    Ответ написан
    2 комментария
  • Является ли GLUT многозадачной?

    Нет, но можно самостоятельно разделить. Там все находиться в одном цикле, сначала ввод, а потом TimerFunc. Ввод происходит быстро, вот и незаметен.

    Тестовый код
    #include<glut.h>
    
    void Keyboard(unsigned char key, int x, int y)
    {
    	while (true);
    }
    float angle = 0;
    void Draw()
    {
    	angle++;
    	glLoadIdentity();
    	glRotatef(angle, 0,0,1);
    	glClear(GL_COLOR_BUFFER_BIT);
    	glBegin(GL_LINES);
    		glVertex3f(1, 1, 0);
    		glVertex3f(-1, -1, 0);
    	glEnd();
    	glFlush();
    }
    void Time(int)
    {	
    	Draw();
    	glutTimerFunc(0,Time,50);
    }
    void Init()
    {	
    	glClearColor(1.0,1.0,1.0,0.0);  
    	glColor3f(0,0,0);
    	glOrtho(0.0,1,0.0,1, 1,-1); 
    }
    
    int main(int argv, char** argc)
    {	
    	glutInit(&argv, argc);
    	glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); 
    	glutInitWindowPosition(200,200);
    	glutInitWindowSize(400,400);
    	glutCreateWindow("hello");
    	Init();
    	glutKeyboardFunc(Keyboard);
    	glutDisplayFunc(Draw);
    	glutTimerFunc(0,Time,50);
    	glutMainLoop();
    }
    Ответ написан
    Комментировать
  • Что нужно для создания простой игры?

    Зачем для такой игры использовать Unity3D? Почему никто не хочет именно сделать игру, а не собрать из всего готового? Если эту игру делаете для обучения, то я вам не советую использовать никакие движки и фреймворки. Игра простая, ничего сложно в плане оптимизация делать не нужно. Возьмите OpenGL или DirectX(не советую, но должен вспомнить). Да у вас уйдет на это больше времени и сил, но опыт будет намного ценнее и полезней. Будет призрачное понимание того как там все работает и как лучше не делать вовсе.
    Ответ написан
    Комментировать
  • Какие языки программирования наиболее востребованы в игровой индустрии?

    Смотря какие игры и под какую платформу.

    Если знать С++, то можно писать под любую платформу и с максимальной производительностью самих игр, но необходимо провести много времени для изучения самого С++, так как стрелять из него по ногам можно очень долго. Также стоит отметить, что существуют бесплатные средства(движки, либы, и т.д.) под любую из платформ. И что-бы не говорили, в gamedevе он будет востребован еще очень долго, так-как нет другой альтернативы, которая давала бы столько возможностей за относительно малые требования к аппаратуре.

    На С# можно писать тоже, почти под все, но бесплатных инструментов, которые обхватывали все платформы попросту нет. Плюс не совсем ручное управление памятью, что важно для оптимизаций игр, но для маленьких, несложных и кратко-временных(в разработке) игр или прототипов он подходит идеально.

    Есть еще разнообразные связки веб-технологий(HTML+JS, Flash и т.д.), но они в основном предназначены именно для веба.

    Насчет Java я очень сомневаюсь, поскольку её скорость выполнения и требования к оперативной памяти оставляют желать лучшего. А в играх динамическое выделение и освобождение памяти это обычное дело.
    Ответ написан
    Комментировать
  • Как анимируется 3D модели?

    При очень большом желании можно и в Unity сделать, но для этого придумали 3D редакторы. В них будет относительно проще, да и потом, ты сможешь импортировать эти модели и в другие движки без лишних проблем.
    Ответ написан
    Комментировать
  • Как модифицировать текстуру Terrain в Unity3D c помощью скриптов?

    Самый простой правильный способ:
    Тебе нужно брать из текстуры определенные пиксели(GetPixels), закрасить их нужный цвет, потом применить эти изменения на текстуре terrain-а(SetPixels, Flush). Какие пиксели брать можно определить через raycast. Недостатком данного способа являться, то что довольно сложно получить качественные, плавные изменения.

    Качественный способ:
    Кроме текстуры terrain-а нам нужна еще splat текстура и шейдер который будет с ней работать. Делаем вторую текстуру меньшего размера чем исходная и повторяем все так, как в первом способом, но с ней. Так как она меньшего размера при наложении она будет растянута и будет получаться плавный переход. Сам шейдер смотрит на вторую текстуру и где необходимо домешивает к текстуре terrain-а другую текстуру или цвет, это уже как захочется.

    Теперь не правильный качественный и простой способ:
    Берем кучу projector-оторов и размещаем их там где нужно на terrain-е.
    Ответ написан
    Комментировать
  • Assembler'ные вставки кода в C++, как правильно реализовать ?

    Если вы работаете в Visual Studio, то тут все просто:

    int main()
    {
      short a=0;
      __asm
      {
      mov ax, a
      inc ax
      mov a, ax
      }
      cout<<a;  //1
    }


    аналог push/pop

    В библиотеке stl есть уже готовый класс stack.

    P.S. Также можно писать ассемблерный код в отдельном *.asm, а потом его прилинковать к проекту.
    Ответ написан
    1 комментарий
  • Как получить нформацию о флешке, с которого запущена программа?

    Букву флешки можно получить сразу из параметров main:
    #include<stdio.h>
    
    int main(int n, char** args)
    {
    	printf(args[0]);
    }

    Получим путь рабочей директории, розпарсив который узнаем букву.
    Потом уже при помощи WinApi или какой нибудь либы, узнать и все остальное.

    P.S. Пока не знаю как узнать остальное, нужно копать
    Ответ написан
    Комментировать
  • Есть ли возможность организовать общие переменные между некоторыми методами?

    Можно эти переменные и методы поместить в отдельный класс... классы для этого и придуманы. Насколько я могу судить у них должна быть общая идея и предназначение, если возникает такая необходимость.
    Ответ написан
    Комментировать
  • Литература, о том как читать книги?

    Когда я учусь по книжке, сначала пытаюсь прочитать все то, что считаю нужным в данный момент. Потом резко начинаю делать то, ради чего эту книжку я начал читать. Если чего не понятно или появилась новая задача, опять обращаюсь к книге и так по кругу, пока не сделаю чего хочу).

    Пример, хочу сделать лабу по циклам в С++. Читаю раздел книги про циклы, прочитал. Начинаю делать лабу, что-то не понятно что за хрень с циклом for, смотрю в книге. Оказывается нужны массивы, читаю про массивы, делаю, проблема, читаю, делаю и так до готовности.

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

    Можете считать все это бредом, но мне это реально помогало, когда я только начинал и не знал за что хвататься. Сейчас все проще, я знаю чего хочу и просто гуглю это).
    Ответ написан
    Комментировать
  • Как сделать одну иконку в трее и меню для нескольких форм?

    По идеии, можно передать ссылку на первую иконку во вторую форму и пусть она работает с ней, пока первая(форма) закрыта.

    UPD:
    Form1
    using System;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                notifyIcon1.Visible = !notifyIcon1.Visible;
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                Form2 a = new Form2(notifyIcon1);
                Visible = false;
                a.ShowDialog();
                Visible = true;
            }
        }
    }


    Form2
    using System;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form2 : Form
        {
            NotifyIcon ico;
            public Form2(NotifyIcon ico)
            {
                this.ico = ico; 
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                ico.Visible = !ico.Visible;
            }
        }
    }


    Я тестил это так.
    Ответ написан
    3 комментария
  • Почему выбрасывается исключение в mono?

    Возможно в лине у вас настроен другой форман даты или выбран другой регион.
    Ответ написан
    Комментировать