Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
Visual C++ Универсальное событие Зарание спасибо за ответ) Есть функция static System::String^ tTime() {return System::DateTime::Now.ToString();} Вопрос в том что бы всё время "часики" обновлялись. Как можно постоянно выполнять эту функцию, или какое событие всё время выполняется? Если глупый вопрос извеняюсь) https://www.cyberforum.ru/ visual-cpp/ thread538226.html Даны числа от 1 до 42, необходимо посчитать все возможные варианты сумм из 6-ти слагаемых заданного числа N? Visual C++
Даны числа от 1 до 42, необходимо посчитать все возможные варианты сумм из 6-ти слагаемых заданного числа N? (слагаемые не повторяться)!!! пример: 1) N=21 1+2+3+4+5+6=21 пример: 2) N=102 9+33+19+14+22+5=102 32+37+6+10+16+1=102 .............. 36+4+16+32+2+12=102
Visual C++ Задано целое число. Верно ли, что утроенная сумма цифр этого числа равна их произведению? https://www.cyberforum.ru/ visual-cpp/ thread538029.html
1. Задано целое число. Верно ли, что утроенная сумма цифр этого числа равна их произведению? 2. Три точки заданы своими координатами на плоскости. Найдите площадь параллелограмма, вершинами которого они являются. 3. Задано N треугольников координатами своих вершин на плоскости. Постройте эти треугольники и раскрасьте их по возрастанию площадей. 4. Нарисуйте радугу, т.е. разноцветные дуги...
Visual C++ Трудности с переводом кода из С++ Builder в Visual Studio 2010. Вот само задание: Дана непустая последовательность различных натуральных чисел. Определить порядковый номер наименьшего из них. В билдере сделал так: #include <vcl.h> #include <string> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- https://www.cyberforum.ru/ visual-cpp/ thread537962.html
СonsoleKeyInfo: необъявленный идентификатор? Visual C++
#include "stdafx.h" using namespace System; int main(array<System::String ^> ^args) { Console::Writeline(L"нажмите комбинацию клавиш, для выхода ескейп"); СonsoleKeyInfo keyPress; do keyPress = Console::ReadKey(true); Console::write(L"вы нажали"); if(safe_cast<int>(keyPress.Modifiers)>0)
Visual C++ Класс Fraction для работы с дробными десятичными числами. Создать класс Fraction для работы с дробными десятичными числами. Число должно быть представлено двумя массивами типа unsigned char: целая и дробная части, каждый элемент — десятичная цифра. Для целой части младшая цифра имеет меньший индекс, для дробной части старшая цифра имеет меньший индекс (десятые — в нулевом элементе, сотые — в первом, и т. д.). Реализовать арифметические операции... https://www.cyberforum.ru/ visual-cpp/ thread537418.html
Visual C++ string в visual c++ 6.0 как объявить массив строк ? https://www.cyberforum.ru/ visual-cpp/ thread537302.html Visual C++ Собственный класс и Формы
Добрый день. Очень прошу помочь, замучался искать и пробовать уже. Ну жно следующее ( и именно так) есть класс (проект->добавить класс), внутри котого простая функция (вычисление квадрата), нужно в преложении Form добавить (ну или написать самому заново) этот класс, затем на Form1 в textBox1 надо вводить значение элемента в той функции и по нажатию в textBox2 высветится результат вычисления....
Visual C++ Нужна помощь! https://www.cyberforum.ru/ visual-cpp/ thread536785.html
Помогите решить. 1. В произвольном массиве поменяйте местами соседние четные и нечетные по номеру элементы. Дополнительные массивы не использовать. 2. Осуществить циклический сдвиг цифр заданного целого числа a на 1 элемент вправо. 3. Написать программу перевода целых чисел из одной системы счисления в другую. Выбор системы счисления производится пользователем. 4. Постройте треугольник по...
Visual C++ Изменение количества столбцов в CListCtrl в CListView. Здравствуйте, есть однодокументное MFC приложение. Фрейм разделен вертикальным сплиттрером на 2 View в стиле проводника: слева CTreeView, справа CListView. В зависимости от выбора элемента в CTreeView изменяется количество доп. столбцов(LVS_REPORT) в CListView. Всего есть 2 вариана 2 и 6 столбцов. Хотелось бы что б было 2 CListCtrl в CListView с нужным количеством столбцов и при выборе элемента... https://www.cyberforum.ru/ visual-cpp/ thread536514.html
двойное действые Visual C++
Как сделать так чтоб окно которое выводится на экран не двигалось при кнопке "любая кнопка", а при нажатии двойного щелчка мыши начало двигаться при нажатии "любой клавиши". Пробовал сделать через SWP_NOMOVE но не вышло, помогите пожалуйста, знаю задание детское но я без понятия что я делаю не так. case WM_RBUTTONDBLCLK: { case WM_KEYDOWN: { int v_key = (int) wParam; ...
Visual C++ функция FindFirstFile() https://www.cyberforum.ru/ visual-cpp/ thread536351.html
Помогите пожалуйста))) Компилятор ругается на строчку: hFind = FindFirstFile(DirSpec, &FindFileData); ошибка: error C2664: 'FindFirstFileW' : cannot convert parameter 1 from 'char ' to 'LPCWSTR' почему функция FindFir
Vanich
0

