Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.464 Beiträge
 
Delphi 12 Athens
 
#4

Re: [Andorra] kleine Rechenprobleme

  Alt 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;
  Mit Zitat antworten Zitat