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


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

megainformatic - Использование checkbox
        Другие уроки можно посмотреть в разделе Статьи  
подробнее...

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

ЛЕТО

megainformatic - Нечто Необъяснимое - пре релиз

megainformatic cms admin

megainformatic cms admin

megainformatic - Основы создания 3d игр - проект Тайны Морских Глубин

megainformatic - уроки delphi directx 8.1 3d - Основы Вращений и Управления камерой

megainformatic cms seo

megainformatic cms admin

megainformatic - Моделируем девушку в 3d - Подготовка 2d-эскиза тела человека

megainformatic cms stat kit

megainformatic cms seo

megainformatic - Теория и практика 3d игр - О Кватернионах

megainformatic - Теория и практика 3d игр - Основы теории векторов

megainformatic - Теория и практика 3d игр - Важные замечания

megainformatic - Моделируем девушку в 3d используя 3ds max - Подготовка к моделированию ноги - готовим ширму

megainformatic - Моделируем девушку в 3d используя 3ds max - Выполняем моделирование ноги

megainformatic - Моделируем девушку в 3d используя 3ds max - Улучшаем созданную модель женской ножки

megainformatic cms stat kit

megainformatic - Подводная лодка и подводный мир

megainformatic - megainformatic cms - Форма для смены шаблонов сайта - модуль template selector

megainformatic cms social

megainformatic cms social Руководство пользователя

megainformatic - megainformatic cms - Форма для смены шаблонов сайта - модуль template selector

модуль слайдера

ТЗ на сайт коллективных покупок

модуль slider

megainformatic cms seo

Поддержка сайтом нескольких языков - модуль multi lang

Поддержка сайтом нескольких языков - модуль multi lang

megainformatic - Моделируем девушку в 3d используя 3ds max - другие статьи сборника статей - обзор

установка нового шаблона в joomla 2.5.4

Описание продукта megainformatic cms social

Описание продукта megainformatic cms social

megainformatic - ТЗ на сайт по аналогии rys-stroi.ru

megainformatic cms groupon

megainformatic - дизайн сайта строительной компании УЛЬТРА-СТРОЙ

megainformatic - Тестирование подключения платежной системы

megainformatic - Выпадающее окно регистрации на сайте

megainformatic - Тестирование подключения к платежной системе с использованием скрипта эмулятора

megainformatic - Модуль для регистрации пользователя на сайте

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

megainformatic - Быстрый подсчёт ключевых слов в статье

megainformatic - Модуль подсчёта ключевых слов в статье

megainformatic - Онлайн-сервис для подсчёта статистики ключевых слов

megainformatic - Пишем слайдер на javascript с нуля

megainformatic - Логика работы слайдера на javascript

megainformatic - Пишем свою соц. сеть - модуль предложений для webjob

megainformatic - Пишем свою соц. сеть - модуль предложений для webjob - часть реализации для личного кабинета

megainformatic - Пишем свою соц. сеть - Реализация файлового хранилища предложений в csv-файле

megainformatic - Тестирование подключения к платежной системе ЕДИНЫЙ КОШЕЛЕК (w1.ru) с использованием скрипта эмулятора

megainformatic - Пишем свою cms - шаг 1

megainformatic - Пишем свою cms - шаг 2

megainformatic - Пишем свою cms - шаг 3

megainformatic - бесплатная флеш игра freeway fury 2 - разработчик Serius Games

megainformatic - бесплатные флеш игры сторонних разработчиков

подробнее

Тестирование подключения к платежной системе ЕДИНЫЙ КОШЕЛЕК (w1.ru) с использованием скрипта эмулятора

Доброго времени суток Вам, читающим эти строки !

У меня в данный момент утро - 11:13.

Сегодня я расскажу Вам как протестировать подключенную к сайту платежную систему если она не имеет тестового режима платежей.

Эту работу Мы с Вами рассмотрим на готовом уже реализованном примере сделанном для сайта на базе megainformatic cms groupon

С такой проблемой я столкнулся, когда занимался подключением к платежной системе ЕДИНЫЙ КОШЕЛЕК.

Зайдём на сайт megainformatic cms groupon

Нажмём кнопку Войти и используем для входа следующие данные:

admin

123456

Теперь пошагово рассмотрим что нужно сделать для настройки и проверки подключения к платежной системе ЕДИНЫЙ КОШЕЛЕК.

