Пятница, 10 Мая 2024, 23:53

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Форум игроделов » Записи участника » ezhickovich [2927]
Результаты поиска
ezhickovichДата: Суббота, 05 Марта 2011, 20:47 | Сообщение # 161 | Тема: Waterfall game engine
[Великий и могучий хозяинъ]
Сейчас нет на сайте
Ну вот и снова я...
За неделю успел сделать совсем немного, а именно: простенькая система управления приложением + ещё более простая система для работы с окошком...
Всего на это (большей частью на отладку) потратил около 3 часов... (слава моим кривым рукам)

Пример кода на движке (ну это просто точка входа):

Code
//--#--------------------------------------------------------------------
//    File: Main.cpp
//    Description: Just a main enter point
//--#--------------------------------------------------------------------
#include <WTFE_headers\Application.h> // Application holder class header
#include <WTFE_headers\Core.h> // Waterfall engine core module

#include <WTF_headers\Application.h> // Application class header

// Main game enter point
class WTF_Main
{
public:

   static int Main ()
   {
    try
    {
     // Creating application
     WTF_Application app;
     WTFE_AppControl appControl(&app);

     // Running application
     if (!appControl.Start ()) throw 0;
    }
    catch (...)
    {
     LogErrorMessage ("Some error occured!\nAnd game will close now...");
     return 0;
    }
    return 0;
   }
};

// Registering main function
WTFE_ApplicationHolder application_inst (&WTF_Main::Main);

Что мы тут видим (немного поясню код, хотя я думаю, что по комментариям в коде всё и так понятно):

Code
#include <WTFE_headers\Application.h> // Application holder class header
#include <WTFE_headers\Core.h> // Waterfall engine core module

Как не сложно догадаться - это инклуды хедеров движка (по комментариям ясно каких)

Code
#include <WTF_headers\Application.h> // Application class header

Это хедер с классом самого приложения (в нём и содержится всё тело игры)

Code
class WTF_Main

Тока входа отделена в отдельный класс, мне кажется так удобней...

Code
static int Main ()
{
   try
   {
    // Creating application
    WTF_Application app;
    WTFE_AppControl appControl(&app);

    // Running application
    if (!appControl.Start ()) throw 0;
   }
   catch (...)
   {
    LogErrorMessage ("Some error occured!\nAnd game will close now...");
    return 0;
   }
   return 0;
}

Сама точка входа, где app - экземпляр класса, реализующего интерфейс WTFE_AppInterface:
Code
class WTFE_API WTFE_AppInterface
{
public:

   virtual bool onLoad () = 0; // Load event
   virtual bool onDraw () = 0; // Draw event
   virtual bool onUpdate () = 0; // Update event
   virtual void onQuit () = 0; // Quit event
};

Очень важно не забыть "зарегистрировать" точку входа, что мы и делаем:

Code
// Registering main function
WTFE_ApplicationHolder application_inst (&WTF_Main::Main);

Вот так...



Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!


Сообщение отредактировал ezhickovich - Суббота, 05 Марта 2011, 21:00
ezhickovichДата: Суббота, 05 Марта 2011, 20:31 | Сообщение # 162 | Тема: Концепт-арт
[Великий и могучий хозяинъ]
Сейчас нет на сайте
Quote (MG-Journal)
Ибо когда хочешь научится, то ты научишься.

Во-во... +1



Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
ezhickovichДата: Суббота, 05 Марта 2011, 20:22 | Сообщение # 163 | Тема: AxonTeam
[Великий и могучий хозяинъ]
Сейчас нет на сайте
Quote (Leerd)
Всё что касается движка в игре смогу сделать без проблем!)

Quote (Leerd)
Я даже и не занимался им.

DOUBLEFACEPALM

Quote (Leerd)
У меня есть пару фоток но как их вывесить не знаю

Эт те, на которых ты в бикини? Или где ты собаку фоткал?



Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!


Сообщение отредактировал ezhickovich - Суббота, 05 Марта 2011, 20:22
ezhickovichДата: Суббота, 05 Марта 2011, 20:17 | Сообщение # 164 | Тема: AxonTeam
[Великий и могучий хозяинъ]
Сейчас нет на сайте
Quote (Leerd)
Решил сделать mmorpg, но в одиночку сделать её очень сложно. Поэтому решил сделать(это как???) команду. Начал делать сам, что-то где-то получается, но освоить один всё я не смогу!Хотел выложить фотки того, что уже сделал, но что-то не получается.

Девочка ты в каком классе???



Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!


Сообщение отредактировал ezhickovich - Суббота, 05 Марта 2011, 20:20
ezhickovichДата: Суббота, 05 Марта 2011, 20:09 | Сообщение # 165 | Тема: Концепт-арт
[Великий и могучий хозяинъ]
Сейчас нет на сайте
Quote (nik)
заяц-киборг (фантазия большая)

Хаха... И это в твоём понимании большая фантазия??? biggrin



Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
ezhickovichДата: Суббота, 05 Марта 2011, 20:08 | Сообщение # 166 | Тема: Концепт-арт
[Великий и могучий хозяинъ]
Сейчас нет на сайте
С чего вы взяли, что для учёбы нужна книжка???
Единственное для чего она нужна, ну это разве что анатомия, да и то - никогда не заменит рисование с натуры...
Самый верный путь (жирно сказано, но настаивать не буду) это рисовать то, что видишь вокруг: предметы, людей, животных, ещё чёнить...
Для этого не нужна никакая книжка... wink



Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
ezhickovichДата: Суббота, 05 Марта 2011, 19:41 | Сообщение # 167 | Тема: Концепт-арт
[Великий и могучий хозяинъ]
Сейчас нет на сайте
Quote (nik)
Я вообще не книги не прочитал за всю жизнь

Теперь ясно почему ты такой умный...

ЗЫ: Походу букварь теперь не книжка... wink

Quote (nik)
Скукота, делать нечего, взял карандаш , мазнул каракулю, и с этого начинается картина

Ну а тебе то, откуда знать? wink



Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
ezhickovichДата: Суббота, 05 Марта 2011, 17:16 | Сообщение # 168 | Тема: Фэнтезийная карточная игра....Быть или небыть?)
[Великий и могучий хозяинъ]
Сейчас нет на сайте
Дизайн карточек не ТРУ... (ИМХО)


Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
ezhickovichДата: Суббота, 05 Марта 2011, 14:06 | Сообщение # 169 | Тема: Концепт-арт
[Великий и могучий хозяинъ]
Сейчас нет на сайте
Что с грудью?


Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
ezhickovichДата: Суббота, 05 Марта 2011, 13:45 | Сообщение # 170 | Тема: Графика в консольном приложении
[Великий и могучий хозяинъ]
Сейчас нет на сайте
Можно вообще с помощью ГЛ рисовать...
Code
#include <Windows.h> // Win32 API header
#include <cstdio> // Standart C IO
#include <GL\GL.h> // OpenGL header

HWND hWND = NULL; // Window handle
HDC hDC = NULL; // Device context
HGLRC hGLRC = NULL; // OpenGL rendering context

// Returns console handle
HWND GetConsoleHandle ()
{
  HWND conHwnd = NULL; // Console handle
  const short BUFSIZE = 1024; // Buffer size
  char oldWindowTitle[BUFSIZE]; // Old console window title
  char newWindowTitle[BUFSIZE]; // New console window title

  GetConsoleTitleA (oldWindowTitle, BUFSIZE); // Getting window title
  sprintf (newWindowTitle, "%d/%d", // Generating new title
     GetTickCount(),
     GetCurrentProcessId());

  SetConsoleTitleA (newWindowTitle); // Setting new window title
  Sleep(40); // Waiting for some time
  conHwnd = FindWindowA (NULL, newWindowTitle); // Searching for window
  SetConsoleTitleA (oldWindowTitle); // Setting old window title

  return conHwnd; // Returning handle
}

// Creates GL rendering context
bool CreateGLContext ()
{
  unsigned pixelFormat;

  // Getting device context
  if (!(hDC = GetDC (hWND)))
  {
   MessageBox (NULL, L"Failed to get device context!",  
      L"Fuuuuck!", MB_OK | MB_ICONERROR);
   return false;
  }

  // Pixel format
  static    PIXELFORMATDESCRIPTOR pfd =
  {
   sizeof(PIXELFORMATDESCRIPTOR), 1,
   PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER, PFD_TYPE_RGBA, 32,
   0, 0, 0, 0, 0, 0, 0, 0,    0, 0, 0, 0, 0, 16, 0, 0, PFD_MAIN_PLANE, 0,    0, 0, 0
  };

  // Searching for valid pixel format
  if (!(pixelFormat = ChoosePixelFormat (hDC, &pfd)))
  {
   MessageBox (NULL, L"Failed to choose valid pixel format!",  
      L"Fuuuuck!", MB_OK | MB_ICONERROR);
   return false;
  }

  // Setting pixel format
  if (!SetPixelFormat (hDC, pixelFormat, &pfd))
  {
   MessageBox (NULL, L"Failed to set pixel format!",  
      L"Fuuuuck!", MB_OK | MB_ICONERROR);
   return false;
  }

  // Creating render context
  if (!(hGLRC = wglCreateContext (hDC)))
  {
   MessageBox (NULL, L"Failed to create render context!",  
      L"Fuuuuck!", MB_OK | MB_ICONERROR);
   return false;
  }

  // Setting render context
  if (!wglMakeCurrent (hDC, hGLRC))
  {
   MessageBox (NULL, L"Failed to set render context!",  
      L"Fuuuuck!", MB_OK | MB_ICONERROR);
   return false;
  }

  return true;
}

