GameDev.ru
/ GameDev.ru / Пользователи / Andrey / Сообщения на форуме пользователя Andrey (210 стр.)

Сообщения на форуме пользователя Andrey (210 стр.)

синтаксис с++8 авг. 200519:23#12
CyberZX
>хех. ты назвал одни из самых баговых и не совместимых со стандартом компиляторов ))
скорей всего Visual C++ 6.0?
кстати пробовал на Visual C++ .Net 2003
этот ка-бы близко к стандарту приблизился...
Вопросы по использованию Lua для организации игровой логики.8 авг. 200519:15#0
Привет всем!
попробовал вникнуть в Lua API.
Есть несколько вопросов и мои идею по их решению:
1) Допустим имеется иерархия игровыхклассов описывающих конкретные игровые объекты.Как организовать поведение этих обектов посредством скриптов? вот что я думаю:
а) создать уникальную переменную static char* buffer для набора конкретных игровых объектов; в нее загрузить файл  скрипта описывающий поведение конкретного объекта.
б) для каждого объекта инициализировать lua_State с уникальным загруженным скриптом.
какой вариант более быстрый и правильный?
2) Какие задачи стоит переложить на скрипт и какие выполнять их в коде на C/C++ касательно работы игровой логики.
конкретные примеры:
-изменение матрицы преобразований объекта;
-изменение состояния объекта скорость энергия очки и т.д.
-взаимодествие объектов;
3) Реализация игровых событий. Как известно в движке может присутвовать класс EventsManager типа менеджер событий.
события могут быть разные события от клавиатуры и мыши например KeyEvent и MouseEvent будут обрабатываться в самом движке, с помощью этого класса. Например возникло столкновение 2 игровых объектов как это обрабатывать? с помощью класса EventsManager  или посредством скриптов?
пример:
a) событие CollisionEvent предполагается это класс наследуемый от Event, тогда вариант обработки на C/C++
class Event {
public:
virtual void Process(const EventsManager& eventsManager) = 0;
...
};
class CollisionEvent : public Event {
virtual void Process(const EventsManager& eventsManager)
{
eventsMamager->ProcessCollision(... //вызываем соответвующий метод и даем ему данные для обработки...
}
}

б) метод eventsMamager->ProcessCollision  может вызвать соответствующий скрипт для обработки столкновений...
какой из этих вариантов правильный?

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

Спасибо всем заранее. С уважением Андрей.

Правка: 8 авг. 2005 19:17

OpenGL & Direct3D8 авг. 200518:56#303
ого раздули холивар!!!!!!! :)))))
я думаю надо знать оба графических API и Direct3D и OpenGL.
В любом случае хуже  от того не будет будет, квалификация у программиста в этом случае будет выше.
в обоих API есть свои достоинства и недостатки...
Вопросы про организации стека матриц в Direct3D(ID3DXMatrixStack).Нужен аналог OpenGL8 авг. 200518:47#4
kronos_vano
Спасибо коллега!!!
если не будет работать обращусь...
Чем открыть wal (текстуры quake 2)?8 авг. 200518:37#2
Dgut
попробуй DevIL(OpenIL)
синтаксис с++8 авг. 200518:25#9
CyberZX
>какой компилятор?
Пробовал Visual C++ 6.0 и Visual C++ .Net 2002
>в gcc твой пример вылетел с сообщением
>This application has requested the Runtime to ternimate it in an unusual way.
видать кто-то из этих компиляторов не держит стандарт...
синтаксис с++5 авг. 200519:39#5
CyberZX
хм...
да ну :) ?
а как ты это объяснишь?
#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).Нужен аналог OpenGL5 авг. 200518:43#2
kronos_vano
Привет коллега!!!
если это запись:
pMatrixStack->Push();
pMatrixStack->LoadMatrix( &matrix );
то потом можно и восстановить? (методы есть Pop и еще что-то посмотрю SDK)
спасибо попробую!!!!!
Странная проблема со смешанными массивами(glInterleavedArrays) в OpenGL5 авг. 200518:34#18
Jackis
>Ну тогда мистика какая-то...
ага особенно если еще 11 пост посмотреть
>Убедись, что текстурирование отключено, что все остальные клиентские вершинные массивы выключены, что включен >только вершинный (кстати, я мальца описАлся, там glEnableClientState(GL_VERTEX_ARRAY), а не то, что я написал, ARRAY, а не >POINTER).
а это точно надо почему тогда работает в 11 посте без этого?
Странная проблема со смешанными массивами(glInterleavedArrays) в OpenGL5 авг. 200518:15#16
Jackis
>Может быть, выравнивание в структуре?
sizeof(Vector3D) = 12 т.е. 3 * sizeof(float)
>Кстати, ты не забыл поставить glEnableClientState(GL_VERTEX_POINTER)???
пробовал с ним и без него...
синтаксис с++5 авг. 200518:04#3
cppguru
>Если какая-нибудь функция внутри данной сгенерирует недопустимое исключение, программа будет тут же убита.
а если я вызов функции окружу:
try {
SomeFunc(...);
//
}
catch(...) {
//
}
то программа не убьется...
Вопросы про организации стека матриц в Direct3D(ID3DXMatrixStack).Нужен аналог OpenGL4 авг. 200519:40#0
Привет всем!!!
Нужно реализовать стек матриц в Direct3D.

т.е. чтобы люой объект мог вызвать

render -> PushViewMatrix();
//переместится повернутся и т.д.
render -> PopViewMatrix();
для OpenGL это просто glPushMatrix()/glPopMatrix() перед этим glMatrixMode(GL_MODEL_VIEW);
в Direct3D есть интерфейс  ID3DXMatrixStack вот его я и попробовал использовать
там есть методы сохранит и восстановит только что они сохраняют?
я вот не пойму как его использовать?
допустим как сохранить текущую матрицу вида?
или текущую матрицу проекции в Direct3D?
Если есть другие варианты то можно предлоожить

Спасибо все заранее.
С уважением Андрей.

Проблема с поворотом камеры при переходе через 90 градусов, камера переворачивается4 авг. 200519:09#16
Nazik
>А если ты уже смотриш ровно вверх, то вектор projX0Z=(0, 0) и потому угол между ним и ... вичесляетса неправильно!
ты посмотри внимательно на мой код...
предварительно сохраняем старое значение вектора;
меняем вектор и проверяем если нас это устраивает то все ок, иначе записываем сохраненное значение
этот подход не допустит ситуации которую ты предположил...
>Или я опять тебя не понял?
видать невнимательно проанализировал мой код...
Executor
>Можно подробнее, что в Д3Д иначе? Я его не юзаю просто, интересно стало...
1) У одного API правосторонняя система координат у другого левосторонняя
2) у одного API матрица записыватся по строкам у другого по столбцам

usvv
Спасибо разберусь и попробую....

Следующие темы >>

2001—2012 © GameDev.ru — Разработка игр