1) Сначала в личном кабинете ЕДИНЫЙ КОШЕЛЕК нужно настроить базовые шаги выполнения оплаты.

== настройки личного кабинета ЕДИНЫЙ КОШЕЛЕК (раздел Интернет Магазин) ==

Адрес для оповещений - http://megainformatic.ru/webprojects_cms/megainformatic_cms_groupon/modules/pay/
modules/pay/pay_systems/w1/process/w1.php

Цифровая подпись (ЭЦП) - тип подписи MD5

Остальные настройки выставляются на усмотрение владельца интернет-магазина.

Персональные настройки требуемые для функционирования модуля оплаты ЕДИНЫЙ КОШЕЛЕК нужно корректно прописать в файле

modules/pay/pay_systems/w1/config_w1.php

2) После того, как это сделано в админ-панели сайта входим в раздел УПРАВЛЕНИЕ > НАСТРОЙКИ САЙТА и выставляем тестовый режим для оплаты (см. более подробно ниже - пункт 3.1)

3) Теперь можно перейти к тестированию оплаты

Тестирование оплаты через эмулирующий скрипт ЕДИНЫЙ КОШЕЛЕК

======================================

По аналогии с тем, как в статье - Тестирование подключения платежной системы было описано тестирование оплаты через тестовый сервер робокасса (robokassa_test)

Мы с вами будем тестировать подключение к ЕДИНОМУ КОШЕЛЬКУ.

Отличием, как видите, является то, что у ЕДИНОГО КОШЕЛЬКА нет тестового сервера, поэтому тестировать будем просто через эмулирующий скрипт, который представляет

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

3.1) Сначала нужно включить тестовый режим оплаты в настройках сайта - это необходимо для корректного обращения из скрипта сайта к реальному серверу ЕДИНОГО КОШЕЛЬКА либо к скрипту эмуляции (в нашем данном примере) - для этого -

заходим в админ-панель сайта и выбираем раздел УПРАВЛЕНИЕ > Настройки сайта

для пункта Тестовый Режим оплаты указываем значение 1

и нажимаем кнопку Сохранить изменения.

После этого можно тестировать подключение ЕДИНЫЙ КОШЕЛЕК в тестовом режиме со скриптом эмулятора.

3.2) скрипт эмулятора - это - http://megainformatic.ru/webprojects_cms/
megainformatic_cms_groupon/w1_test_payment.php


чтобы сформировать тот или иной шаг выполнения платежа (всего их 3), надо знать следующее:

сумму платежа, которую будем тестировать

id платежа, который тестируем

цп платежа (цифровую подпись)

id будущего платежа можно узнать посмотрев в админке - ПОЛЬЗОВАТЕЛИ > ОПЛАТА.

Т. е. если например

в админке уже сделано 20 платежей, то это будет номер 21

цп можно узнать посмотрев на странице эмулятора сразу после выполнения шага 3.3

3.3) Входим в личный кабинет юзера

(после входа на сайт как суперадмин просто обратитесь к главной странице сайта по адресу -

megainformatic cms groupon),

а затем слева от аватарки кликните пункт ЛИЧНЫЙ КАБИНЕТ

вводим сумму пополнения, например, 120 и жмём кнопку единый кошелек

3.4) Попадем на страницу эмулятора, который просто распечатает на экран все переменные, переданные через POST

После этого можно в админке проверить появление записи о сделанном платеже со статусом no_pay (не оплачен)

3.5) Тестируем вызов STATUS URL (оповещение о платеже) - находясь на странице с адресом

http://megainformatic.ru/webprojects_cms/
megainformatic_cms_groupon/w1_test_payment.php


добавляем в конец адреса параметры, например - ?p=1&a=120.00&id=21&h=UWDvaImaRwxmqnK4wz8WTA%3D%3D

,где p - это тестируемый шаг платежа (от 1 до 3)

a - сумма платежа, которая будет проверяться и

id - тестируемый id (номер) платежа

h - цифровая подпись платежа - в вашем случае должна быть такая, которая была сгенерирована на шаге 3.4

т. е. адресная строка должна выглядеть как -

http://megainformatic.ru/webprojects_cms/
megainformatic_cms_groupon/w1_test_payment.php?p=1&a=120.00&id=21&h=UWDvaImaRwxmqnK4wz8WTA%3D%3D


и нажимаем ENTER чтобы перейти на эту страницу. Далее на открывшейся странице просто жмём кнопку ОТПРАВИТЬ

Попадем на STATUS URL нашего сайта где будет написано WMI_RESULT=OK, что является ответом для сервиса ЕДИНОГО КОШЕЛЬКА.

А в админке данный платеж должен изменить статус на accept (подтвержден).

3.6) Тестируем Fail URL

в адресной строке браузера набираем -

http://megainformatic.ru/webprojects_cms/
megainformatic_cms_groupon/w1_test_payment.php?p=3


и нажимаем ENTER чтобы перейти на эту страницу. Далее на открывшейся странице просто жмём кнопку SEND

В результате должна отобразиться страница обработки Fail URL - т. е. выдачу ошибки платежа

В админке платеж не меняет своё состояние

3.7) Тестируем Success URL - успешное зачисление платежа

в адресной строке браузера набираем -

http://megainformatic.ru/webprojects_cms/
megainformatic_cms_groupon/w1_test_payment.php?p=2


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

и нажимаем ENTER чтобы перейти на эту страницу. Далее на открывшейся странице просто жмём кнопку SEND

В результате должна отобразиться страница обработки Success URL - т. е. успешное завершение платежа (Ваш платеж успешно подтвержден!)

В админке платеж не меняет своё состояние

3.8) Пополнение баланса пользователя проверяется аналогично робокассе - как только

админ сайта убедился, что средства от данного пользователя действительно пришли на счёт интернет-магазина, он заходит в админку и меняет состояние этого платежа на ok.

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

Защита от случайного повторного пополнения по тому же самому платежу обеспечивается на двух уровнях:

1) Админ не может изменить состояние платежа на иное, если платеж уже зачислен и имеет статус ok.

2) Сервис платежной системы при случайных повторных вызовах STATUS URL не может изменить статус платежа снова на accept, т. к. при этом проверяется какой статус уже выставлен для платежа. Если выставлен статус accept или ok, то ничего не происходит.

На этом на сегодня всё :)))))

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

Удачи ВАМ на ниве сайтостроя !!!

подробнее

     
 
Урок 3 Оконный и полноэкранный режимы работы D3D-приложения
 
О том, что потребуется для данного урока читайте в основном разделе - уроки delphi directx 8.1
 
Далее у читателя подразумевается наличие базовых знаний языка Delphi.
 
[назад] [страница 2] [далее] [к содержанию]
 
Опираясь на код приложения, который Вы создали в предыдущем уроке рассмотрим особенности, которые Вам нужно учесть при реализации работы в оконном/полноэкранном режимах
 
В первую очередь для проверки правильности созданного кода управления от DirectInput попробуйте добавить показ/отключение показа FPS. Для этого Вам нужно заглянуть в исходный код игры "Ну, Погоди!" и реализовать работу методов CountFPS, ShowFPS
 

Обратите внимание, что код метода TD3DGameApp.CreateInputObjects

должен выглядеть следующим образом -

procedure TD3DGameApp.CreateInputObjects;
begin
SetDefaultDefKeys;
m_DXInput := TDXInput.Create(Self);
m_DXInput.ActiveOnly := False;
// задает использование DirectInput всегда, независимо от активности приложения
m_DXInput.Exclusive := False;
//эксклюзивный режим нужен только тогда, когда Вы хотите использовать собственный //курсор мыши, прорисовываемый средствами Direct3D
end;

В качестве действия ShowFPSTrigger внутри DefineDefaultKeys нужно задать какую-либо клавишу.

вызов метода ShowFPS нужно добавить внутри UpdateInput

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

Индикатор активности приложения m_bIsActive устанавливается в методе TD3DGameApp.MsgProc

при получении системного сообщения WM_ACTIVATEAPP

m_bIsActive := BOOL(wParam);

 

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

Вместо этого активацию нужно выполнить реализовав для класса TForm обработчики событий OnActivate и OnDeactivate-

procedure TMainForm.FormActivate(Sender: TObject);
begin
if g_d3dApp <> nil then
g_d3dApp.m_bIsActive := True;
end;

procedure TMainForm.FormDeactivate(Sender: TObject);
begin
if g_d3dApp <> nil then
g_d3dApp.m_bIsActive := False;
end;

 

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

 
Прежде всего отметим, что код примера SwitchScreenModesInVCL основывается на примере VCLTex из Delphi DirectX SDK Алексея Баркового (http://www.clootie.ru). Особенности касающиеся работы с текстурами удалены, внимание уделено лишь переключениям режимов Полноэкранный/Оконный в приложении на основе VCL и особенностям использования DX8_DIUtil8.pas (модуль для работы с DirectInput8 из Delphi) с классом CD3DApplication.
 
Как и в наших предыдущих уроках код приложения построен на основании двух классов. Первый класс производный от - TForm из VCL, второй подобен TD3DGameApp, но происходит от CD3DApplication из модуля D3DApp.pas библиотеки с общим кодом.
 

Схема работы приложения аналогичная, тому, что имело место в предыдущих уроках. Однако есть ряд особенностей, которые нужно учесть при переносе кода в пример FullscreenMode.

Какие же?

 

Прежде всего, если Вы заглянете в код SwitchScreenModesInVCL внутри модуля SwitchModesUnit.pas,

то обнаружите новый класс - TAbstractApp. Этот класс используется как переходное звено между классом приложения CD3DApplication не являющимся TForm и объектом TDXInput, требующим для своего использования именно такого класса.

Происходит всё довольно просто. Внутри класса CMyD3DApplication производного от CD3DApplication объявляется поле соответствующего типа, а в методе OneTimeSceneInit вызывается создание данного поля и задание для него указателя на обработчик окна данного класса.

Код внутри самого класса выполняет запоминание ссылки на оконную процедуру класса, а сама она выполняет не что иное, как вызов метода MsgProc класса CMyD3DApplication.

Используя объект FAbstractApp при создании объекта TDXInput достигается требуемый эффект. Класс TDXInput извлекает нужные ему параметры из объекта FAbstractApp, а приложение работает как ни в чем не бывало.

Если Вы посмотрите на код примеров из предыдущих уроков, то там класс TD3DAbstractApp является базовым для класса TD3DGameApp.

Такие сложности были связаны с тем, что модуль DX8_DIUtil8.pas был разработан на основе аналогичного кода из библиотеки DelphiX. Эта библиотека хоть и уже несколько устарела, послужила основой для данного модуля, поскольку не удалось разрешить некоторые проблемы, связанные с использованием оригинальных файлов для DirectInput8 из DirectX SDK на C++ при конверсии примеров на Delphi.

Получился компромисс.

 

Для примера SwitchScreenModesInVCL была выполнена следующая подготовка:

класс формы TAppForm, объект g_AppForm.

На форме располагаются

MainDisplayPanel: TPanel

и

ToggleFullscreen: TButton;

последняя применяется вместо пункта меню TMainMenu переключения режимов (для простоты).

 

Код выполняющий собственно переключение оконного/полноэкранного режимов - это обработчик события по нажатию на кнопку ToggleFullscreen

Этот же код вызывается при срабатывании действия DirectInput c именем ChangeWindowModeKey и

внутри FullScreenWndProc - для переключения в оконный режим по нажатию [Esc]ape

 

Этот метод - CD3DApplication.ToggleFullscreen

как видим часть класса CD3DApplication и реализован внутри D3DApp.pas

 

Внутри данного метода происходят следующие интересные вещи:

получаем информацию о адаптере, устройстве и режиме

pAdapterInfo := @m_Adapters[m_dwAdapter];
pDeviceInfo := @pAdapterInfo^.devices[pAdapterInfo^.dwCurrentDevice];
pModeInfo := @pDeviceInfo^.modes[pDeviceInfo^.dwCurrentMode];

используемом для формирования изображения D3D-приложения.

Если устройство не поддерживает оконный режим, то остаемся в полноэкранном режиме

Переключаем текущее состояние с оконного на полноэкранное (или наоборот)

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

Выставляем параметры отображения

Учитываем изменившиеся размеры окна

Располагаем окно в нужной позиции поверх всех остальных

 
Это лишь краткое описание того, что на самом деле происходит в коде (подробнее см. сам код примера)
 
Сравним это с тем, что имеет место в примере FullscreenMode (для Вас он уже есть в готовом виде, в конце данного урока), а пока нужно рассмотреть особенности внутри метода TD3DGameApp.SwitchDisplayModes
 

здесь информацию об адаптере, устройстве и режиме мы берем из -

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

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

Какой текущий видеорежим использовался во время старта приложения?

Это мы можем узнать из метода TD3DGameApp.CreateDisplayObjects

 

Здесь видно, что для оконного режима не заданы размеры для

m_d3dpp.BackBufferWidth := m_dwScreenWidth;
m_d3dpp.BackBufferHeight := m_dwScreenHeight;

в D3DApp.pas (CD3DApplication.Initialize3DEnvironment) они задаются,

как задается и m_d3dpp.hDeviceWindow := m_hWnd;

причем как для оконного, так и для полноэкранного

 

аналогично поступим и в нашем примере

возвращаемся к методу TD3DGameApp.SwitchDisplayModes

ошибка происходит в методе m_pd3dDevice.Reset( m_d3dpp );

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

Как это происходит в примере SwitchScreenModesInVCL ?

TAppForm.FormShow

fMyApp.m_hWnd := m_hwndRenderWindow;
fMyApp.m_hWndFocus := m_hwndRenderFullScreen;

Далее можно просмотреть где в коде CD3DApplication встречаются вхождения на m_hWnd и m_hWndFocus

 

Также интерес вызывает параллельный вопрос:

если m_hWnd и m_hWndFocus разные обработчики, а при создании TDXInput указывается лишь один из них, то как это скажется на работе устройств DirectInput?

 

Итак, что мы имеем в коде SwitchScreenModesInVCL ?

TAppForm.FormShow >

CMyD3DApplication.Create - всё предельно просто и ясно.

для полноэкранного режима создается отдельное окно - m_hwndRenderFullScreen

fMyApp.m_hWnd := m_hwndRenderWindow;
fMyApp.m_hWndFocus := m_hwndRenderFullScreen;

 

CD3DApplication.Create_ >

BuildDeviceList - сбор данных о дисплейном адаптере и установка режима 640х480 16 бит

т. к. m_hWnd уже <> 0, то в качестве окна используется fMyApp.m_hWnd := m_hwndRenderWindow; (см. TAppForm.FormShow)

 
FOldWndProc задаем для текущего окна
 

if (m_hWndFocus = 0) then
m_hWndFocus:= m_hWnd;

окно фокуса также иное

 

сохраняем свойства окна, запускаем таймер, инициализируем сцену и 3D-среду (Environment)

CD3DApplication.Initialize3DEnvironment - остановимся подробнее также на данном методе

здесь мы видим как определяется текущий видеорежим (заданный в BuildDeviceList)

проводится настройка изменений размеров

настраиваются следующие параметры отображения -

будет ли режим оконным

m_d3dpp.Windowed := pDeviceInfo^.bWindowed;

{...}

m_d3dpp.hDeviceWindow := m_hWnd; //независимо от оконный/полноэкранный!!!

if (m_bWindowed) then //размеры буфера подготовки кадра, его формат
begin
m_d3dpp.BackBufferWidth := m_rcWindowClient.right - m_rcWindowClient.left;
m_d3dpp.BackBufferHeight := m_rcWindowClient.bottom - m_rcWindowClient.top;
m_d3dpp.BackBufferFormat := pAdapterInfo^.d3ddmDesktop.Format;
end else
begin
m_d3dpp.BackBufferWidth := pModeInfo^.Width;
m_d3dpp.BackBufferHeight := pModeInfo^.Height;
m_d3dpp.BackBufferFormat := pModeInfo^.Format;
end;

устройство создается как

// Create the device
hr := m_pD3D.CreateDevice(m_dwAdapter, pDeviceInfo^.DeviceType,
m_hWndFocus, pModeInfo^.dwBehavior, m_d3dpp,
m_pd3dDevice);
//т. е. при создании устройства ему передается обработчик окна фокуса

 

Пример FullscreenMode(18 Кб)

[downloads:11]

Прежде чем открывать пример из среды Delphi и компилировать Вам понадобится расположить в папке примера файлы D3DX81ab.dll и DXErr81ab.dll (их найдете в дистрибутиве игры "Ну, Погоди!" или в папке с исходным кодом, можно также в архиве с общим кодом)

Взять из дистрибутива игры "Ну, Погоди!" папку Media\texures

Взять из исходного кода игры "Ну, Погоди!" папку common находящуюся внутри папки projects\2d_games\NuPogodi\source

Только после этого пример будет нормально компилироваться и работать!!!

Об этом уже неоднократно упоминалось, а также написано внутри readme.txt приложенном к архиву данного примера, но еще раз напоминаю, чтобы не возникало вопросов.

 

имеет следующие особенности

TMainForm.InitD3DApp - данный метод вызывается при показе формы окна приложения однократно пока g_d3dApp = nil.

Внутри него происходит создание объекта g_d3dApp, создание окна для полноэкранного режима

Метод TD3DGameApp.Create_ - внутри данного метода лишь задаются размеры окна для структур

m_rcWindowBounds и m_rcWindowClient

и вызывается метод начальной инициализации сцены

Внутри TD3DGameApp.CreateDisplayObjects

m_d3dpp.hDeviceWindow := m_hWnd; //указывает на обработчик окна формы приложения

но при создании указывается обработчик окна полноэкранного режима

hr := pD3D.CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL,
m_hWndMain, D3DCREATE_HARDWARE_VERTEXPROCESSING,
m_d3dpp, m_pd3dDevice );

 

