Сообщения на форуме пользователя Andrey (210 стр.)
синтаксис с++ | 8 авг. 2005 | 19:23 | #12 |
---|
>хех. ты назвал одни из самых баговых и не совместимых со стандартом компиляторов ))
скорей всего Visual C++ 6.0?
кстати пробовал на Visual C++ .Net 2003
этот ка-бы близко к стандарту приблизился...
Вопросы по использованию Lua для организации игровой логики. | 8 авг. 2005 | 19:15 | #0 |
---|
попробовал вникнуть в Lua API.
Есть несколько вопросов и мои идею по их решению:
1) Допустим имеется иерархия игровыхклассов описывающих конкретные игровые объекты.Как организовать поведение этих обектов посредством скриптов? вот что я думаю:
а) создать уникальную переменную static char* buffer для набора конкретных игровых объектов; в нее загрузить файл скрипта описывающий поведение конкретного объекта.
б) для каждого объекта инициализировать lua_State с уникальным загруженным скриптом.
какой вариант более быстрый и правильный?
2) Какие задачи стоит переложить на скрипт и какие выполнять их в коде на C/C++ касательно работы игровой логики.
конкретные примеры:
-изменение матрицы преобразований объекта;
-изменение состояния объекта скорость энергия очки и т.д.
-взаимодествие объектов;
3) Реализация игровых событий. Как известно в движке может присутвовать класс EventsManager типа менеджер событий.
события могут быть разные события от клавиатуры и мыши например KeyEvent и MouseEvent будут обрабатываться в самом движке, с помощью этого класса. Например возникло столкновение 2 игровых объектов как это обрабатывать? с помощью класса EventsManager или посредством скриптов?
пример:
a) событие CollisionEvent предполагается это класс наследуемый от Event, тогда вариант обработки на C/C++ б) метод eventsMamager->ProcessCollision может вызвать соответствующий скрипт для обработки столкновений...
какой из этих вариантов правильный?
Примеры кода не надо, мне нужна идея и советы кто как это сделал или как будет правильней, дабы не наступать на грабли и не реализовывать тормозной глюченный код...
Спасибо всем заранее. С уважением Андрей.
Правка: 8 авг. 2005 19:17
OpenGL & Direct3D | 8 авг. 2005 | 18:56 | #303 |
---|
я думаю надо знать оба графических API и Direct3D и OpenGL.
В любом случае хуже от того не будет будет, квалификация у программиста в этом случае будет выше.
в обоих API есть свои достоинства и недостатки...
Вопросы про организации стека матриц в Direct3D(ID3DXMatrixStack).Нужен аналог OpenGL | 8 авг. 2005 | 18:47 | #4 |
---|
Спасибо коллега!!!
если не будет работать обращусь...
Чем открыть wal (текстуры quake 2)? | 8 авг. 2005 | 18:37 | #2 |
---|
попробуй DevIL(OpenIL)
синтаксис с++ | 8 авг. 2005 | 18:25 | #9 |
---|
>какой компилятор?
Пробовал Visual C++ 6.0 и Visual C++ .Net 2002
>в gcc твой пример вылетел с сообщением
>This application has requested the Runtime to ternimate it in an unusual way.
видать кто-то из этих компиляторов не держит стандарт...
Сопаставление массивов констант для альфа-блендинга в OpenGL и Direct3D | 5 авг. 2005 | 19:48 | #9 |
---|
Больше нет вариантов?
синтаксис с++ | 5 авг. 2005 | 19:39 | #5 |
---|
хм...
да ну :) ?
а как ты это объяснишь?
#include <iostream> using namespace std; void SomeFunction() throw(int, float); void SomeFunction() throw(int, float) { throw "Exception"; } int main(int argc, char* argv[]) { try { SomeFunction(); } catch(...) { cout << "Exception" << endl; getchar(); } return 0; }
Правка: 5 авг. 2005 19:44
Вопросы про организации стека матриц в Direct3D(ID3DXMatrixStack).Нужен аналог OpenGL | 5 авг. 2005 | 18:43 | #2 |
---|
Привет коллега!!!
если это запись:
pMatrixStack->Push(); pMatrixStack->LoadMatrix( &matrix );
спасибо попробую!!!!!
Странная проблема со смешанными массивами(glInterleavedArrays) в OpenGL | 5 авг. 2005 | 18:34 | #18 |
---|
>Ну тогда мистика какая-то...
ага особенно если еще 11 пост посмотреть
>Убедись, что текстурирование отключено, что все остальные клиентские вершинные массивы выключены, что включен >только вершинный (кстати, я мальца описАлся, там glEnableClientState(GL_VERTEX_ARRAY), а не то, что я написал, ARRAY, а не >POINTER).
а это точно надо почему тогда работает в 11 посте без этого?
Странная проблема со смешанными массивами(glInterleavedArrays) в OpenGL | 5 авг. 2005 | 18:15 | #16 |
---|
>Может быть, выравнивание в структуре?
sizeof(Vector3D) = 12 т.е. 3 * sizeof(float)
>Кстати, ты не забыл поставить glEnableClientState(GL_VERTEX_POINTER)???
пробовал с ним и без него...
синтаксис с++ | 5 авг. 2005 | 18:04 | #3 |
---|
>Если какая-нибудь функция внутри данной сгенерирует недопустимое исключение, программа будет тут же убита.
а если я вызов функции окружу:
try { SomeFunc(...); // } catch(...) { // }
Вопросы про организации стека матриц в Direct3D(ID3DXMatrixStack).Нужен аналог OpenGL | 4 авг. 2005 | 19:40 | #0 |
---|
Нужно реализовать стек матриц в Direct3D.
т.е. чтобы люой объект мог вызвать
render -> PushViewMatrix();
//переместится повернутся и т.д.
render -> PopViewMatrix();
для OpenGL это просто glPushMatrix()/glPopMatrix() перед этим glMatrixMode(GL_MODEL_VIEW);
в Direct3D есть интерфейс ID3DXMatrixStack вот его я и попробовал использовать
там есть методы сохранит и восстановит только что они сохраняют?
я вот не пойму как его использовать?
допустим как сохранить текущую матрицу вида?
или текущую матрицу проекции в Direct3D?
Если есть другие варианты то можно предлоожить
Спасибо все заранее.
С уважением Андрей.
Странная проблема со смешанными массивами(glInterleavedArrays) в OpenGL | 4 авг. 2005 | 19:12 | #12 |
---|
Больше нет идей?
Проблема с поворотом камеры при переходе через 90 градусов, камера переворачивается | 4 авг. 2005 | 19:09 | #16 |
---|
>А если ты уже смотриш ровно вверх, то вектор projX0Z=(0, 0) и потому угол между ним и ... вичесляетса неправильно!
ты посмотри внимательно на мой код...
предварительно сохраняем старое значение вектора;
меняем вектор и проверяем если нас это устраивает то все ок, иначе записываем сохраненное значение
этот подход не допустит ситуации которую ты предположил...
>Или я опять тебя не понял?
видать невнимательно проанализировал мой код...
Executor
>Можно подробнее, что в Д3Д иначе? Я его не юзаю просто, интересно стало...
1) У одного API правосторонняя система координат у другого левосторонняя
2) у одного API матрица записыватся по строкам у другого по столбцам
usvv
Спасибо разберусь и попробую....