Суббота, 20 Апреля 2024, 08:19

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 3 из 3
  • «
  • 1
  • 2
  • 3
Форум игроделов » Записи участника » avolkoff [56]
Результаты поиска
avolkoffДата: Пятница, 25 Октября 2013, 10:32 | Сообщение # 41 | Тема: Потеряно соединение с сервером в warface...
частый гость
Сейчас нет на сайте
Вчера была такая фигня на Браво, зашел, пишет "Сервер недоступен" и выходит... Попробовал еще раз, аналогично... Зашел на Чарли, все ОК, вышел и зашел на Браво и все норм стало! Косяк какой-то...
avolkoffДата: Суббота, 19 Октября 2013, 10:21 | Сообщение # 42 | Тема: Зависмость размеров спрайтов от размера окна
частый гость
Сейчас нет на сайте
Это происходит в конвейере визуализации (Rendering Pipeline), на уровне геометрии (The Geometry Stage), при проецировании (Projection) объектов. Есть матрица проекции в которой указано соотношение экрана и прочая фигня...
avolkoffДата: Четверг, 10 Октября 2013, 02:03 | Сообщение # 43 | Тема: Получение значения переменной из другого класса.
частый гость
Сейчас нет на сайте
По-моему здесь ничего сложного нет!
Алгоритм тебе написал noname, реализацию в коде написал я.
Если нужны подробности, код из студии в студию :)
avolkoffДата: Среда, 09 Октября 2013, 21:37 | Сообщение # 44 | Тема: Получение значения переменной из другого класса.
частый гость
Сейчас нет на сайте
на!

Код
using System;

namespace Test
{
         //
         // Вот класс 1 алЯ Class1
         //
         class Class1
         {
             //
             // Как говорил экземпляр класса 2
             //
             private Class2 c2;

             //
             // Конструктор
             //
             public Class1()
             {
                 c2 = new Class2();
             }

             //
             // Просто функция для вывода
             //
             public int readVarFromClass2()
             {
                 return c2.tyr;
             }
         };

         //
         // Вот класс 2 алЯ Class2
         //
         class Class2
         {
             //
             // Конструктор
             //
             public Class2()
             {
                 tyr = 100;
             }

             //
             // PUBLIC!!! переменная в классе 2
             //
             public int tyr;
         };

         class Program
         {
             static int Main()
             {
                 Class1 c1 = new Class1();

                 Console.WriteLine(c1.readVarFromClass2());

                 return 0;
             }
         };
}


на вот через public функцию
Код
using System;

namespace Test
{
        //
        // Вот класс 1 алЯ Class1
        //
        class Class1
        {
            //
            // Как говорил экземпляр класса 2
            //
            private Class2 c2;

            //
            // Конструктор
            //
            public Class1()
            {
                c2 = new Class2();
            }

            //
            // Просто функция для вывода
            //
            public int readVarFromClass2()
            {
                // теперь так ошибка : )
                // return c2.tyr;

                return c2.GetTyr();
            }
        };

        //
        // Вот класс 2 алЯ Class2
        //
        class Class2
        {
            //
            // Конструктор
            //
            public Class2()
            {
                tyr = 100;
            }

            //
            // Вот не public переменная
            //
            private int tyr;

            //
            // А вот public функция
            //
            public int GetTyr()
            {
                return (this.tyr);
            }
        };

        class Program
        {
            static int Main()
            {
                Class1 c1 = new Class1();

                Console.WriteLine(c1.readVarFromClass2());

                return 0;
            }
        };
}




Сообщение отредактировал avolkoff - Среда, 09 Октября 2013, 21:43
avolkoffДата: Среда, 09 Октября 2013, 04:17 | Сообщение # 45 | Тема: Получение значения переменной из другого класса.
частый гость
Сейчас нет на сайте
например, если переменная public, то создаешь экземпляр второго класса в первом и обращаешься к ней
если, не public, то можно через public-функцию сделать.


Сообщение отредактировал avolkoff - Среда, 09 Октября 2013, 04:18
avolkoffДата: Суббота, 28 Сентября 2013, 11:16 | Сообщение # 46 | Тема: Интерфейсы и DLL
частый гость
Сейчас нет на сайте
Определился с компилятором, студия :), думаю больше незачем будет использовать мою либу в других средах/языках. с другой стороны если придется переделывать, то...
Поэтому подумал, может просто делать классы-интерфейсы (с чистыми виртуальными методами/функциями), от них делать реализацию в DLL, и соответственно хидеры с интерфейсами использовать в программах. Проверил, вроде работает. В коде так примерно:
Interface.h
Код
#pragma once

#ifndef __INTERFACE__
#define __INTERFACE__

class IMyInterface
{
public:
      virtual int __stdcall Init() = 0; // Pure virtual func
};

int __stdcall InterfaceCreate(IMyInterface **); // Создает экземпляр

#endif /* __INTERFACE__ */

InterfaceImpl.h
Код
#pragma once

#ifndef __INTERFACE_IMPL__
#define __INTERFACE_IMPL__

#include <Interface.h>

class CImpMyInterface : public IMyInterface
{
public:
      CImpMyInterface();
      ~CImpMyInterface();

      int __stdcall init();
};

// Реализация не нужна для примера...

#endif __INTERFACE_IMPL__

Подключаем статическую библиотеку, заголовок и вуаля smile
В итоге, простейшее использование, нет поддержки мультиязычности, незнаю насчет косяка, когда приложение "падает", ресурсы освобождаются, например память? Думаю что да, так как у объекта ядра длл ссылок нуль), он начинает уничтожаться и вызывается CRT, которая вызывает несуществующую DllMain(), но CRT же знает что длл использует ресурсы? так ли это? или скажите где почитать можно.

Добавлено (28.09.2013, 11:16)
---------------------------------------------
Ответы нашел, ответившим спасибо!

Добавлено (28.09.2013, 11:16)
---------------------------------------------
Ответы нашел, ответившим спасибо!

Сообщение отредактировал avolkoff - Пятница, 27 Сентября 2013, 19:36
avolkoffДата: Пятница, 27 Сентября 2013, 11:24 | Сообщение # 47 | Тема: Интерфейсы и DLL
частый гость
Сейчас нет на сайте
спасибо, но COM что-то перехотелось вообще видеть, вернее использовать для создания, как и MFC, ATL и прочее, лучше обойдусь си-вызовами с костылем подобно как Leadwerks

Сообщение отредактировал avolkoff - Пятница, 27 Сентября 2013, 11:25
avolkoffДата: Четверг, 26 Сентября 2013, 19:06 | Сообщение # 48 | Тема: Интерфейсы и DLL
частый гость
Сейчас нет на сайте
Всем доброго вечера! Суть проблемы: реализация интерфейсов в динамически подключаемой библиотеке (аля DLL).
В инете нашел три вида подключения исполняемого файла к библиотеке: статически, динамически и отложенно-загружаемые.
В качестве типа подключения предполагаю использовать статически-связываемые либы, дабы не заморачиваться с импортом функций, DEF-файлами и так далее.
Необходимо создать библиотеку, на с++, с интерфейсами. Насчет языков/компиляторов использующих DLL неизвестно.
Вопрос: как реализовать сие чудо, если преполагается использование только в окнах?
Сразу в голову пришла идея сделать кучу функций в Си-стиле. Не катит - их слишком много получится - неудобно.
Можно сделать костыль, в виде обертки функций в классы. Но все же.
Вторая идея это COM, но настараживает вопрос производительности почему-то.
Третья мысль просто экспортировать классы - теряется возможность использования другими компиляторами.
Как быть? В поиске не нашел! Отсылки в гугл не принимаются! Подскажите новичку! smile Заранее спасибо.


Сообщение отредактировал avolkoff - Пятница, 27 Сентября 2013, 10:44
avolkoffДата: Среда, 25 Сентября 2013, 21:23 | Сообщение # 49 | Тема: Мгновенный отклик от клавиатуры.
частый гость
Сейчас нет на сайте
Цитата (Drac)
Подскажите, как осуществить действие по нажатой и зажатой кнопки на клавиатуре.

Как вариант, может считывать состояние клавы в "массив состояний", при нажатии на клавишу регистрировать, что она была нажата, в другом массиве, при отжатии снимать "регистрацию". Ну и соответственно делать функцию типа Work(), которая этим будет заниматься. Вторая функция это проверка нажата ли она, третья зажата, четвертая отжата. smile Всего: массив состояний, массив состояний для зажатых клавиш (bool), 4 функции. Велосипедом попахивает наверно smile


Сообщение отредактировал avolkoff - Среда, 25 Сентября 2013, 21:25
avolkoffДата: Среда, 25 Сентября 2013, 20:23 | Сообщение # 50 | Тема: Мгновенный отклик от клавиатуры.
частый гость
Сейчас нет на сайте
Ставишь приоритет процесса на реального времени, делаешь цикл в потоке и только сканируешь клаву... И завершения обработки события не ждешь при нажатии wink
avolkoffДата: Четверг, 13 Июня 2013, 21:15 | Сообщение # 51 | Тема: Разработка игрового движка
частый гость
Сейчас нет на сайте
Цитата (OpenGOO)
Приятного времяпрепровождения -) ЕСПД

Я тоже думаю что время будет очень приятное! smile Огромное спасибо!
avolkoffДата: Четверг, 13 Июня 2013, 01:40 | Сообщение # 52 | Тема: Разработка игрового движка
частый гость
Сейчас нет на сайте
Привет всем пользователям ресурса gcup.ru!
При создании любого более или менее крупного проекта следует начать с разработки документации к оному. Вопрос прост: Как???
После гуглирования нашел темы про документацию к существующим движкам - в общем это руководства пользователя. Вспомнил про стандарты. Посмотрел стандарт ГОСТ 34 "Техническое задание на разработку АИС" - ничего интересного. На данный момент я частями представляю структуру, хотелось бы закрепить это на бумаге, чтобы было правильно и понятно при реализации. Прошу дать ссылки на какие-либо источники с подобной информацией.
avolkoffДата: Среда, 05 Июня 2013, 23:33 | Сообщение # 53 | Тема: В каком среде разработке вы программируете ??
частый гость
Сейчас нет на сайте
MS Visual Studio 2008 Pro, intellisence глючит только иногда, но для окон самое то
avolkoffДата: Среда, 05 Июня 2013, 22:49 | Сообщение # 54 | Тема: На чём писать-DX vs OpenGL
частый гость
Сейчас нет на сайте
не парься при выборе графического API, для начала представь как это все работать будет. Как я понял кроссплатформенность не особо нужна, поэтому бери DirectX, ведь это связка интерфейсов ввода, звука, графики, как бы все в одном флаконе:)
avolkoffДата: Среда, 05 Июня 2013, 22:34 | Сообщение # 55 | Тема: С чего начать?
частый гость
Сейчас нет на сайте
Gorilla правильно говорит, что нужна идея. В общем напиши сначала дизайн-документ игры, а затем реализуй
avolkoffДата: Вторник, 23 Апреля 2013, 01:12 | Сообщение # 56 | Тема: Проектирование ядра игры
частый гость
Сейчас нет на сайте
Итак, с Вашего разрешения:) подведу итоги:
1. Ты незнаешь С++;
2. Ты незнаешь G API (DirectX или OGL);
3. WINAPI? Наврядли, если только окно можешь. Ну может он и непригодится...
Со всем этим ты хочешь написать (создать) игру? Движок???
Может стоит попробовать без программирования, или со скриптами, т.е. используй готовые решения!
Если горишь желанием программировать, ну чешется аж, выучи С++ для начала, алгоритмов тучу, потом еще GAPI какой-нить, Shader Language. wacko !!!
Как вариант можешь попробовать C# и XNA GS, там все намного проще (для программера).
Еще как вариант пойти учиться на физмат!)
Ладно, хватит о плохом!

Цитата
Игровой движок будет состоять из:
1)GraphicEngine
2)PhysicsEngine
3)SoundEngine
4)LogicEngine

По-сути-то) они все из этих компонентов сделаны...
Может стоит задуматься об использовании многопроцессорности/многоядерности/многопоточности/и т.д.??? Сейчас-то машины пичкают процами не с одним ядром!
Далее управление устройствами ввода??? Тоже некая проблема, особенно на кроссплатформенных решениях...
Анимация... Ну тут все понятно!)
Физика - можно сразу использовать стороннее ПО!(Если физика реалистичная нужна)
Графика??? ... Интеллект??? Система скриптов - ну можно как-нить без нее, хотя после перечисленных пунктов она сделается на одном дыхании...
В итоге получаем огроменную систему с хт алгоритмов и прочей нечисти)

Итак, по-моему мнению ты хочешь сделать движог/двиган/гипердвиг/ит.д.... Но на многих форумах обычно пишкт ответ, а для чего этот двиг??? Т.е. вывод, надо писать движок с упором на игру... Хотя бы за тем, чтобы снизить кучу работы по универсальности двигана).

К слову, я не пытаюсь тебя отговорить от темы содания мегадвигла)

Почитай книжек, посмотри другие двиглы. Но по-моему классный совет я видел где-то в "интернетах" - смысл его попробу создать очень простую игру, затем лучше и лучше... Например, пинг-понг))) для начала хватит, затем ты поймешь что тебе реально нужно от некоего (в данном случае) кода типа движка. Уже сможешь примерно прикинуть как оно работает и чем движет)

Цитата
GraphicEngine ответственен за рендер и отображение двухмерной графики на экране пользователя. Будет использован OpenGL Utility Toolkit (GLUT).
Графический движок должен уметь:
1)Отображать курсор и в случае необходимости заменять его спрайтом.
2)Рисовать элементы интерфейса (кнопки, флажки, панели, диалоговые окна, меню, списки, текст).
3)Загружать графические объекты (спрайты) в форматах PNG, JPG, BMP.
4)Рисовать спрайты по X, Y.
5)Вращать спрайты.
6)Взаимодействовать при необходимости с остальными движками (PhysicsEngine, LogicEngine, SoundEngine).
7)Проверять себя на ошибки в режиме реального времени и в случае критических ошибок сообщать об этом пользователю.


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

Кроме этого пункты 1, 3, 4, 5 - не очень именно к движку графики относятся, скорее к подсистеме... ну или к интерфейсу адаптера, менеджера ресурсами и к сцене.

Ну вобщем как-то так!) Ах да! И не парься насчет ядра, потом сам поймешь! Undead жжешь с id tech 4)))


Сообщение отредактировал avolkoff - Вторник, 23 Апреля 2013, 01:59
Форум игроделов » Записи участника » avolkoff [56]
  • Страница 3 из 3
  • «
  • 1
  • 2
  • 3
Поиск:

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