TD3DGameApp.SwitchDisplayModes

{...}

AdjustWindowForChange; //важный метод, если его не использовать (попробуйте закомментировать),

то сквозь изображение полноэкранного режима "проблескивают" элементы рабочего стола.

m_d3dpp.hDeviceWindow := m_hWnd; //указывает на обработчик окна формы приложения, все сообщения будут посылаться ему даже при полноэкранном режиме

m_pd3dDevice.Reset - работает корректно именно при верном использовании обработчиков окон в указателях, особенно важно, что при создании устройства был указан обработчик окна полноэкранного режима (попробуйте заменить на обработчик окна формы с расположенном на нём TPanel, что имеет место в нашем случае и данный метод сразу же будет давать ошибку во время попытки переключения в полноэкранный режим) - приложение просто будет закрываться в связи с ошибкой

 
TD3DGameApp.CheckForLostFullscreen - метод ForceWindowed и его реализация опущены для некоторого упрощения кода
 
FullScreenWndProc - оконная процедура полноэкранного режима, если хотите узнать почему в полноэкранном режиме нет курсора мыши и как его установить - загляните сюда. Здесь же видно по какому сообщению (клавише) осуществляется выход из полноэкранного режима
 

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

TD3DGameApp.DrawGameView

метод

// Erase the screen
m_pd3dDevice.Clear( 0, nil, D3DCLEAR_TARGET or D3DCLEAR_ZBUFFER,
FillColor, 1.0, 0 );

