Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.07.2007, 19:34   #21
LepihinMS
Пользователь
 
Регистрация: 03.02.2007
Сообщений: 45
По умолчанию

Что то не сильно помогло. Куда его вставлять надо?
LepihinMS вне форума Ответить с цитированием
Старый 06.07.2007, 10:54   #22
Romanus
Кодер
Форумчанин
 
Регистрация: 27.01.2007
Сообщений: 271
По умолчанию

после создания самого куба и то же самое делай с источником света
Romanus вне форума Ответить с цитированием
Старый 06.07.2007, 15:31   #23
LepihinMS
Пользователь
 
Регистрация: 03.02.2007
Сообщений: 45
По умолчанию

Вот так кубик видно.

Цитата:
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils, forms, GLMisc, GLScene, GLObjects, GLWin32FullScreenViewer;
var
GLScene1: TGLScene;
GLCamera1: TGLCamera;
GLLightSource1: TGLLightSource;
GLCube1: TGLCube;
GLFullScreenViewer1: TGLFullScreenViewer;
Procedure GenerationObject;
begin
{Ñîçäàíèå GLScene1 BEGIN ---}
GLScene1:=TGLScene.Create(nil);
{Ñîçäàíèå GLScene1 END ---}
{--- Îáúåêòû íà ñöåíå BEGIN ---}
{Ñîçäàíèå GLCube1 BEGIN ---}
GLCube1:=TGLCube.Create(GLScene1);
GLCube1.Material.Texture.Enabled:=t rue;
GLCube1.Material.Texture.Image.Load FromFile('Texture.bmp');
GLScene1.Objects.AddChild(GLCube1);
{Ñîçäàíèå GLCube1 END ---}
{Ñîçäàíèå GLCamera1 BEGIN ---}
GLCamera1:=TGLCamera.Create(GLScene 1);
GLCamera1.DepthOfView:=200;
GLCamera1.Position.X:=4;
GLCamera1.Position.Y:=5;
GLCamera1.Position.Z:=6;
GLCamera1.TargetObject:=GLCube1;
GLScene1.Objects.AddChild(GLCamera1 );
{Ñîçäàíèå GLCamera1 END ---}
{Ñîçäàíèå GLLightSource1 BEGIN ---}
GLLightSource1:=TGLLightSource.Crea te(GLScene1);
GLLightSource1.Parent:=GLCamera1;
GLScene1.Objects.AddChild(GLLightSo urce1);
{Ñîçäàíèå GLLightSource1 END ---}
{--- Îáúåêòû íà ñöåíå END ---}
{Ñîçäàíèå GLFullScreenViewer1 BEGIN ---}
GLFullScreenViewer1:=TGLFullScreenV iewer.Create(GLScene1);
GLFullScreenViewer1.Camera:=GLCamer a1;
GLFullScreenViewer1.Active:=true;
{Ñîçäàíèå GLFullScreenViewer1 END ---}
end;

begin
GenerationObject;
While GLFullScreenViewer1.Active do
begin
application.processmessages;
end;
end.
А как теперь создать процедуры для объектов из вкладки Events? Вроде OnKeyDown?
LepihinMS вне форума Ответить с цитированием
Старый 06.07.2007, 21:52   #24
Romanus
Кодер
Форумчанин
 
Регистрация: 27.01.2007
Сообщений: 271
По умолчанию

Цитата:
А как теперь создать процедуры для объектов из вкладки Events? Вроде OnKeyDown?
Никак. Если ты не хочешь использовать Объект приложение то пиши на чистом API
Romanus вне форума Ответить с цитированием
Старый 06.07.2007, 22:08   #25
LepihinMS
Пользователь
 
Регистрация: 03.02.2007
Сообщений: 45
По умолчанию

Цитата:
пиши на чистом API
А с подробностями можно?
LepihinMS вне форума Ответить с цитированием
Старый 07.07.2007, 10:37   #26
Romanus
Кодер
Форумчанин
 
Регистрация: 27.01.2007
Сообщений: 271
По умолчанию

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

program WinMin;

uses
Windows, Messages, GlScene, GlWin32FullScreenViewer;
const
AppName = 'WinMin';
Var
SView:TGLFullScreenViewer;
Window : HWnd; {Ссылка на окно, позволяет однозначно определить каждое окно.}
Message : TMsg; {Сообщение - реакция ядра Windows на какое-либо событие.}
WindowClass : TWndClass; {Структура класса окна, включает адрес "оконной" функции, обрабатывающей
поступающие от Windows сообщения, атрибуты всех окон, принадлежащих
этому классу, т.е. задаются основные свойства класса.}

function WindowProc (Window : HWnd; Message, WParam : Word;
LParam : LongInt) : LongInt; stdcall;
begin
WindowProc := 0;
case Message of
wm_Destroy : begin {Ядро Windows пытается закрыть окно - обработку этого сообщения нельзя опускать.}
PostQuitMessage (0); {Посылает прикладной программе сообщение wm_Quit код 0 - успешное завершение.}
Exit;
end;
end;
// Все сообщения, не обрабатываемые оконной функцией, передаются функции ядра Windows DefWindowProc.
WindowProc := DefWindowProc (Window, Message, WParam, LParam); {DefWindowProc обеспечивает обработку тех сообщений окна, которые не обрабатывает прикладная программа.}
end;

begin
// Всем полям структуры присваиваются определённые значения (определяются атрибуты окна).
with WindowClass do begin
Style := cs_HRedraw or cs_VRedraw; {Стиль окна класса: окно будет перерисовываться при изменении его горизонтальных и вертикальных размеров.}
lpfnWndProc := @WindowProc; {Указатель на оконную функцию, которая будет обрабатывать все сообщения, посылаемые окну.}
cbClsExtra := 0; {Выделенная память, используемая программой по своему усмотрению.}
cbWndExtra := 0; {Выделенная память, используемая программой по своему усмотрению.}
hInstance := 0; {Ссылка на экземпляр программы, используется ядром Windows для однозначного определения сегмента данных экземпляра программы.}
hIcon := LoadIcon (0, idi_Application); {Ссылка на иконку для окна, для отображения минимизированного окна, сейчас - иконка, соответствующая приложению.}
hCursor := LoadCursor (0, idc_Arrow); {Ссылка на курсор, сейчас - в виде стрелки.}
hbrBackground := GetStockObject (White_Brush); {Ссылка на шаблон заполнения фона для окна.}
lpszMenuName := ''; {Ссылка на строку имени меню.}
lpszClassName := AppName; {Имя класса.}
end;
// Регистрация окна с заданными атрибутами.
// Параметр функции - структура типа TWndClass, содержащая атрибуты окон данного класса.
If RegisterClass (WindowClass) = 0 then
Halt (255); {Регистрация невозможна, завершение работы программы.}
Window := CreateWindow {Создает окно и возвращает ссылку на окно типа HWnd.}
(AppName, {Имя класса, к которому принадлежит создаваемое окно.}
'Win_Min', {Заголовок окна.}
ws_OverlappedWindow, {Стиль окна, сейчас - комбинация стилей.}
cw_UseDefault, {X - начальная позиция верхнего левого угла, сейчас - значение по умолчанию.}
cw_UseDefault, {Y - начальная позиция верхнего левого угла, сейчас - значение по умолчанию.}
cw_UseDefault, {Width - начальная ширина окна, сейчас - значение по умолчанию.}
cw_UseDefault, {Height - начальная ширина окна, сейчас - значение по умолчанию.}
0, {WndParent - родительское окно данного окна.}
0, {Menu - меню, используемое данным окном.}
HInstance, {Instance - указывает на экземпляр программы. этот параметр указывается, чтобы оконная функция имела доступ к сегменту данных программы.}
nil); {Param - определяет дополнительную информацию, посылаемую через сообщение wm_Create.}
// Окно создано, его необходимо отбразить на экране.
SView:=TGLFullScreenViewer.Create(n il);
//ShowWindow (Window, CmdShow); {Отображает или делает невидимым указанное окно.}
//UpdateWindow (Window); {Указывает прикладной программе, что часть окна нуждается в перерисовке.}
// После того, как окно отбражено на экране, управление передаётся циклу обработки сообщений.
// GetMessage извлекает сообщения из очереди и помещается в структуру типа TMsg.
// Для всех сообщений, отличных от wm_Quit (завершение работы программы), эта
// функция возвращает ненулевое значение и цикл продолжает обработку сообщений.
while GetMessage (Message, 0, 0, 0) do
begin
TranslateMessage (Message);
DispatchMessage (Message);
Window:=SView.Handle;
end;
Halt (Message.wParam);
end.
Romanus вне форума Ответить с цитированием
Старый 07.07.2007, 15:09   #27
LepihinMS
Пользователь
 
Регистрация: 03.02.2007
Сообщений: 45
По умолчанию

Ты издеваешься да? Я тут понял три слова из тех что в комментариях.
LepihinMS вне форума Ответить с цитированием
Старый 07.07.2007, 17:48   #28
Romanus
Кодер
Форумчанин
 
Регистрация: 27.01.2007
Сообщений: 271
По умолчанию

Ну тогда я умываю руки и советую тебе почитать умные книги о подобных методах создания приложений.
Romanus вне форума Ответить с цитированием
Старый 07.07.2007, 21:10   #29
LepihinMS
Пользователь
 
Регистрация: 03.02.2007
Сообщений: 45
По умолчанию

А где бы их взять?
LepihinMS вне форума Ответить с цитированием
Старый 07.07.2007, 22:30   #30
Romanus
Кодер
Форумчанин
 
Регистрация: 27.01.2007
Сообщений: 271
По умолчанию

Цитата:
А где бы их взять?
Любая книга по игровому программированию начинается именно с этом темы
Romanus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы с GLScene!!! hoza_syl Gamedev - cоздание игр: Unity, OpenGL, DirectX 7 11.02.2009 03:08
GLSCENE, что и как xPAL Свободное общение 2 21.04.2008 00:20
3D модель в GLScene -=<[Evklidd]>=- Gamedev - cоздание игр: Unity, OpenGL, DirectX 4 04.02.2008 15:32
GLScene?? Foll Gamedev - cоздание игр: Unity, OpenGL, DirectX 3 09.12.2007 17:00
Вода в Glscene Pedro Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 20.11.2007 21:42