Einzelnen Beitrag anzeigen

Benutzerbild von Ricane
Ricane

Registriert seit: 21. Mär 2003
Ort: Quickborn
170 Beiträge
 
Delphi 7 Architect
 
#7

Re: DelphiX DrawAlpha ruckelt

  Alt 22. Mär 2005, 16:26
Moin,

Bei mir läuft das alles überhaupt nicht! Also die Grafik wird schon angezeigt, aber es wird kein Alpha Effekt gemacht.

Ich poste mal den Code, bis auf die Sachen, die nutzlos sind...

Delphi-Quellcode:
Unit Main;

Interface

Uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, JvGIF, DXClass, DXSprite, DXDraws;

Type
  TfrmMain = Class(TForm)
    DXDraw: TDXDraw;
    DXImageList1: TDXImageList;
    DXSpriteEngine1: TDXSpriteEngine;
    DXTimer1: TDXTimer;
    Procedure FormCreate(Sender: TObject);

    Procedure TilesErst();
    Procedure Bewegen();
    Procedure DXTimer1Timer(Sender: TObject; LagCount: Integer);
  Private
    { Private-Deklarationen }
  Public
    { Public-Deklarationen }
  End;

  TTiles = Class(TImageSprite)
  End;

Var
  frmMain: TfrmMain;
  Hintergrund, Hendrik, Jordt: TTiles;
  Alpha: Array[1..2] Of Integer;

Implementation

{$R *.dfm}

Procedure TfrmMain.FormCreate(Sender: TObject);
Begin

  TilesErst;

End;


Procedure TfrmMain.TilesErst();
Begin

  Hendrik := TTiles.Create(frmMain.DXSpriteEngine1.Engine);
  With Hendrik Do
  Begin
    X := 780;
    Y := 82;
    Z := 10;
    Image := frmMain.DXImageList1.Items.Find('Hendrik');
    Width := Image.Width;
    Height := Image.Height;
    Visible := True;
  End;

End;

Procedure TfrmMain.Bewegen();
Begin

  If Hendrik.X < 10 Then
  Begin
    Alpha[1] := Alpha[1] + 2;
    DXImageList1.Items.Find('Hendrik').DrawAlpha(DXDraw.Surface,
      Bounds(Round(Hendrik.X), Round(Hendrik.Y), Hendrik.Width, Hendrik.Height),
      0, Alpha[1]);
    Application.ProcessMessages;
    If Alpha[1] > 257 Then
      Alpha[1] := 0
  End
  Else
    Hendrik.X := Hendrik.X - 2;

End;

Procedure TfrmMain.DXTimer1Timer(Sender: TObject; LagCount: Integer);
Begin

  Bewegen;
  DXDraw.Surface.Fill(0);
  DXSpriteEngine1.Move(1);
  DXSpriteEngine1.Dead;
  DXSpriteEngine1.Draw;

  DXDraw.Flip;

End;

End.
Bin Ratlos...
Hendrik
So much to Code... so less Time....

www.RicaneSoftware.de
  Mit Zitat antworten Zitat