Programowanie w języku Delphi » Gotowce

Asphyre Extreme - wyświetlenie obrazka - Autor: AnoXic

  • 2011-02-02 18:09
  • 1 komentarz
  • 1028 odsłon
  • Oceń ten tekst jako pierwszy
Asphyre Extreme jest komponentem VCL, służącym do tworzenia gier 2D/3D oraz programów wizualnych.
W tym temacie istnieją inne komponenty jak np. DelphiX czy Omega. Asphyre jest jednak nowszy i moim zdaniem
posiada większe możliwości, szczególnie w zakresie 3D.

Sam komponent można pobrać ze strony producenta podeje Wam link http://dev.ixchels.net/.
Radzę ściągnąć również dodatki, tj. SpriteEngine, Powerpack i Xparticels.

Zaczynamy od stworzenia nowej aplikacji.
Na Formę dodajemy i zmieniamy properity Name (to po dwukropku).
TAsphyreDevice : name Device
TAsphyreTimer : name Timer
TAsphyreCanvas : name Canvas
TAsphyreImages: name Images
TAsphyreFonts: name Fonts
TASDb: name ASD

Ustawiamy właściwości dla Device:
Width: 800;
Height: 600;
Cały projekt zapisujemy w jakimś nowo stworzonym przez siebie folderze np. C:\MojePrg\AsphyreImage...
W katalogu Tools komponentu Asphyre znadziemy program AsphyreManager. Służy on do tworzenia/edycji plików .ASDb. W których umieszamy zasoby naszej aplikacji.
Więc tworzymy w głownym katalogu roboczym plik klikając na New o nazwie: Dane
Klikamy na "Add a single image..." w pasku menu i dodajemy grafikę którą chcemy wyświetlić.
Kilikamy na "Execute Font Tool to add...", uruchamia nam się programik za pomocą którego wybieramy czcionkę i dodajemy ją do naszego pliku z danymi.
Do listy modułow (uses) dodajemy AsphyreDef.
Teraz dla Form1 generujemy event OnCreate i tam wpisujemy:

Begin
Top:=50;
Left:=50;
ClientHeight:=Device.Height;
ClientWidth:=Device.Width;
if not Device.Initialize then Begin
MessageBox(0,'Błąd inicjalizacji','Error',MB_ICONERROR+MB_OK);
Application.Terminate;
End;
asd.FileName:='Dane.asdb';
fonts.LoadFromASDb(asd);
images.LoadFromASDb(asd);
end;


Na początku ustawiamy położenie oraz wielkość naszej filmy. Następnie inicjujemy Device, w przypadku błedu wyświetlamy komunikat i kończymy program. Dalej ładujemy plik z danymi, a z niego Font i Obrazek.

Teraz dla Device generujemy Event OnInitialize i tam wpisujemy:
begin
Timer.Enabled:=true;
end;


Teraz dla Timer generujemy event OnTimer i tam wpisujemy:
begin
device.Render(0,true);
device.Flip;
end;


Tego chyba wyjaśniać nie trzeba. Teraz znów dla Device generujemy event Render i tam wpisujemy:
begin
canvas.Draw(images[0],rect(0,0,800,600),0,fxBlend);
fonts[0].TextOut('PRESS ESC TO EXIT' ,340,295,$ffFFEDED,$FFFFAAAA,fxBlend);
canvas.Flush;
end;


W pierwszej procedurze wyświetlamy nasz obrazek tak by był na cały ekran. Następna procedura odpowiada za wyświetlenie napisu, To $FFFFEDED i $FFFFAAAA to kolor czcionki. Asphyre używa innego formatu mianowicie A8B8G8R8 tzn. kolejno: Alpha(przeźroczystość),Blue,Green,Red.
No i na koniec odświerzenie płótna.

Pozostało nam już tylko dla Form1 wygenerować OnKeyDown i dla niej wpisać:
begin
if key=27 then Close;
end;


KONIEC. Możecie skompilować i uruchomić.

1 komentarz

Adam Boduch 2011-01-18 17:36

WTF? Co to jest Asphyre Extreme?
Artykul bez ladu i skladu, strasznie chaotyczny.

Jezeli nie zostanie poprawiony - zostanie usuniety wkrotce