Главная страница
    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.014 c
2-1150704258
DmitriyR
2006-06-19 12:04
2006.07.16
Запуск программ с передачей консольного ввода и чтением вывода


9-1131908625
Conferno
2005-11-13 22:03
2006.07.16
GLScene - GLPortal и GLFreeForm


2-1151260729
Noname27
2006-06-25 22:38
2006.07.16
SetDCBrushColor


2-1151290269
Тоха
2006-06-26 06:51
2006.07.16
Как нажать кнопку чужого приложения.


5-1135259011
sco
2005-12-22 16:43
2006.07.16
Package unit IconButton cannot appear in contains or uses claus





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский