Текущий архив: 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.45 MB
Время: 0.008 c