Результаты поиска
| |
Zahidylin_Marat | Дата: Суббота, 23 Июня 2012, 11:17 | Сообщение # 181 | Тема: . |
участник
Сейчас нет на сайте
| Quote (Stalker_Shooter) Zahidylin_Marat, была уже подобная идея, типа "ДАВАЙТЕ САЗДАДИМ ЫГРУ ВСЕМ ФОРУМАМ". Ни к чему хорошему не привело. Можно по подробней, чем закончилось и как выглядило?
Quote (Stalker_Shooter) Нужно, как минимум, выбрать популярную среду разработки. Можно список огласить? То есть ты считашь нужно так: "Кто хочет делать игру на движке "???"?"
|
|
| |
Zahidylin_Marat | Дата: Суббота, 23 Июня 2012, 11:06 | Сообщение # 182 | Тема: . |
участник
Сейчас нет на сайте
| Quote Sleek Хорошо говорить об этом... Создай тему с подобным opensource проектом с открытым исходным кодом для всех. Так, я считаю, будет довольно интересно работать. Если эта тема открыта, я бы хотел набраться опыта работая над ним и помочь другим в этом деле. Но для этого недостаточно только желания. Как я уже говорил создай тему, выложи исходники, и люди сами подключатся к работе.
Кто как считает, нужно создать новую тему, типа "Создане не сложной игры всеми желающими, с открытым исходнгиком", ну или как-то так. Или можно тут прямо начинать?
|
|
| |
Zahidylin_Marat | Дата: Суббота, 23 Июня 2012, 10:37 | Сообщение # 183 | Тема: . |
участник
Сейчас нет на сайте
| Лично я отдаю предпочтение Unity3D, поскольку знаком с ним лучше всего и знаю что тут можно сделать игру. Удобно делается ехе, понятно где и как код писать. Графика конечно храмает. Ну или Game maker - тоже работал. Это две среды где я реально могу что-то сделать (программировать, сложить уровень, и при этом есть рабочий ехе).
|
|
| |
Zahidylin_Marat | Дата: Суббота, 23 Июня 2012, 10:18 | Сообщение # 184 | Тема: . |
участник
Сейчас нет на сайте
| Quote (Stalker_Shooter) Зачем изобретать велоcипед, если для создания игр были придуманы более удобные средства? Привет. Ты предпочитаешь XNA ?
|
|
| |
Zahidylin_Marat | Дата: Суббота, 23 Июня 2012, 10:09 | Сообщение # 185 | Тема: . |
участник
Сейчас нет на сайте
| Всегда приятно такое слышать
Quote (ant0N) для простенькой игры ты выбрал совсем не простенький инструмент biggrin Это точно. Мне предложили и я согласисля попробовать. Но это не окончательное решение. А на чем бы ты предложил делать?
|
|
| |
Zahidylin_Marat | Дата: Суббота, 23 Июня 2012, 09:51 | Сообщение # 186 | Тема: . |
участник
Сейчас нет на сайте
| Вот релизная сборка - надеюсь запуститься: http://rghost.ru/38822876
|
|
| |
Zahidylin_Marat | Дата: Суббота, 23 Июня 2012, 09:44 | Сообщение # 187 | Тема: . |
участник
Сейчас нет на сайте
| Предупреждаю - тут полный бардак. Я раньше работал с директом, но потом оставил. А вчера предложил человек вспомнить, вот я и собрал на скорую руку по кускам из интернета базовое преложение. А какую ошибку выдает? Может это по тому, что я дал Отладочную сборку вместо релизной?
Code
// в этом файле лежат все функции WinAPI #include <windows.h>
// подключаем заголовочный файл DirectX 9 SDK #include <d3d9.h> #include <d3dx9.h> #include <dinput.h>
#pragma comment(lib, "dinput8.lib") #pragma comment(lib, "dxguid.lib") // Для работы с mesh #include <d3dx9mesh.h> #include <math.h>
#pragma comment(lib, "d3d9.lib") #pragma comment(lib, "d3dx9.lib")
char buffer[256]; // Буфер. Хранит состояние клавиатуры. LPDIRECT3D9 pDirect3D = NULL; LPDIRECT3DDEVICE9 pDirect3DDevice = NULL;
// Указатель на Mesh LPD3DXMESH pMesh = NULL; // Указател на буфер mesh-а LPD3DXBUFFER pMeshBuffer = NULL; // Указатель на буфер материалов D3DMATERIAL9 *pMeshMaterial = NULL; // Указатель на буфер текстур LPDIRECT3DTEXTURE9 *pMeshTexture = NULL; // Количество материала и текстур DWORD dwNumber = 0;
DWORD OneTick = 0;
HINSTANCE hInstance;
IDirectInput8* di; // объект DirectInput IDirectInputDevice8* didev; // устройство DirectInput
float dx = 0; float dy = 0; float dz = -100;
// Функция обработки сообщений - прототип LRESULT CALLBACK MainWinProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam); // Функция инициализации Direct3D - прототип HRESULT InitDirect3D(HWND hwnd); // Функция рендеринга Direct3D - прототип void RenderingDirect3D(void); // Функция освобождения захваченных ресурсов - прототип void DeleteDirect3D(void); // Функция инициализации объекта (буфера и индексов вершин) - прототип HRESULT InitMesh(void); // Установка матриц преобоазования - прототип void Matrix(void); // Рисует созданную mesh - прототип void DrawMyMesh(void);
// Функция которая является входной точкой приложения int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hprevinstance, LPSTR lpcmdline, int ncmdshow) {
WNDCLASSEX windowsclass; HWND hwnd; MSG msg; hInstance = hInst;
windowsclass.cbSize = sizeof(WNDCLASSEX); windowsclass.style = CS_DBLCLKS|CS_OWNDC|CS_HREDRAW|CS_VREDRAW; windowsclass.lpfnWndProc = MainWinProc; windowsclass.cbClsExtra = 0; windowsclass.cbWndExtra = 0; windowsclass.hInstance = hInst; windowsclass.hIcon = LoadIcon(NULL, IDI_APPLICATION); windowsclass.hCursor = LoadCursor(NULL, IDC_ARROW); windowsclass.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH); windowsclass.lpszMenuName = NULL; windowsclass.lpszClassName = "WINDOWSCLASS"; windowsclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
if (!RegisterClassEx(&windowsclass)) return 0;
hwnd = CreateWindowEx(NULL, "WINDOWSCLASS", "Загрузка Х-файла с вращением", WS_OVERLAPPEDWINDOW| WS_VISIBLE, 0, 0, 770, 500, NULL, NULL, hInst, NULL); if (!hwnd) return 0;
if (SUCCEEDED(InitDirect3D(hwnd))) { if (SUCCEEDED(InitMesh())) { ShowWindow(hwnd, SW_SHOWDEFAULT); UpdateWindow(hwnd);
ZeroMemory(&msg, sizeof(msg)); while (msg.message != WM_QUIT) { if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { TranslateMessage(&msg); DispatchMessage(&msg); } else RenderingDirect3D(); } } }
return (int)msg.wParam; } // Функция обработки сообщений LRESULT CALLBACK MainWinProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { switch (msg) { // События Создания объектов case WM_CREATE: break;
//Обработка сообщений от элементов управления case WM_COMMAND: break;
//WM_PAINT - для рисования case WM_PAINT: break;
// WM_DESTROY - для закрытия окна case WM_DESTROY: DeleteDirect3D(); PostQuitMessage(0); break; } return (DefWindowProc(hwnd, msg, wparam, lparam)); } // Функция инициализации Direct3D HRESULT InitDirect3D(HWND hwnd) { if (NULL == (pDirect3D = Direct3DCreate9(D3D_SDK_VERSION))) return E_FAIL;
D3DDISPLAYMODE Display; if (FAILED(pDirect3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &Display))) return E_FAIL;
D3DPRESENT_PARAMETERS Direct3DParameter; ZeroMemory(&Direct3DParameter, sizeof(Direct3DParameter)); Direct3DParameter.Windowed = true; Direct3DParameter.SwapEffect = D3DSWAPEFFECT_DISCARD; Direct3DParameter.BackBufferFormat = Display.Format; // Включаем z-буфер Direct3DParameter.EnableAutoDepthStencil = TRUE; // Формат поверхности z-буфера Direct3DParameter.AutoDepthStencilFormat = D3DFMT_D16;
if (FAILED(pDirect3D -> CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hwnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &Direct3DParameter, &pDirect3DDevice))) return E_FAIL; pDirect3DDevice->SetRenderState(D3DRS_LIGHTING, false); // Включаем z-буфер pDirect3DDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
DirectInput8Create(hInstance, // экземпляр приложения DIRECTINPUT_VERSION, // версия DirectInput IID_IDirectInput8, // глобальный идентификатор (COM) (void**)&di, // адрес указателя объекта DirectInput NULL);
di->CreateDevice(GUID_SysKeyboard, // устройство ввода с клавиатуры &didev, // адрес указателя на устройство NULL);
didev->SetDataFormat(&c_dfDIKeyboard); didev->SetCooperativeLevel(hwnd,DISCL_FOREGROUND | DISCL_NONEXCLUSIVE); didev->Acquire();
return S_OK; } // Функция рендеринга Direct3D void RenderingDirect3D(void) { if (pDirect3DDevice == NULL) return; // Очистка z-буфера pDirect3DDevice->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(172, 221, 101), 1.0f, 0);
pDirect3DDevice->BeginScene();
didev->GetDeviceState(sizeof(buffer),buffer);
if (buffer[DIK_RIGHT] & 0x80) dx+=1; if (buffer[DIK_LEFT] & 0x80) dx-=1; if (buffer[DIK_UP] & 0x80) dz+=1; if (buffer[DIK_DOWN] & 0x80) dz-=1; Matrix(); DrawMyMesh(); pDirect3DDevice->EndScene();
pDirect3DDevice->Present(NULL, NULL, NULL, NULL); } // Функция освобождения захваченных ресурсов void DeleteDirect3D(void) { if (pDirect3DDevice != NULL) pDirect3DDevice->Release(); if (pDirect3D != NULL) pDirect3D->Release(); if (pMeshMaterial != NULL) delete [] pMeshMaterial; if (pMeshTexture) { for(DWORD i = 0; i < dwNumber; i++) { if (pMeshTexture[i]) pMeshTexture[i]->Release(); } delete [] pMeshTexture; } if (pMesh != NULL) pMesh->Release(); } // Функция инициализации объекта (буфера и индексов вершин) HRESULT InitMesh(void) { if (FAILED(D3DXLoadMeshFromX("Tiger.x", D3DXMESH_SYSTEMMEM, pDirect3DDevice, NULL, &pMeshBuffer, NULL, &dwNumber, &pMesh))) return E_FAIL;
// Извлекаем свойства материала и названия{имена} структуры D3DXMATERIAL *D3DXMeshMaterial = (D3DXMATERIAL *)pMeshBuffer->GetBufferPointer(); pMeshMaterial = new D3DMATERIAL9[dwNumber]; pMeshTexture = new LPDIRECT3DTEXTURE9[dwNumber]; for (DWORD i = 0; i < dwNumber; i++) { // Копируем материал pMeshMaterial[i] = D3DXMeshMaterial[i].MatD3D; // Установить окружающего свет pMeshMaterial[i].Ambient = pMeshMaterial[i].Diffuse; // Загружаем текстуру if ( FAILED(D3DXCreateTextureFromFile(pDirect3DDevice, D3DXMeshMaterial[i].pTextureFilename, &pMeshTexture[i]))) pMeshTexture[i] = NULL; } // Уничтожаем буфер материала pMeshBuffer->Release();
return S_OK; } // Рисует созданную mesh void DrawMyMesh(void) { for (DWORD i = 0; i < dwNumber; i++) { // Устанавливаем материал и текстуру pDirect3DDevice->SetMaterial(&pMeshMaterial[i]); pDirect3DDevice->SetTexture(0, pMeshTexture[i]); // Рисуем Меш pMesh->DrawSubset(i); } } // Установка матриц преобоазования void Matrix(void) { // Матрица вида D3DXMATRIX MatrixView; //матрица проекции D3DXMATRIX MatrixProjection; D3DXMATRIX MatrixWorld; D3DXMATRIX MatrixTranslation; D3DXMATRIX MatrixRotation;
float BeginAngle; float rps; UINT iTime; float fAngle;
BeginAngle = D3DX_PI/4.0f; rps = 0.5f; iTime = GetTickCount();
if(!OneTick) OneTick = iTime; fAngle = BeginAngle + (iTime - OneTick) * (D3DX_PI * 2.0f * rps / 1000.0f); // поворот тигра
D3DXMatrixRotationY(&MatrixRotation, 20); D3DXMatrixTranslation(&MatrixTranslation, dx, dy, dz); // положение тигра D3DXMatrixMultiply(&MatrixWorld, &MatrixRotation, &MatrixTranslation); pDirect3DDevice->SetTransform(D3DTS_WORLD, &MatrixWorld);
// Изменяем видовую матрицу D3DXMatrixLookAtLH(&MatrixView, // полученная в итоге видовая матрица &D3DXVECTOR3(0.0f, 0.0f, 10.0f), // точка, из которой смотрим &D3DXVECTOR3(0.0f, 0.0f, 0.0f), // куда смотрим &D3DXVECTOR3(0.0f, 1.0f, 0.0f)); // направление верха // Устанавливаем видовую матрицу pDirect3DDevice->SetTransform(D3DTS_VIEW, &MatrixView); // Изменяем матрицу проекции D3DXMatrixPerspectiveFovLH(&MatrixProjection, // полученная итоговая матрица проекции D3DX_PI/4, // поле зрения в направлении оси Y в радианах 1.54f, // соотношения сторон экрана 770/500=1.54 10.0f, // передний план отсечения сцены 200.0f); // задний план отсечения сцены // Устанавливаем матрицу проекции pDirect3DDevice->SetTransform(D3DTS_PROJECTION, &MatrixProjection); }
|
|
| |
Zahidylin_Marat | Дата: Суббота, 23 Июня 2012, 09:33 | Сообщение # 188 | Тема: . |
участник
Сейчас нет на сайте
| Ну я уже и начал. Я и еще один человек хотим попробовать что-то сделать на Директе9, хотя кажется, что сейчас посыпется критика, типа: зачем Директ - он веть очень низкоуровневый и сложный.
Вот сделал окно, и клавишами можно двигаться (если выдает ошибку об отсутствии библиотеки - скорее всего директ нужно обновить). http://rghost.ru/38822807
|
|
| |
Zahidylin_Marat | Дата: Суббота, 23 Июня 2012, 08:36 | Сообщение # 189 | Тема: . |
участник
Сейчас нет на сайте
| Quote (Sleek) Так что пора тебе начать Имеешь ввиду создать отдельную тему и назвать ее "Совместное создание игры с открытым исходным кодом"?
|
|
| |
Zahidylin_Marat | Дата: Пятница, 22 Июня 2012, 19:34 | Сообщение # 190 | Тема: . |
участник
Сейчас нет на сайте
| Quote (Sleek) Создай тему с подобным opensource проектом с открытым исходным кодом для всех. Ты думаешь этой темы не достаточно? Тут начинать что-то делать не стоит?
Quote (Sleek) Если эта тема открыта Не понял что это значит.Добавлено (22.06.2012, 19:34) --------------------------------------------- Мне просто не интересно просматривать неделями видео и в пустую учить что-то, а хочется сразу это применять и видеть в игре.
|
|
| |
Zahidylin_Marat | Дата: Пятница, 22 Июня 2012, 17:33 | Сообщение # 191 | Тема: . |
участник
Сейчас нет на сайте
| Quote (FSO) 2D игру или 3D? Зависит от того, кто захочет делать. Если умеет кто-то делать 3Д модели - почему бы и не сделать 3Д игру. Но тут нужно суметь спрограммировать. 2Д проще, и по этому больше склоняюсь в эту сторону. Взять например 2д конструктор Game maker.
Quote (FSO) Ты же понимаешь, что 3D это не шуточное дело и его сделать за месяц невозможно. Если честно, я не знаю насколько 2Д сложнее делать чем 3Д. Но то, что современные игры делаются по многу лет и большой командой профессионалов - я наслышан.
Quote (FSO) Я думаю если делать игры, то с толком, хорошую игру, в которую будешь играть не ты один и делать до конца Полностью согласен. Когда я говорю "простенькую игру" я не имею ввиду "левую и не интересную игру". Просто говорю, что это будет не GTA 6, а не большая по обьему, но интересная игра. Вообще, это все разговоры и напоминают они мне вот что: человек решил нарисовать что-то очень классное, но никогда не держал кисточку до этого, и вот сидит он и обсуждает, как он будет рисовать, что это будет шедевр и так далее, но когда начинает рисовать - получаются кривые, неуклюжие мазки - опыта веть нету. По этому я предлагаю новичкам просто брать и делать вместе - набираться опыта (самому ведь абсолютно нету стимула делать).
|
|
| |
Zahidylin_Marat | Дата: Пятница, 22 Июня 2012, 16:04 | Сообщение # 192 | Тема: . |
участник
Сейчас нет на сайте
| Quote (FSO) а какую примерно игру хочешь? Не сложную, на несколько уровней. Варианты: 1. Бегать стрелять в человечков(монстров) имея при этом навык стрельбы, который можно улучшать. Можно шуточно сделать - пушка стреляет помидорами. 2. Сделать карту, на которой будет разбросан ресурс (серебро) и нужно все его собрать, при этом доступны разные улучшения, после которых увеличиваться скорость сборки. 3. Бродилку, где нужно исследовать какое-то место и найти все предметы. 4. Куча других вариантов есть.Добавлено (22.06.2012, 16:04) ---------------------------------------------
Quote (FSO) Вот вам обычная игра созданая на Visual Basic без всяких движков - Типа NFS Не плохо
|
|
| |
Zahidylin_Marat | Дата: Вторник, 19 Июня 2012, 12:09 | Сообщение # 193 | Тема: . |
участник
Сейчас нет на сайте
| Quote (VBMaster96) Мы с друзьями писали, и даже очень не плохо! У вас сохранились эти игры? Было бы интересно посмотреть.
|
|
| |
Zahidylin_Marat | Дата: Вторник, 19 Июня 2012, 11:00 | Сообщение # 194 | Тема: . |
участник
Сейчас нет на сайте
| Quote (Тимур3) Да сайт твоей игры не такой крутой. Это по началу был сайт игры и был немного другой. А сейчас это так - разместил пару нужных мне статей. Из описания убрал сайт, а то не хорошо получается.
|
|
| |
Zahidylin_Marat | Дата: Понедельник, 18 Июня 2012, 20:56 | Сообщение # 195 | Тема: . |
участник
Сейчас нет на сайте
| Quote (Bassel) простенькие игры лучше самому делать,как раз навык рисования программирования повысишь smile Самому скучно
Quote (mobipak) Очень хороший сюжет к игре написал. Самый лучший сценарист на GcUp-е :lol: Это ты про какой сюжет?
Quote (mobipak) И закрывал. Зачем писать о том, что ты не умеешь? Я думаю стоит писать.
Сообщение отредактировал Zahidylin_Marat - Понедельник, 18 Июня 2012, 20:56 |
|
| |
Zahidylin_Marat | Дата: Понедельник, 18 Июня 2012, 15:58 | Сообщение # 196 | Тема: . |
участник
Сейчас нет на сайте
| .
Сообщение отредактировал Zahidylin_Marat - Воскресенье, 30 Сентября 2012, 15:30 |
|
| |
Zahidylin_Marat | Дата: Суббота, 19 Мая 2012, 08:36 | Сообщение # 197 | Тема: . |
участник
Сейчас нет на сайте
| Quote (pixeye) Места на жестком диске не хватило? или незнал где в ворде кнопка save? В гугл докс так вообще автоматическое сохранение... Ну или может быть ты пробывал так ничтожно мало, что действительно ничего нет. Но тут такое дело. Один раз еще не попытка.
Просто надоело этим заниматься и я все по удалял. А потом решил предложить свои услуги только по написанию текстов.Добавлено (19.05.2012, 08:33) ---------------------------------------------
Quote (Grimuare) помню писал ему. он мне недели полторы голову морочил, так нихрена и не сделал
Что значит голову морочил? Это вы мне писали на счет истории про Ад?Добавлено (19.05.2012, 08:36) ---------------------------------------------
Quote (theplague) Zahidylin_Marat, поверь. Сюжет можно и самому написать. Черпать вдохновение из книг, фильмов. А конструктивные диалоги, при хорошем сюжете - это вообще не проблема.
Может быть.
|
|
| |
Zahidylin_Marat | Дата: Суббота, 21 Апреля 2012, 20:40 | Сообщение # 198 | Тема: . |
участник
Сейчас нет на сайте
| .
Сообщение отредактировал Zahidylin_Marat - Воскресенье, 30 Сентября 2012, 15:29 |
|
| |
Zahidylin_Marat | Дата: Понедельник, 12 Марта 2012, 11:01 | Сообщение # 199 | Тема: кенк |
участник
Сейчас нет на сайте
|
Сообщение отредактировал Zahidylin_Marat - Воскресенье, 30 Сентября 2012, 15:29 |
|
| |
Zahidylin_Marat | Дата: Понедельник, 12 Марта 2012, 10:51 | Сообщение # 200 | Тема: !! |
участник
Сейчас нет на сайте
| !!!
Сообщение отредактировал Zahidylin_Marat - Понедельник, 12 Марта 2012, 11:01 |
|
| |
|