Главная страница
    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.01 c
2-1151421912
Юнкер
2006-06-27 19:25
2006.07.16
Как поделить деньги на булки?


2-1151152802
b.o.n.d.007
2006-06-24 16:40
2006.07.16
Я не могу понять, почему Делфи не считает куски формулы?


2-1151252255
JTAG
2006-06-25 20:17
2006.07.16
Сделал иконку в Image Editor, подскажите плз, как сделать


3-1147356242
Boris Marchenko
2006-05-11 18:04
2006.07.16
Ошибка при залогинивании в IBConsole


3-1147626786
Alpine
2006-05-14 21:13
2006.07.16
Вопрос по настройке клиента в IB





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