вызывается вне BeginScene ... EndScene

влияет ли это на производительность?

 

При попытке использовать код, выводящий изображение текстуры в примере SwitchScreenModes по аналогии с примером FullscreenMode не удается добиться такого же вида текстуры в рабочем окне, как в примере FullscreenMode. Почему?

 

 

Вот и сам пример SwitchScreenModes. (13 Кб)

[downloads:12]

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

 
[ответы на поставленные вопросы] - для самопроверки
 
[назад] [страница 2] [далее] [к содержанию]
 
 
     
     
     
     
подробнее

     
 
megainformatic cms seo

Продвижение Вашего сайта - megainformatic cms seo

Для входа на сайт используйте логин: admin и пароль: admin

megainformatic cms seo - это компактное решение для создания вашего первого сайта и его продвижения. Данная версия использует базы данных my sql. Система устанавливается на ваш хостинг в считанные минуты .

Скопируйте все файлы на ваш хостинг и создайте базу данных - сайт готов к работе !!!

В комплект входят 6 готовых шаблонов, и набор модулей для административной и фронтальной частей сайта:

- модуль входа в административную часть сайта, разделение пользователей по ролям;
- модуль профилей пользователей;
- модуль панели управления (+меню);
- модуль добавления/редактирования страниц сайта;

а также модули для продвижения сайта:

- мета; - карта сайта;


 

Стоимость: 350 руб.

 
     
 

Продвижение сайта - это основная составляющая успеха. Поэтому применяя необходимые инструменты продвижения Вы сможете достичь поставленных целей.

Два основных инструмента продвижения - это улучшение индексации сайта поисковыми роботами - megainformatic cms seo

Содержит 2 основных компонента для реализации этих целей -

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

 
     
 

Сайт и продвижения сайта на - megainformatic cms seo

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

- компактность и быстрота в работе и развертывании сайта;

- открытый исходный код на php;

- быстрая и простая установка;

- подробное описание возможностей;

- может использоваться как самостоятельная система для управления сайтом, так и в полном составе megainformatic cms той версии которую вы используете или планируете использовать:

megainformatic cms express

megainformatic cms

megainformatic cms e-pro

megainformatic cms e-shop

megainformatic cms e-mailer

 
     
 

 

Нет ничего проще, чтобы реализовать ваш личный сайт. Получив в своё распоряжение эту систему Вы получаете собственный готовый сайт, панель управления и инструменты продвижения.

Имея дистрибутив, распакуйте его и скопируйте полученные файлы на свой хостинг. Создайте посредством phpMyAdmin базу данных и разверните базу данных сайта в соответствии с инструкцией.

Подробнее об установке на хостинг можно почитать здесь

Ваш сайт готов к работе !!!

 
     
     
 

Если возможности megainformatic cms seo, покажутся Вам недостаточными и Вы захотите чего-то большего - обратите внимание на следующие продукты -

megainformatic cms e-pro

 
     
  megainformatic cms e-shop  
     
  megainformatic cms e-mailer  
     
  Удачи вам в создании собственного виртуального интернет-пространства !!!  
     
     
     
подробнее

Ваша реферальная ссылка



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

Реферальная ссылка может выглядеть как угодно, главное чтобы в ней
присутствовал параметр rid=

примеры -
http://megainformatic.ru/?rid=5
http://megainformatic.ru/after_buy.php?pid=46&rid=5

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

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

Основные наши проекты



1. создание сайтов и веб-приложений используя собственные
наработки и решения Проекты.

2. развитие платформы fle game engine -
движок для создания игр fle game engine
и создание проектов на ней - Balls and Holes игра.

3. А также все проекты представленные на главной

главная - подстраница 542

и на других страницах сайта.

С полным списком проектов можно ознакомиться на карте сайта.

Новогодняя дискотека 2013 на megainformatic точка ru

Ведущий: cj andy;

dj andy 1998 - 2002

ВНИМАНИЕ! При прослушивании композиций после нажатия вами кнопки воспроизведения может возникать небольшая задержка в несколько секунд, связанная с загрузкой файла композиции в Ваш браузер. Поэтому просто наберитесь терпения и немножко подождите. Сразу же после этого Вы услышите музыку :)


  Вступление - Дорогие друзья, Мы начинаем нашу новогоднюю вечеринку 2013. Ура !!! 31 декабря 2012  
     
     
 
 
     
     
     
     
  Композиция фри-стайлинг версия от 6 января 2013  
     
     
 
 
     
     
     
     
  Новогодняя - Новый год стучится в двери, он уже на полпути, в сказку, в чудо все мы верим, вместе нам вперед идти! 31 декабря 2011  
     
     
 
 
     
     
     
     
  kristmas - рождество - 4:02 - 8 января 2001 г - композиция посвященная рождеству (electro house)  
     
     
 
 
     
     
     
     
  Different Reality - Scooter  
     
     
 
 
     
     
     
     
  Стремление (aspiring) - 3:34 - 14 декабря 2012 electro :) Стремление вперед ... А вообще я щас заметил, что aspiring - это же аспирин :))) Таблетка аспирина так сказать :))) Но вообще композиция получилась немного "тяжелая" и "перегруженная", и всё же надеюсь вам она понравится.  
     
     
 
 
     
     
     
     
  Герои наших дискотек - Белый, Марат и Ник из фильма Даже Не думай. Марат встречает Машу на Дискотеке, 2002 г. Веселимся под их музыку !!!  
     
     
 
 
     
     
     
     
  Кшиштоф Радомски, Above the Zenith  
     
     
 
 
     
     
     
     
  Веселая мелодия из м/ф Планета 51, 2009 г.  
     
     
 
 
     
     
     
     
  Марк Вера - Композиция на тему игры Laser Squad  
     
     
 
 
     
     
     
     
  Морозное утро (Frosty morning) - 2:35 - 3-5 февраля 2012  
     
     
 
 
     
     
     
     
  Песенка Сильвера - Лучше быть одноногим, чем быть ... одиноким из м/ф Остров Сокровищ, 1988 г.  
     
     
 
 
     
     
     
     




другие композиции

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

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



Андрей Яковенко,  31 декабря 2012

С НОВЫМ ГОДОМ!!! УДАЧИ! БЛАГОПОЛУЧИЯ! ПРОЦВЕТАНИЯ!


Ответ админа >>>,  31 декабря 2012

Спасибо, тебя также !


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


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