Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.07.16;
Скачать: CL | DM;

Вниз

DelphX --- Отобразить спрайт   Найти похожие ветки 

 
bulavkin   (2006-06-26 18:05) [0]

Доброго всем вечера!
Задача после запуска приложения показать спрайт.


unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, DXDraws, DXClass, DXInput, DXSprite;

type
 TForm1 = class(TForm)
   DXDraw1: TDXDraw;
   DXImageList1: TDXImageList;
   DXSpriteEngine1: TDXSpriteEngine;
   DXInput1: TDXInput;
   DXTimer1: TDXTimer;
   procedure FormCreate(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
DXImageList1.Items.Find("fon").Draw(DXDraw1.Surface, 0, 0, 8);
end;

end.


Но не чего не происходит.

Подскажи где я ошибся?


 
tButton ©   (2006-06-26 18:09) [1]

да нет. всё правильно. только отображением ты и не думал заниматься =)
насколько я помню
в обработчике таймера это всё прописывается

if DXDraw1.CanDraw then begin
 DXImageList1.Items.Find("fon").Draw(DXDraw1.Surface, 0, 0, 8);
 
 DXDraw1.Surface.Canvas.Release;
 DXDraw1.Flip; // <-- вот эта функция меняет местами передний и задний буфер и тем самым отображает твою картинку
end;


а вообще - поковырялся бы в примерах сперва


 
bulavkin   (2006-06-26 18:15) [2]


> tButton ©   (26.06.06 18:09) [1]

Вообще изначально я ставил перед собой задачу показать фоновую картинку а поверх ее статический спрайт.
В конечном итоге запутался и решил все по порядку :)
Спасибо.


 
bulavkin   (2006-06-26 18:24) [3]

К слову сказать все равно не плучилось.
Видно только черный фон =(


 
tButton ©   (2006-06-26 18:36) [4]

DXImageList1.Items.Find("fon").Draw(DXDraw1.Surface, 0, 0, 8);
а последний параметр функции это случаем не индекс спрайта? сдаётся мне что спрайт у тебя один и должен быть там вместо восьмёрки ноль


 
bulavkin   (2006-06-26 18:38) [5]

Хмм... очень может быть =))
Сасибо


 
bulavkin   (2006-06-27 15:02) [6]

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


procedure TForm1.DXTimerTimer(Sender: TObject; LagCount: Integer);
var
i: integer;
begin
if not DXDraw.CanDraw then exit;
DXDraw.Surface.Fill( 0 );
 for i:=0 to 700 do
   begin
   DXImageList.Items.Find("hero.bmp").Draw(DXDraw.Surface, i, 0, 0);
   DXDraw.Flip;

   end;
end;


Все работает, но есть у этого примера недостаток:
за спрайтом остается шлейф смазанный.
Откуда он берется и как от него избавиться?
Спасибо!



Страницы: 1 вся ветка

Текущий архив: 2006.07.16;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.051 c
2-1151630252
NigthSkif
2006-06-30 05:17
2006.07.16
Tedit


4-1144067736
Untermensch
2006-04-03 16:35
2006.07.16
Как получить MAC-адреса сетевых плат или другой способ


4-1143960606
Kor-win
2006-04-02 10:50
2006.07.16
drag-and-drop формы


3-1147557186
imbalanced
2006-05-14 01:53
2006.07.16
Работа с FireBird


6-1141971797
WondeRu
2006-03-10 09:23
2006.07.16
TServerSocket внутри COM-сервера.