Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.464 Beiträge
Delphi 12 Athens
|
Re: [Andorra] kleine Rechenprobleme
7. Aug 2008, 11:24
Code:
Selected: record
Item: TTexture; {ausgewähltes Objekt}
dx, dy: Double; {relative Position zur linken oberen Ecke des Objektes, an der mit der Maus angefasst wurde}
end;
procedure TForm2.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
p: TAdPoint;
o: TObject;
begin
if Button = mbLeft then
begin
p := AdSpriteEngine.ScreenPointToSpriteCoords(AdPoint(X,Y));
o := AdSpriteEngine.GetSpriteAt(p.X, p.Y);
if o is TTexture then
begin
Selected.Item := TTexture(o);
Selected.dx := p.x - Selected.Item.X;
Selected.dy := p.y - Selected.Item.y;
end;
end;
end;
procedure TForm2.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
p: TAdPoint;
begin
if ssLeft in Shift then
begin
if Assigned(Selected.Item) then
begin
p := AdSpriteEngine.ScreenPointToSpriteCoords(AdPoint(X,Y));
Selected.Item.X := p.x - Selected.dx;
Selected.Item.Y := p.y - Selected.dy;
end;
end;
end;
|
|
Zitat
|