// Creates GL rendering context
bool KillGLContext ()
{
  bool result = true; // By default it all will be ok

  // If GL render context was created
  if (hGLRC)
  {
   // Releasing render and device contexts
   if (!wglMakeCurrent (NULL, NULL))
   {
    MessageBox (NULL, L"Failed to release render and device contexts!",  
       L"Fuuuuck!", MB_OK | MB_ICONERROR);
    result = false;
   }
   // Deleting render context
   if (!wglDeleteContext (hGLRC))
   {
    MessageBox (NULL, L"Failed to delete render context!",  
       L"Fuuuuck!", MB_OK | MB_ICONERROR);
    result = false;
   }
   hGLRC = NULL; // Setting pointer to zero
  }

  // Releasing device context
  if (hDC && !ReleaseDC (hWND, hDC))
  {
   MessageBox (NULL, L"Failed to release device context!",  
      L"Fuuuuck!", MB_OK | MB_ICONERROR);
   result = false;
   hDC = NULL;
  }

  return result;
}

// Sets default GL params
bool SetDefaultGLParams ()
{
  glShadeModel(GL_SMOOTH);
  glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
  glClearDepth(1.0f);
  glDisable(GL_DEPTH_TEST);
  glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);

  return true;
}

// Draws scene
void DrawScene ()
{
  // Clearing screen
  glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  glLoadIdentity ();

  // Drawing triangle
  glBegin(GL_TRIANGLES);
   glColor3f(1.0f, 0.0f, 0.0f);
   glVertex3f( 0.0f, 1.0f, -1.0f);
   glColor3f(0.0f, 1.0f, 0.0f);
   glVertex3f(-1.0f, -1.0f, -1.0f);
   glColor3f(0.0f, 0.0f, 1.0f);
   glVertex3f( 1.0f, -1.0f, -1.0f);
  glEnd ();
}

// Win32 main
int main (int argc, char **argv)
{
  bool play = true; // Mainloop flag
  MSG msg; // Message

  // Hiding cursor
  HANDLE hOut = GetStdHandle (STD_OUTPUT_HANDLE);
  CONSOLE_CURSOR_INFO cursorInfo = {1, false};
  SetConsoleCursorInfo (hOut, &cursorInfo);

  printf ("Yeahh! Its a console window!\n"); // Some printing

  hWND = GetConsoleHandle (); // Getting window handle
  // Creating render context and printing result
  printf ("Creating GL rendering context: %s\n", ((play = CreateGLContext ()) ? "OK" : "FAILED"));
  // Setting default GL params and printing result
  printf ("Setting default GL params: %s\n", ((play = SetDefaultGLParams ()) ? "OK" : "FAILED"));
  Sleep (300);
  while (play) // Mainloop
  {
   // Processing message
   if (PeekMessage (&msg, hWND, NULL, NULL, PM_REMOVE))
   {
    if (msg.message == WM_QUIT) play = false;
    else
    {
     TranslateMessage(&msg);
     DispatchMessage(&msg);
    }
   } else
   {
    // Rendering scene
    DrawScene ();
    SwapBuffers (hDC);

    // Some printing
    system ("CLS");
    printf ("\n\n\nHello, sexy boy!");
    //Sleep (45);
   }
  }

  // Killling render context and printing result
  printf ("Killing GL rendering context: %s\n", KillGLContext () ? "OK" : "FAILED");
  Sleep (200);
  return 0;
}




Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!


Сообщение отредактировал ezhickovich - Суббота, 05 Марта 2011, 13:57
ezhickovichДата: Суббота, 05 Марта 2011, 10:52 | Сообщение # 171 | Тема: Графика в консольном приложении
[Великий и могучий хозяинъ]
Сейчас нет на сайте
WinAPI использовать религия запрещает?


Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
ezhickovichДата: Пятница, 04 Марта 2011, 13:20 | Сообщение # 172 | Тема: проектировщик пользовательского интерфейса
[Великий и могучий хозяинъ]
Сейчас нет на сайте
Сколько платишь?


Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
ezhickovichДата: Четверг, 03 Марта 2011, 21:51 | Сообщение # 173 | Тема: HardCore NinJa
[Великий и могучий хозяинъ]
Сейчас нет на сайте
Выложи скриншоты, скачивать кота в мешке не охота...
А так, могу быть тестером + если вдруг понравится - напишу отзыв...



Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
ezhickovichДата: Среда, 02 Марта 2011, 22:47 | Сообщение # 174 | Тема: Группа Вконтакте
[Великий и могучий хозяинъ]
Сейчас нет на сайте
Quote (WIBarts)
1. Админку отдам реальным админам

А ты не думал, что если бы была необходимость - они бы сами её сделали???
Зачем тут нужен ты? wink



Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
ezhickovichДата: Среда, 02 Марта 2011, 14:46 | Сообщение # 175 | Тема: Концепт-арт
[Великий и могучий хозяинъ]
Сейчас нет на сайте
nik, для 16 лет очень слабо... =/


Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
ezhickovichДата: Вторник, 01 Марта 2011, 19:15 | Сообщение # 176 | Тема: Выбор ЯП
[Великий и могучий хозяинъ]
Сейчас нет на сайте
Quote (PBPROG)
По скорости работы скомпилированных прог, не уступает Си.

Знаешь ли на Си можно написать так, что по скорости будет медленнее VB... =/ (а про твой любимый PB и куры говорили)
Тут большую роль играют навыки самого программиста, который "у руля"...

Приведи мне тесты на которых измеряли время (ведь именно это ты подразумевал под скоростью) выполнения...
Меня интересует код на Си и на PB...
Также экзешники приложений, конфигурации систем, а для чистоты тестирование должно проводится на разных платформах и конфигурациях...
И что самое главное - КАКОЙ КОМПИЛЯТОР СИ ИСПОЛЬЗОВАЛСЯ!!! (Это очень-очень важно)
Если отсутствует хотя бы один из пунктов, результаты теста нельзя считать действительными!!!



Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
ezhickovichДата: Понедельник, 28 Февраля 2011, 23:59 | Сообщение # 177 | Тема: Waterfall game engine
[Великий и могучий хозяинъ]
Сейчас нет на сайте
Quote (Barbatos)
но думаешь под конец тебе скажут спасибо за такой движок?

Я хоть где-то это сказал? Мне не нужны благодарности, я его собираюсь делать только ради собственного удовлетворения и от нечего делать...
Ну неужели это не ясно из первого поста... =/
Ладно, это совершенно не важно... wink



Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
ezhickovichДата: Понедельник, 28 Февраля 2011, 22:17 | Сообщение # 178 | Тема: Waterfall game engine
[Великий и могучий хозяинъ]
Сейчас нет на сайте
Barbatos, Я так и не понял, что тебе не нравится?
Что плохого в написании 100500го двига аля дум?

Впрочем не буду спорить, у тебя есть своё мнение и ты его высказал... wink
Согласен со словами выше:

Quote (Angevengelist)
Главное, хоть что-то делать чем трепаться.

Добавлено (28.02.2011, 22:17)
---------------------------------------------

Quote (Nimphomaniak)
WTF is проги помощники?

+1



Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
ezhickovichДата: Понедельник, 28 Февраля 2011, 21:49 | Сообщение # 179 | Тема: Waterfall game engine
[Великий и могучий хозяинъ]
Сейчас нет на сайте
Quote (Undead)
А вот это хорошо

Ну собственно это очевидно, иначе зачем мне

Quote (ezhickovich)
Движок для Doom-подобных игр

Quote (ezhickovich)
Удачи

К чёрту =)

Добавлено (28.02.2011, 21:49)
---------------------------------------------

Quote (Deniiel)
Вот поэтому он и должен быть без программирования.

Ты не думал, что я ХОЧУ ИЗОБРЕСТИ ВЕЛОСИПЕД?
И как ты представляешь себе движок без программирования?



Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!


Сообщение отредактировал ezhickovich - Понедельник, 28 Февраля 2011, 21:49
ezhickovichДата: Понедельник, 28 Февраля 2011, 21:46 | Сообщение # 180 | Тема: Waterfall game engine
[Великий и могучий хозяинъ]
Сейчас нет на сайте
Quote (horax)
софтверный

Как-то не лежит душа в этом направлении...
По крайней мере сейчас в этом нет необходимости... (ну в этом я точно уверен)
Если закончу этот - можно будет подумать и о софтваре... (возможно несколько предвзято, однако я не хочу сейчас возиться с софтваром)



Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
Форум игроделов » Записи участника » ezhickovich [2927]
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг