ria pc game
fle game engine - движок для создания игр
fle game engine - движок для создания игр


Balls and holes PC game / Balls and Holes PC игра
Вакансии
Игродельня
Сегодня
20 февраля 2019 18:31
Вход Регистрация Забыли пароль ?

megainformatic - Приключения Кости Коробкина - С новым годом - интерактивный комикс (kk hny) - онлайн комикс - страница 2
Приключения Кости Коробкина - С новым годом - интерактивный комикс (kk hny) - онлайн комикс - страница 2 Предлагаем вашему вниманию онлайн-комикс Приключения Кости Коробкина - С новым годом - интерактивный комикс (kk hny). Сегодня особенный день ! Я буду выполнять твои заветные желания.
подробнее...

Теги создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт
Статьи сайта
megainformatic - Как создать torrent файл

megainformatic - Нужна ли валидация вашему сайту ?

megainformatic - Антивирус DrWeb

megainformatic - Калькулятор рассчёта стоимости зубопротезирования для стоматологической клиники

megainformatic - Что такое BitTorrent (БитТоррент)

megainformatic - Миссис Даутфайр 1993 фильм torrent

megainformatic - Как скачивать торрент-раздачу ?

megainformatic - Автотелега фильтр

megainformatic - Фильмы

megainformatic - Fahrengeit Фаренгейт игра 2006 для PC

megainformatic - Fez игра для PC 2013

megainformatic - Дневник памяти - фильм 2004

megainformatic - Scooter - The night - Video and Lyrics - Скутер - Ночь - Видео и лирика

megainformatic - Если всё же неудача

megainformatic - Смерть или искупление или избавление

megainformatic - По ту сторону

cj megainformatic - музыкальный альбом БЕСКОНЕЧНОЕ ДВИЖЕНИЕ ОЖИДАНИЕ И ДЕЙСТВИЕ

megainformatic - Костя Коробкин - Секретный проект - интерактивный комикс

megainformatic - Основы анимации во флеш на примере анимирования простейшей окружности

megainformatic - Парсер сайтов Введение

megainformatic - Я пишу музыку для себя и для продажи

megainformatic - Статьи на околомузыкальные темы - осень 2014 часть 1

megainformatic - рассказ - Чужие воспоминания - автор Синицин Андрей - 24.09.2014

megainformatic - Сайты живущие вне поисковых систем. Есть ли такие и как их найти ?

megainformatic - Game craft - проект разработки игровых и мультимедийных проектов

megainformatic - Game craft - моделируем scv

megainformatic - Game craft - моделируем scv - шаг 1 (часть 2)

megainformatic - Game craft - моделируем scv - шаг 2 (часть 3)

megainformatic - Game craft - Наложение текстуры на модель робота scv (часть 4)

megainformatic - Game craft - Прорисовка текстуры робота SCV шаг 5

megainformatic - Game craft - Экспорт модели из 3ds max в формат X

megainformatic - Game craft - отображение scv модели в формате x в d3d9-приложении

megainformatic - Game craft - управление игрой от Direct Input в d3d9 - приложении

megainformatic - Game craft - игровая камера в d3d9 - приложении

megainformatic - Приключения Кости Коробкина - Как я провел лето - онлайн комикс - страница 1

megainformatic - Приключения Кости Коробкина - Как я провел лето - онлайн комикс - страница 2

megainformatic - Приключения Кости Коробкина - Как я провел лето - онлайн комикс - страница 3

megainformatic - Приключения Кости Коробкина - Как я провел лето - онлайн комикс - страница 4

megainformatic - Приключения Кости Коробкина - Как я провел лето - онлайн комикс - страница 5

megainformatic - Приключения Кости Коробкина - Как я провел лето - онлайн комикс - страница 6

megainformatic - Приключения Кости Коробкина - Как я провел лето - онлайн комикс - страница 7

megainformatic - Приключения Кости Коробкина - С новым годом - интерактивный комикс (kk hny) - онлайн комикс - страница 1

megainformatic - Приключения Кости Коробкина - С новым годом - интерактивный комикс (kk hny) - онлайн комикс - страница 2

megainformatic - Приключения Кости Коробкина - С новым годом - интерактивный комикс (kk hny) - онлайн комикс - страница 3

megainformatic - Приключения Кости Коробкина - С новым годом - интерактивный комикс (kk hny) - онлайн комикс - страница 4

megainformatic - Приключения Кости Коробкина - С новым годом - интерактивный комикс (kk hny) - онлайн комикс - страница 5

megainformatic - Приключения Кости Коробкина - С новым годом - интерактивный комикс (kk hny) - онлайн комикс - страница 6

megainformatic - Приключения Кости Коробкина - С новым годом - интерактивный комикс (kk hny) - онлайн комикс - страница 7

megainformatic - Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - онлайн комикс - страница 1

megainformatic - Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - онлайн комикс - страница 2

megainformatic - Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - онлайн комикс - страница 3

megainformatic - Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - онлайн комикс - страница 4

megainformatic - Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - онлайн комикс - страница 5

megainformatic - Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - онлайн комикс - страница 6

megainformatic - Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - онлайн комикс - страница 7

megainformatic - Веселый Буквоежка - онлайн комикс - страница 1

подробнее


[к содержанию] [другие статьи Тимонина Андрея]

DirectX9. Создаем основной класс обработки графики.

автор: Тимонин Андрей

дата публикации на сайте Мега Информатик: 18.11.2012

Добро пожаловать в цикл моих уроков посвященных программированию.

На написание этой статьи меня вдохновил блог о создании игр с нуля, который можно посмотреть по следующей ссылке mindillusion.ru.

Здесь я хочу затронуть основные, интересные для меня, моменты. Рассказать вам с чего нужно начинать делать свое первое 3д или 2д приложение.


Существует 2 основные низкоуровневые библиотеки для вывода графики, над которыми пишутся движки, применяемые как в сфере разработки игр, так и прочих графических приложений не связанных с геймдевом. Это DirectX, на данный момент вышла 11 версия и OpenGl. В этой статье мы будем касаться 9 версии директа. Другие версии могут немного отличаться.

Результат наших действий будет такой, как на скриншоте.

И так, перейдем к делу... У нас получается такой интерфейс класса. Здесь все, что необходимо для работы с графическим устройством. По крайней мере, что нам интересно на данный момент. Часть методов я приведу, снабдив, необходимыми для понимания комментариями. Класс у нас в единственном экземпляре, что дает нам возможность объединить возможности в одном классе. В том числе хранение и работа с текстурами и шейдерами. Это будет тема для одной из следующих статей. Смотрим код.

class Graphics : public singleton<Graphics>
{
friend class singleton<Graphics>;
private:

int _width,_height; //размеры экрана(сделал для удобства)

//интерфейс directX
LPDIRECT3D9 m_pD3D;

//интерфейс устройства вывода
LPDIRECT3DDEVICE9 m_pd3dDevice;

// структкура с параметрами девайса
D3DPRESENT_PARAMETERS m_d3dpp;

typedef std::vector<CTexturePtr> vecTextures;
vecTextures m_vecTextures;

typedef std::vector<CShaderPtr> vecShaders;
vecShaders m_vecShaders;

protected:

//закрыто. нет смысла создавать все равно singleton
Graphics(void);
~Graphics(void);

public:

//возвращает устройство
LPDIRECT3DDEVICE9 GetDevice();

//инициализация устройства
bool Init(HWND hRenderWnd, int width, int height);

//возвращает ширину
int getWidth() const {return _width;}

//возвращает высоту
int getHeight() const {return _height;}

//удаление интерфейсов
void Cleanup();

//сброс
HRESULT Reset();

//начало рендера
bool StartRender(D3DCOLOR bgColor=0xff808080);
//устанавливает формат вершин
HRESULT SetFVF(DWORD FVF);

//устанавливает пиксельный и верш шейдер( в статье не будем рассматривать. рано еще)))
HRESULT SetPixelShader(CShaderPtr shader);
HRESULT SetVertexShader(CShaderPtr shader);

//установка характеристик рендера
HRESULT SetRenderState(D3DRENDERSTATETYPE State, DWORD Value);

//установка характеристик текстур(смешивание, альфа и тд)
HRESULT SetTextureStageState(DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD Value);

//установка способа отображения семплов( фильтрация)
HRESULT SetSamplerState(DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD Value);

//установка текстуры
HRESULT SetTexture(DWORD stage, CTexturePtr pTex);

//начало блока настроек рендера
HRESULT BeginStateBlock();

//конец блока настроек рендера
HRESULT EndStateBlock(LPDIRECT3DSTATEBLOCK9* block);

//отрисовка премитива
HRESULT DPUP( D3DPRIMITIVETYPE PrimitiveType, UINT PrimitiveCount, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride);

//конец отрисовки

bool EndRender();

//загрузка текстур и шейдеров(про текстуры будет отдельная статья)
CTexturePtr LoadTexture(const std::wstring& szFileName);
CShaderPtr LoadShader( const std::string& strFileName, const std::string& strFuncName, const std::string& profile);
};

Сейчас нам интересны два интерфейса:

//интерфейс directX
LPDIRECT3D9 m_pD3D;

//интерфейс устройства вывода
LPDIRECT3DDEVICE9 m_pd3dDevice;

Для начала их необходимо обнулить.

Graphics::Graphics()
{
m_pD3D = NULL;
m_pd3dDevice = NULL;
ZeroMemory(&m_d3dpp, sizeof(D3DPRESENT_PARAMETERS)); // обнулим
}

А сейчас посмотрим, как инициализируется устройство.

bool Graphics::Init(HWND hRenderWnd, int width, int height)
{
// сначала проицициализируем сам DirectX 9
m_pD3D = Direct3DCreate9( D3D_SDK_VERSION );
if (m_pD3D==NULL)
return false;
//создаем структуру с режимами дисплея
D3DDISPLAYMODE d3ddm;
//пробуем определить параметры дисплея
if(FAILED(m_pD3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm)))
{
//генерируем исключение
ExceptionBase err(GETDISPLAYMODEERROR,L"Не могу определить параметры дисплея");
throw err;
return false;
}

//характеристики заднего буфера---------------------------------------------------------
m_d3dpp.BackBufferWidth = width; // указываем ширину и
m_d3dpp.BackBufferHeight = height; // высоту области рендера
m_d3dpp.BackBufferCount = 1; // один внеэкранный буфер

m_d3dpp.BackBufferFormat = d3ddm.Format;

//-------------------------------------------------------------------------------------------------------
m_d3dpp.Windowed = TRUE; // рендер в окне, а не в полный экран

m_d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD; // так лучше делать всегда
m_d3dpp.EnableAutoDepthStencil = TRUE; // нам нужен Z-буфер
m_d3dpp.AutoDepthStencilFormat = D3DFMT_D24S8; // формат Z-буфера
m_d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_ONE;

// и теперь создадим сам девайс
HRESULT hr = m_pD3D->CreateDevice( D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL, hRenderWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING,
&m_d3dpp, &m_pd3dDevice );
if (FAILED(hr))
return FALSE;
_height = height;
_width = width;
return TRUE;
}

Чтобы освободить интерфейс, необходимо вызвать Release. Посмотрим, как удаляются, созданные нами, объекты.

void Graphics::Cleanup()
{
// освобождаем текстуры
vecTextures::iterator itr = m_vecTextures.begin();
while(itr!=m_vecTextures.end())
{
(*itr)->Release();
delete *itr;
itr++;
}
m_vecTextures.clear();

// освобождаем шейдеры
vecShaders::iterator itr2 = m_vecShaders.begin();
while(itr2!=m_vecShaders.end())
{
(*itr2)->Release();
delete *itr2;
itr2++;
}
m_vecShaders.clear();

if (m_pd3dDevice)
{
m_pd3dDevice->Release();
m_pd3dDevice = NULL;
}
if (m_pD3D)
{
m_pD3D->Release();
m_pD3D = NULL;
}
}

Следующим шагом, посмотрим на методы, необходимые для отрисовки.

bool Graphics::StartRender(D3DCOLOR bgColor)
{
if (FAILED(m_pd3dDevice->BeginScene())) // начинаем рисовать
return false;

// очистка экрана
if (FAILED(m_pd3dDevice->Clear(0, NULL, D3DCLEAR_TARGET|
D3DCLEAR_STENCIL| D3DCLEAR_ZBUFFER, bgColor, 1, 0)))
return false;

return true;
}

bool Graphics::EndRender()
{
m_pd3dDevice->EndScene(); // закончили рисовать

// копируем на экран
HRESULT hr = m_pd3dDevice->Present(NULL, NULL, NULL, NULL);
if (FAILED(hr)/*==D3DERR_DEVICELOST*/)
Reset();

if (FAILED(hr))
return false;

return true;
}

Установка формата вершин и отрисовка примитивов.

HRESULT Graphics::SetFVF( DWORD FVF )
{
return m_pd3dDevice->SetFVF(FVF);
}

HRESULT Graphics::DPUP( D3DPRIMITIVETYPE PrimitiveType, UINT PrimitiveCount, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride )
{
return m_pd3dDevice->DrawPrimitiveUP(PrimitiveType, PrimitiveCount, pVertexStreamZeroData, VertexStreamZeroStride);
}

И напоследок, посмотрим на настроечные функции.

HRESULT Graphics::SetRenderState( D3DRENDERSTATETYPE State, DWORD Value )
{
return m_pd3dDevice->SetRenderState(State, Value);
}

HRESULT Graphics::SetTextureStageState(DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD Value )
{
return m_pd3dDevice->SetTextureStageState(Stage,Type,Value);
}

HRESULT Graphics::SetSamplerState( DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD Value )
{
return m_pd3dDevice->SetSamplerState(Sampler, Type, Value);
}

На этом пока все. Применение смотрите в следующей части.

 

[к содержанию] [другие статьи Тимонина Андрея]

подробнее

App Combainer

App Combainer

App Combainer это среда для

обмена опытом в области настольных и веб-приложений.

Служит для сборки настольных и веб-приложений из элементов для получения на выходе приложения с нужным функционалом.



Основные особенности:

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

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

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



Основные особенности (технические):

- запуск и использование готовых настольных и веб-приложений разработанных в среде app combainer и сторонних;

- конструирование элементов для сборки приложений;

- конструирование приложений из элементов;

- открытая система для неограниченного расширения и масштабирования созданных приложений;

- возможность комбинировать все то, что казалось невозможным;

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

- созданные приложения работают как в среде app combainer, так и независимо от неё;

- среда имеет лишь одно ограничение: никаких ограничений;

- область применения: предметная и зависит от целевой направленности функциональных элементов создаваемого приложения;

- оценка доходности, которую можно получить от распространения и применения созданных приложений в различных отраслях;



Размер самораспаковывающегося архива: 466 Mb

Контрольные суммы для проверки целостности скачанного архива:

CRC32: 2A679346
MD5: 4593388FCE943625317941182CFBC80D
SHA-1: 71B6ABFF18C76C7CE83D08CB7C2C0C4EC6AE5691

ВНИМАНИЕ ! Система еще находится на стадии разработки/тестирования. По ссылке выше Вы скачаете продукт, который представляет прообраз будущей системы. В ближайшее время здесь появится ссылка на скачивание актуальной версии.

ознакомиться с функциональными особенностями

Приглашаем Вас стать app комбайнером !

подробнее

     
  Другие уроки можно посмотреть в разделе Статьи  
     
 

WEB-технологии

В данном разделе я решил собрать коллекцию известных мне веб-технологий выполнения различных типичных и нетипичных задач связанных с посторонием сайтов.

