Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.07.16;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
11-1130343864
mdw
2005-10-26 20:24
2006.07.16
KOLGraphicEx - есть ли более свежая версия?


15-1150366124
wal
2006-06-15 14:08
2006.07.16
Тестирование WEB-страничек.


6-1142322245
SKAyeR
2006-03-14 10:44
2006.07.16
Как получить список файлов находящихся в папке на удал. web серв


3-1147780912
novill
2006-05-16 16:01
2006.07.16
Как очистить строку от лидирующих/завершающих непечатных символов


15-1150629645
Студент 06
2006-06-18 15:20
2006.07.16
Быть программистом...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский