1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
| unit u_graph;
interface
uses
SlimDX, SlimDX.Direct3D9, System.Windows.Forms, System.Drawing;
type
Square = class(Tobject)
public
Sprite : Sprite;
TextureUp : Texture;
X,Y : integer;
DetailTexture : SurfaceDescription;
end;
procedure render();
procedure game_init();
procedure game_run();
implementation
var
Square1 : Square;
my_d3d : Direct3D;
my_device : Device;
my_form : Form;
procedure game_init();
var
params : PresentParameters;
begin
my_d3d := Direct3D.Create();
// Affichage de la fenetre
my_form := Form.Create;
my_form.Text := 'TP DirectX' ;
my_form.Location := Point.Create(0,0) ;
my_form.StartPosition := FormStartPosition.Manual;
my_form.ClientSize := Size.Create(1024, 768);
my_form.Show();
// Creation des PresentParameters
params := PresentParameters.Create;
params.Windowed := true;
params.SwapEffect := SwapEffect.Discard; { Ne pas chercher à comprendre ça }
// Creation du Device
my_device := Device.Create(my_d3d, 0, DeviceType.Hardware, my_form.Handle,
CreateFlags.HardwareVertexProcessing, params);
// Sprites
Square1 := Square.Create();
Square1.X := 400;
Square1.Y := 0;
Square1.Sprite := Sprite.Create(my_device);
Square1.TextureUp := Texture.FromFile(my_device,'PinkSquare.jpg');
Square1.TextureUp.Preload();
Square1.DetailTexture := Square1.TextureUp.GetLevelDescription(0) ;
end;
procedure render();
begin
my_device.Clear(ClearFlags.Target, Color4.Create(0, 0.2, 0.3), 1, 0);
my_device.BeginScene();
Square1.Sprite.&Begin(SpriteFlags.AlphaBlend); //transparence
Square1.Sprite.Draw(Square1.TextureUp,Vector3.Create(Square1.x,Square1.y,0),Vector3.Create(0,0,0),Color4.Create(0, 0, 0));
Square1.Sprite.&End;
my_device.EndScene();
my_device.Present();
end;
procedure game_run();
begin
game_init();
while my_form.Created do
begin
render();
Application.DoEvents();
end;
my_form.Dispose;
end;
end. |
Partager