Информатика и образование
  Мобильная версия сайта            
               
[Главная] [Новости]
[Статьи]
[Проекты]
[Ссылки]
[Автор]
               
    [Архив новостей]        
               
  [Форум] на форуме можно задать вопрос, посмотреть ответы на часто задаваемые вопросы  
       
  Здравствуйте! Вы попали на информационно-образовательный сайт посвященный информатике, информационным технологиям и компьютерным играм. Подробнее о целях и задачах сайта в разделе Главная. [English version of this page here...]    
       
  [Базовые уроки по DirectX] [Основы DirectMusic на Delphi] [Основы DirectInput8 на Delphi] [Основы DirectSound8 на Delphi]    
  [Разработка компьютерной игры] [Пример игры Donuts3D] [Delphi DirectX]    
       
  Эмулятор электронной игры Электроника ИМ-02 "Ну, Погоди!"    
       
  триал-версия, 1,34 Mb   скачайте полную версию игры, зарегистрируйтесь и получите бесплатно полный исходный код игры для компиляции в delphi 7 или 2006 и уроки delphi directx 8.1 содержащие статьи по созданию собственной 2D/3D игры в среде delphi directx    
       
 

Урок 5 Построение классов игровых объектов и других необходимых классов

Ответы на поставленные вопросы

   
       
  О том, что потребуется для данного урока читайте в основном разделе - уроки delphi directx 8.1    
       
  Далее у читателя подразумевается наличие базовых знаний языка Delphi.    
       
  [назад] [страница 2] [далее] [к содержанию]    
       
 

Ответы на вопросы, заданные на предыдущей странице

   
       
 

Как сделать вывод курсора и пунктов выбранных меню с прозрачным фоном, как это имеет место в готовом проекте (CoD)?

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

TGameScene7Title.DoInitDeviceObjects и методе загрузки изображений курсора TD3DGameCursor.DoInitDeviceObjects

вместо строк, использующих формат бэк-буфера -

FCursorImage := TD3DImage2D.Create(g_AppForm.fMyApp.m_d3dsdBackBuffer.Format);

при этом формат текстуры будет D3DFMT_X8R8G8B8, т.е. не использующий альфа-канал

выполнить замену на

FCursorImage := TD3DImage2D.Create(D3DFMT_A8R8G8B8);

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

   
       
 

При выходе из полноэкранного режима нажатием [закончить] происходит ошибка, как ее устранить?

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

В модуле SwitchModesUnit в методе

CMyD3DApplication.FrameMove

{if g_AppForm <> nil then begin
g_AppForm.ExitGame;}

SendMessage(m_hWnd, WM_CLOSE, 0, 0);
Result:= S_OK;
Exit;
//end;

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

   
       
       
       
 

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

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

//SetRect(rc, 0, 0, m_dwScreenWidth, m_dwScreenHeight);

заменяем на
SetRect(rc, 0, 0, m_dwScreenWidth, m_dwScreenHeight-20);

Но Вам вместо этого придется в модуле SwitchModesUnit у формы AppForm задать параметр высоты (Height) 626 вместо 600.

   
       
       
  [назад] [страница 2] [далее] [к содержанию]    
       
       
       
       
       
  по всем вопросам пишите на megainformatic@mail.ru или оставьте сообщение на форуме    
       
 

 

Обновления и новости о развитии Delphi DirectX проекта
смотри на сайтах:

http://www.megainformaticsite.pochta.ru

http://www.megainformatic.boom.ru

http://www.megainformatic.narod.ru

 

   
       
     
 

Cвои пожелания, вопросы или заметки отправляйте на:

megainformatic@mail.ru или пишите на форуме

 
     
   Обмен ссылками  
     
     
             
 
 
         
(с) МЕГА ИНФОРМАТИК 2006-2009
Hosted by uCoz