Спаун объектов в OpenGL - Visual C++ - Ответ 2870423

03.04.2012, 22:54. Показов 792. Ответов 0
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Начал писать движок для небольшой игры и столкнулся с проблемой : как заспаунить объект, отрисовка которого производится в функции. Пробовал сделать таким образом, но объект появляется, но сразу после этого объект, отрисованный до этого стирается.
Модели конвертируются из формата *.3ds.
Вот код:
Инициализация объекта, по циклу рисуется столько объектов, каково число o_ind :
C++
1
2
3
4
5
6
7
8
void InitOb()
{
ob[o_ind].x+=1;
for(int i=0;i<o_ind;i++)
 {
    CreateObject();
 }
}
Отрисовка объекта:

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
void CreateObject()
{
 
glPushMatrix();
int l_index;
 
float SCALE =1;
glEnable(GL_TEXTURE_2D); 
glMatrixMode(GL_MODELVIEW);
 
glTranslatef(ob[o_ind].x,0,0);
 
glBindTexture(GL_TEXTURE_2D, ob[o_ind].id_texture);
glBegin(GL_TRIANGLES);
  for (l_index=0;l_index<ob[o_ind].polygons_qty;l_index++)
    {
        glTexCoord2f( ob[o_ind].mapcoord[ ob[o_ind].polygon[l_index].a ].u,
                      ob[o_ind].mapcoord[ ob[o_ind].polygon[l_index].a ].v);
        glVertex3f( ob[o_ind].vertex[ ob[o_ind].polygon[l_index].a ].x/SCALE,
                    ob[o_ind].vertex[ ob[o_ind].polygon[l_index].a ].y/SCALE,
                    ob[o_ind].vertex[ ob[o_ind].polygon[l_index].a ].z/SCALE);
 
        glTexCoord2f( ob[o_ind].mapcoord[ ob[o_ind].polygon[l_index].b ].u,
                      ob[o_ind].mapcoord[ ob[o_ind].polygon[l_index].b ].v);
        glVertex3f( ob[o_ind].vertex[ ob[o_ind].polygon[l_index].b ].x/SCALE,
                    ob[o_ind].vertex[ ob[o_ind].polygon[l_index].b ].y/SCALE,
                    ob[o_ind].vertex[ ob[o_ind].polygon[l_index].b ].z/SCALE);
        
        glTexCoord2f( ob[o_ind].mapcoord[ ob[o_ind].polygon[l_index].c ].u,
                      ob[o_ind].mapcoord[ ob[o_ind].polygon[l_index].c ].v);
        glVertex3f( ob[o_ind].vertex[ ob[o_ind].polygon[l_index].c ].x/SCALE,
                    ob[o_ind].vertex[ ob[o_ind].polygon[l_index].c ].y/SCALE,
                    ob[o_ind].vertex[ ob[o_ind].polygon[l_index].c ].z/SCALE);
    }
    glEnd();
    glPopMatrix();
     glDisable(GL_TEXTURE_GEN_S);
     glDisable(GL_TEXTURE_2D); 
}
Инициализация OGL

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
void Init()
{
glEnable(GL_DEPTH_TEST);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_COLOR_MATERIAL);
glLightModelf(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);
glEnable(GL_NORMALIZE);
 
if(polyMode)
glPolygonMode (GL_FRONT_AND_BACK, GL_LINE);
 else
glPolygonMode (GL_FRONT_AND_BACK, GL_FILL);
 
glShadeModel(GL_SMOOTH);
 
LoadGLTextures();
 
glClearColor(0.5, 0.5, 0.75, 1);
list=glGenLists(1);
 
glEnable(GL_TEXTURE_2D);
 
for(int i=0;i<10;i++)
{
Load3DS (&ob[i],"trs.3ds");
ob[i].id_texture=LoadBitmap("VES-body2.bmp"); 
}
 
Load3DS (&object1,"sun.3ds");
Load3DS (&object,"trs.3ds");
object1.id_texture=LoadBitmap("sun_tex.bmp");
object.id_texture=LoadBitmap("VES-body2.bmp"); 
 
if (object.id_texture==-1)
    {
        MessageBox(NULL,"Image file: texture not found", "Zetadeck",MB_OK | MB_ICONERROR);
        exit (0);
    }
 
//Выбор режима освещения, true - статический, false - динамический
if (fixlight)
   {
    glLightfv(GL_LIGHT0, GL_POSITION, pos);
    glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, dir);
    glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
    glMaterialf(GL_FRONT, GL_SHININESS, 128.0); 
    printf("Lighting system : static\n");
   }
   else
   { 
       GLfloat light2_diffuse[] = {0.4, 0.7, 0.2};
            GLfloat light2_position[] = {0.0, 0.0, 5.0, 1.0};
            glEnable(GL_LIGHT2);
            glLightfv(GL_LIGHT2, GL_DIFFUSE, light2_diffuse);
            glLightfv(GL_LIGHT2, GL_POSITION, light2_position);
            glLightf(GL_LIGHT2, GL_CONSTANT_ATTENUATION, 0.0);
            glLightf(GL_LIGHT2, GL_LINEAR_ATTENUATION, 0.2);
            glLightf(GL_LIGHT2, GL_QUADRATIC_ATTENUATION, 0.4);
       printf("Lighting system : dynamic\n");
   }
 
glNewList(list, GL_COMPILE);
    
InitOb();
 
DrawSun();
 
DrawOb();
 
    Plane();
glEndList();
}
Отображение на экране

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
void display()
{
POINT Pos;
Screen_x=GetSystemMetrics(SM_CXSCREEN);
Screen_y=GetSystemMetrics(SM_CYSCREEN);
 
GetCursorPos(&Pos);
Yaw += (180 * (Pos.x - Screen_x/2) / Screen_x); 
Pitch += (180 * (Pos.y - Screen_y/2) / Screen_y);
if (holdcursor)
::SetCursorPos (Screen_x/2,  Screen_y/2);
 
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
 
 
 glRotatef (Pitch, 1, 0, 0);
 glRotatef (Yaw, 0, 1, 0);
glTranslatef(X, Y, Z);
 
 
 
glCallList(list);
InitOb();
Sky();
 
glPopMatrix();
glutPostRedisplay();
glutSwapBuffers();
}
C++
1
2
3
4
5
6
 if(key=='N'||key=='n')
 {
 //create object
     o_ind++;
     ob[o_ind].x+=1;
 }
Помогите пожалуйста :0

Вернуться к обсуждению:
Спаун объектов в OpenGL Visual C++
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.04.2012, 22:54
Готовые ответы и решения:

Про спаун мобов в юнити3д и улучшение кода
Здравствуйте, подскажите пожалуйста, как можно сделать чтобы каждую 5 волну выходил Босс на...

OpenGL поворот объектов
Есть горизонтальные жалюзи, выполненные в виде прямоугольников (прямоугольники созданы в цикле -...

Удаление объектов в OpenGL
Доброго дня! Подскажите как можно реализовть удаление объектов в opengl? Скажем у меня есть черный...

Вращение объектов OpenGL
Недавно начала изучать OpenGl.Создала объекты(2 треугольника и прямоугольник) и наложила на...

0
03.04.2012, 22:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.04.2012, 22:54
Помогаю со студенческими работами здесь

файлы 3д объектов существуют в OpenGL?
файлы 3д объектов существуют в OpenGL? Чтоб сразу загрузить а не создавать самому. Такие, как...

Поиск местонахождения объектов в opengl. Qt
Доброго времени суток! Делаю программу в Кьюте, которая строит множество объектов на экране с...

Создание теней для объектов в OpenGL
Прошу помочь или хотя бы подсказать. Во вложении программа, которая рисует комнату с зеркалом...

Как в OpenGL обнаруживать столкновения объектов
Здраствуйте. Подскажите пожалуйста как в OpenGL обнаруживать столкновения объектов или дайте сылку...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru