------------ Дoбавленo:
Вот код
#pas
unit HiAsmUnit;
interface
uses kol,Share,Debug, GameTypes, DGLEngine_header;
type
THiAsmClass = class(TDebug)
private
public
_data_Data:THI_Event;
Data1:THI_Event;
Data2:THI_Event;
Data3:THI_Event;
procedure doinit(var _Data:TData; Index:word);
procedure doPlayerX(var _Data:TData; Index:word);
end;
implementation
var Font, Space : cardinal;
procedure Init;
begin
DirectSoundInit;
ExploSound:=LoadSample('Data\expl.wav');
PlasmaSound:=LoadSample('Data\plasma.wav');
WriteValueToIniFile ('C:\Program Files\HiAsm\Разрабатываемые компоненты\DGLE\DGLEngine_Log.ini', 'Section', 'Key', '1') ;
Font:=LoadFontFromFile('Data\Font.dft');
AsteroidModel:=LoadModel('Data\Asteroid.dmd',MDL_NO_SCALE);// MDL_SCALE_EVERY_FRAME - указывает, что модель будет автомасштабироватья при загрузке
Space:=LoadTextureFromFile('Data\space.bmp');
SpaceShip:=LoadTextureFromFile('Data\Ship.bmp',TEXDETAIL_BEST,TRANSCOLOR_AQUA);
PlasmaTexture:=LoadTextureFromFile('Data\Plasma.bmp',PlasmaTexture);
AsteroidTexture:=LoadTextureFromFile('Data\Asteroid.jpg');
ExploTexture:=LoadTextureFromFile('Data\Explo.bmp');
CreateConsole(Font);
WriteValueToIniFile ('C:\Program Files\HiAsm\Разрабатываемые компоненты\DGLE\DGLEngine_Log.ini', 'Section', 'Key', '2') ;
RegisterCommandProcedure('quit',@QuitEngine);
WriteValueToIniFile ('C:\Program Files\HiAsm\Разрабатываемые компоненты\DGLE\DGLEngine_Log.ini', 'Section', 'Key', '3') ;
end;
procedure Draw;
begin
WriteValueToIniFile ('C:\Program Files\HiAsm\Разрабатываемые компоненты\DGLE\DGLEngine_Log.ini', 'Section', 'Key', '6') ;
Begin2D;
DrawTexture2D_Simple(Space,0,0,640,480);
DrawPlasma;
DrawPlayer;
End2D;
WriteValueToIniFile ('C:\Program Files\HiAsm\Разрабатываемые компоненты\DGLE\DGLEngine_Log.ini', 'Section', 'Key', '4') ;
DrawAsteroid;
Begin2D;
DrawExplo;
DrawText2D(Font,10,10,'FPS: '+Int2Str(GetFPS),$FFFFFF,200);
DrawConsole;
End2D;
end;
procedure Process;
begin
WriteValueToIniFile ('C:\Program Files\HiAsm\Разрабатываемые компоненты\DGLE\DGLEngine_Log.ini', 'Section', 'Key', '5') ;
if random(25) = 10 then CreateAsteroid(random(600),-64);
ProcessPlayer;
ProcessPlasma;
ProcessConsole;
ProcessAsteroid;
ProcessExplo;
if IsKeyPressed(Key_Escape) then QuitEngine;
end;
procedure InitMan;
begin
RegProcedure(PROC_DRAW,@Draw);
RegProcedure(PROC_PROCESS,@Process);
RegProcedure(PROC_INIT,@init);
SetGameProcessInterval(25);
SetEngineInitParametrs(640,480,32,0,False,FALSE,FALSE,TRUE);
ApplicationName('Пример');
WaitShot:=0;
PlayerX:=(640-64) div 2;
SetLength(Plasma,0);
SetLength(Asteroids,0);
SetLength(Explosions,0);
randomize;
//PlayMusic('Data\Music.mid',TRUE);
StartEngine;
end;
procedure THiAsmClass.doInit;
begin
if LoadDGLEngineDLL('DGLEngine.dll') then InitMan;
end;
procedure THiAsmClass.doPlayerX;
begin
// PlayerX := ToIntegerEvent(Data1);
// PlayerY := ToIntegerEvent(Data2);
// Ogon := ToIntegerEvent(Data3);
end;
end.
------------ Дoбавленo:
Данная процедура
#pas
WriteValueToIniFile ('C:\Program Files\HiAsm\Разрабатываемые компоненты\DGLE\DGLEngine_Log.ini', 'Section', 'Key', '3') ;
------------ Дoбавленo:
Вот этот движок хочу подключить DGLE
Выше приведённый код работат если отключить загрузку 3D модели. Вот если эту строчку
#pas
AsteroidModel:=LoadModel('Data\Asteroid.dmd',MDL_NO_SCALE);// MDL_SCALE_EVERY_FRAME - указывает, что модель будет автомасштабироватья при загрузке