Это своего рода ноу-хау, возможно общеизвестные, а возможно и специфичные.

Идея такого справочника по технологиям давно витала в воздухе, посмотрим что получится из этого.

Итак,

 
     
  Проблема с кодировками  
     
 

Наверняка не раз и не два Вы сталкивались с такой проблемой -

открываем какое-то письмо или какой-то сайт, а там вместо нормального текста - абракадабра.

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

Иными словами - Ваша программа пытается отобразить текст в одной кодировке, в то время как на самом деле кодировка текста совсем другая.

 
     
  Как же избежать таких проблем и как их быстрее и правильнее решить ?  
     
 

Универсальных правил на самом деле не так уж и много.

Перечислим их и разберем как они работают.

 
     
 

1) Проблема отображения страниц в браузере

Если вы создали в редакторе шаблон страницы - не важно в каком виде - в виде html, tpl, php или еще каком-то формате, сохранили его а потом открыли в нужном месте сайт и стали смотреть вашу страницу, получив при этом абракадабру, то

1.1 Проверьте какая кодировка используется для данной страницы - как она задана в заголовке <head> вашей страницы.

Это легко сделать используя плагин firebug для браузера Mozilla FireFox

 
     
   
     
 

Для решения этой проблемы нужно выполнить 2 шага:

1.2 Указать в заголовке создаваемой страницы именну ту кодировку, в которой она сохранена;

1.3 Преобразовать страницу в ту кодировку, в которой она будет отображаться и сохранить файл.

Обе эти операции можно выполнить при помощи того редактора текста (кода) который Вы обычно используете.

 
     
 

Например, в редакторе Notepad++ есть специальная опция -

 

 
     
   
     
 

2) Проблема с кодировкой при обработке данных страницы в php коде

Иногда возникает такая проблема -

 
     
 

На странице кодировка корректна, сама страница сохранена в верной кодировке, НО! обрабатываемые данные дают такую кодировку которая приводит к нарушению корректности.

Такие ошибки могут быть при обработке файлов и при работе с базой данных.

Т. е. несогласованность в кодировках между файлами или сайтом и базой данных может приводить к ошибкам в кодировках.

Эти проблемы также решаемы.

 
     
 

Чтобы устранить проблему с согласованием кодировки между файлами используйте следующий код -

<?php $loc_ru = setlocale(LC_ALL, 'ru_RU@RUB', 'ru_RU', 'ru', 'ru'); ?>

 
     
  Данная функция явно укажет локаль, которую надо использовать и проблема может быть решена.  
     
 

А вот решение, которое может устранить несогласованность между вашим кодом и обращением к базе данных -

<?php mysql_query("set names cp1251", $connect); ?>

 
     
 

3) Несоответствие кодировки используемой на сайте и в скрипте.

Иногда возникает ситуация, когда на сайте уже используется какая-то кодировка, а в скрипте желательно использовать другую или же Вы используете обращение со своего сайта к другому сайту, у которого текущей кодировкой является кодировка отличная от вашего сайта.

В этом случае при выводе на страницу вместо текста, выдается в лучшем случае набор знаков вопроса, а в худшем - "абракадабра".

Оказывается есть решение и этой проблемы.

3.1) Это преобразовать файл скрипта в нужную кодировку, а сам код изменить таким образом, чтобы учитывалась измененная кодировка.

3.2) Если код скрипта достаточно сложен и его изменение на новую кодировку может повлечь дополнительные трудности, а значит и ошибки, которые придётся отлавливать и устранять, тогда Вам на помощь может прийти вот такая конструкция -

<?php $new_content = iconv('utf-8', 'windows-1251//TRANSLIT//IGNORE', $old_content); ?>

Т. е. текущая кодировка utf-8 будет по возможности преобразована в windows-1251.

Теперь если выводить значение переменной $new_content, то её значение уже будет представлено в новой кодировке.

Аналогично можно сделать и наоборот -

<?php $new_content = iconv('windows-1251', 'utf-8', $old_content); ?>

Если данная конструкция помогла вам в решении проблемы - отлично, а если нет попробуйте использовать указание другой кодировки, либо просто попробуйте поменять их местами, как в приведенных двух примерах.

 
     
 

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

Удачи вам!

 
     
  Другие уроки можно посмотреть в разделе Статьи  
     
 

4) Несоответствие кодировки используемой по-умолчанию для файлов сайта и в настройках хостинга.

Эта проблема решается достаточно просто. В корневой папке вашего хостинга создайте файл .htaccess (если такого еще там нет), а если он уже есть, тогда посмотрите есть ли в его коде такая строка:

AddDefaultCharset

Если есть, посмотрите какая кодировка там задана. Обычно может быть

AddDefaultCharset windows-1251

или

AddDefaultCharset utf-8

Соответственно если такой записи нет, нужно её внести, а если она есть, то в файлах вашего сайта нужно использовать указанную кодировку, либо если на вашем хостинге пока нет никаких других сайтов кроме одного текущего, тогда можно попробовать изменить кодировку в файле .htaccess на такую, которая используется в файлах сайта и если проблема будет устранена - сайт будет отображаться без нарушений кодировки, значит Вы нашли и устранили указанную проблему.

 
     
подробнее

Дневник памяти - фильм 2004

2004 год, режиссер Ник Кассаветис, в главных ролях Райан Гослинг, Рэйчел Макадамс
кинокомпания New Line Cinema.

совершенно потрясающий, уникальный фильм основанный на реальной истории, рассказанной Николасом Спарксом. Это реальная история из реальной жизни.

советую почитать и книжный вариант - Дневник Памяти - Николас Спаркс. Он кстати по-своему интересен, мне даже больше понравилось, чем фильм. Хотя фильм - тоже один из лучших, какие я только видел в своей жизни.

Итак, история любви, которую никогда не забыть !

книга Дневник Памяти - Николас Спаркс

для просмотра изображений в увеличенном виде кликните по одному из них.


Дневник памяти 2004
Дневник памяти 2004
Дневник памяти 2004
Дневник памяти 2004
Дневник памяти 2004
Дневник памяти 2004


Трейлер

 


Размер файла - 1,44 Гб, контейнер avi, 720x304

Дневник памяти - фильм 2004 СКАЧАТЬ ТОРРЕНТ
[downloads:33]

Для скачиваня торрент раздачи вам потребуется программа mu-torrent (скачивайте бесплатную версию)

КАК ТУТ СКАЧИВАТЬ ?

===========================
ПРАВООБЛАДАТЕЛЯМ - файлы представленные здесь для скачивания не являются собственностью автора публикации, взяты из общедоступных источников информации и не используются для продажи, сдачи в прокат или иного способа извлечения коммерческой выгоды.

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

Сообщить об ошибке в приложении, продукте или на сайте

Вы обнаружили ошибку в приложении, продукте или на сайте.

Через форму Оставить комментарий, см. ниже, можно сообщить об обнаруженной ошибке.

Пожалуйста укажите точное название приложения или продукта в котором обнаружена ошибка;

Опишите условия при которых возникает эта ошибка (если это необходимо и по-возможности) и
приложите скриншот. Изображение скриншота можно выложить на каком-либо
сервисе создания скриншотов или хранения изображений, а здесь указать
ссылку на него.

Если Вы являетесь зарегистрированным пользователем продукта, просьба
указать Ваш регистрационный номер.

Спасибо за вашу поддержку !

megainformatic live chat
Начать беседу
X
 

Оставленные комментарии



fle game engine - движок для создания игр
fle game engine - движок для создания игр


Something: Unexplained 2 captive of desires / Нечто: Необъяснимое 2 в плену желаний
Костя Коробкин Комикс Коллекционное издание - 6 комиксов, 81 страница, 220 mp3 треков
megainformatic Размещение баннерной рекламы у нас
Время загрузки: 0,0873