PMG

Форумы по созданию игр
Текущее время: 25 апр 2024 03:11

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 149 ]  На страницу Пред.  1 ... 5, 6, 7, 8, 9, 10  След.
Автор Сообщение
 Заголовок сообщения: Re: Уроки NeHe
СообщениеДобавлено: 04 сен 2010 23:48 
если не поставлю то ошибку пишет


Вернуться к началу
  
 
 Заголовок сообщения: Re: Уроки NeHe
СообщениеДобавлено: 04 сен 2010 23:54 
Не в сети
Любитель

Зарегистрирован: 29 авг 2010 19:15
Сообщения: 27
Так правильно, у тебя же функция Application::Render() не определена.

Вот сюда её добавь:

Код:
#include "Application.h"

Application::Application()
{
    GameLoop = true;
}

Application::~Application()
{
}

bool Application::Init()
{
    return true;
}

void Application::Run()
{
    GameLoop = true;
    while(GameLoop == true)
    {
        Render();
    }
}

void Application::Quit()
{
    GameLoop = false;
}



void Application::Render();
{
printf("hello\n");
}


а там пробуй

Код:
pApp->Run();

pApp->Render();

pApp->Quit();


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уроки NeHe
СообщениеДобавлено: 04 сен 2010 23:56 
а как я буду тогда заполнять рендер из мейна??


Вернуться к началу
  
 
 Заголовок сообщения: Re: Уроки NeHe
СообщениеДобавлено: 05 сен 2010 00:03 
Не в сети
Любитель

Зарегистрирован: 29 авг 2010 19:15
Сообщения: 27
Обычно рендер вызывается один раз во всей программе. Там должны быть конечные автоматы, а функция рендер, как корона завершает композицию.

У тебя её вызывают из маин, потом из другого файла. В общем я запутался.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уроки NeHe
СообщениеДобавлено: 05 сен 2010 00:06 
я так спать хочу что очень лень писать но я попвтаюсь всетаки это сделать

у тебя есть двиг
ты создаешь проект подключаешь его в свой проект и начинаешь там все инициализировать и тд
и потом тебе надо что то отрисовать
но как это сделать?? очень просто написать в функцию все что ты хочешь отрисовать
но как передать содержмое финкции в движок??
вот я этим сейчас и занимаюсь
хочу передать все что нужно отрисовать в двиг
но пока не получается


все я ушел...


Вернуться к началу
  
 
 Заголовок сообщения: Re: Уроки NeHe
СообщениеДобавлено: 05 сен 2010 00:07 
и нет
рендер вызывается каждый кадр!!
как тогда бы происходила анимация?? переместил объект отрисовал переместил отрисовал и тд


Вернуться к началу
  
 
 Заголовок сообщения: Re: Уроки NeHe
СообщениеДобавлено: 05 сен 2010 00:12 
Не в сети
Любитель

Зарегистрирован: 29 авг 2010 19:15
Сообщения: 27
Не совсем понял, но:
1. По отрисовке каждого кадра согласен.
2. Наверное в подключаемых движках используется функции обратного вызова.
3. Удачи, может кто из опытных подойдет и опишет, как сделать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уроки NeHe
СообщениеДобавлено: 05 сен 2010 10:38 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 04 июл 2008 10:11
Сообщения: 144
Откуда: Питер
isaer_95 писал(а):
а как я буду тогда заполнять рендер из мейна??
Зачем заполнять из мейна??? Все что рисуешь нужно запихать функцию Application::Render(). Что-то типа этого:
Код:
void Application::Render ()
{
    printf("hello\n");
   //дальше здесь рисуй всякие квадраты, когда подключишь  OpenGL
}

void Application::Run()
{
    GameLoop = true;
    while(GameLoop == true)
    {
        Render();
    }
}


int main(int argc, char **argv)
{
    Application* pApp = new Application();
    if(pApp->Init() == false)
    {
        return -1;
    }
    pApp->Run();   
    //pApp->Render(); зачем тут появился вызов отрисовки, если он уже есть в void Application::Run ???
    pApp->Quit();
    if(pApp)
    {
        delete pApp;
        pApp = NULL;
    }
    return 0;
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уроки NeHe
СообщениеДобавлено: 05 сен 2010 12:33 
Не в сети
Любитель
Аватара пользователя

Зарегистрирован: 09 янв 2009 15:11
Сообщения: 16
Частично понял твою мысль....
Есть 2 варианта:
1) У тебя же есть все исходники.... Можно менять исходник Рендера под конкретную задачу. На примере игрушки - есть конечный код Рендера, где ты вызываешь Рендеры всех классов(Ландшафт, декорации, юниты...). Что в тех функциях - тебя не интересует, главный рендер только вызывает их... Если такое подходит - тогда уже будем разбираться с тем как это грамотно написать: динамической пам*ятью, количествами юнитов и прочим, кучей проверок...
2) Вспоминаю свой недоделанный медиаплеер... У меня была похожая идея... Если я допишу поддержку нового формата - это же нужно будет делать новую версию плеера... а не лучше для каждого формата своя длл, а плеер просто вызывал с них нужные функции... В таком случае просто в каждой длл все функции должны иметь одинаковые имена, параметры и т.д... - быть идентичны... И в твое ехе будут лишь вызовы этих функций, а в длл уже реализация под нужную функциональность...
Но мне кажется что в твоем случае все таки лучше 1-й вариант. Надеюсь более-менее понятно написал) Если что звиняйте.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уроки NeHe
СообщениеДобавлено: 05 сен 2010 13:28 
не совсем понял
вот ссылка на пример движка (винапи) он мне не подходит но там есть такой вот ренедер
только меня там не устраивает то что в мейне все это дело происходит в классе
тоесть надо как то класс убрать
Тыц


Вернуться к началу
  
 
 Заголовок сообщения: Re: Уроки NeHe
СообщениеДобавлено: 05 сен 2010 13:45 
bad_duck писал(а):
isaer_95 писал(а):
а как я буду тогда заполнять рендер из мейна??
Зачем заполнять из мейна??? Все что рисуешь нужно запихать функцию Application::Render(). Что-то типа этого:
Код:
void Application::Render ()
{
    printf("hello\n");
   //дальше здесь рисуй всякие квадраты, когда подключишь  OpenGL
}

void Application::Run()
{
    GameLoop = true;
    while(GameLoop == true)
    {
        Render();
    }
}


int main(int argc, char **argv)
{
    Application* pApp = new Application();
    if(pApp->Init() == false)
    {
        return -1;
    }
    pApp->Run();   
    //pApp->Render(); зачем тут появился вызов отрисовки, если он уже есть в void Application::Run ???
    pApp->Quit();
    if(pApp)
    {
        delete pApp;
        pApp = NULL;
    }
    return 0;
}



понимаешь когда будет все это в длл или либе то как тогда менять код отрисовки?? надо все это предоставить пользователю


Вернуться к началу
  
 
 Заголовок сообщения: Re: Уроки NeHe
СообщениеДобавлено: 05 сен 2010 13:48 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 04 июл 2008 10:11
Сообщения: 144
Откуда: Питер
а на какой ... запихивать функцию отрисовки в длл :post:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уроки NeHe
СообщениеДобавлено: 05 сен 2010 13:51 
двиг в дллке
а подключаешь в своей проект двиг и пишешь там рендер и заполняешь его
вот так надо а то по твоему методу надо засунуть его в длл


Вернуться к началу
  
 
 Заголовок сообщения: Re: Уроки NeHe
СообщениеДобавлено: 05 сен 2010 13:58 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 04 июл 2008 10:11
Сообщения: 144
Откуда: Питер
по моему методу вообще не нужно отрисовку запихивать в длл. В длл нужно запаковывать физику, загрузку всяких файлов и другие функции, которые остаются неизменными для всех пользователей данного движка.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уроки NeHe
СообщениеДобавлено: 05 сен 2010 14:11 
Цитата:
Зачем заполнять из мейна??? Все что рисуешь нужно запихать функцию Application::Render(). Что-то типа этого:

а это все находиться в двиге
тоесть ты предлогаешь засунуть отрисовку в двиг, и заполнять ее там


Вернуться к началу
  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 149 ]  На страницу Пред.  1 ... 5, 6, 7, 8, 9, 10  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 43


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB