Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
0.8.3:interaction [2022/04/20 15:43] – [Classic Camera Mouse Movement] admin0.8.3:interaction [2022/04/20 15:45] (current) – [Classic Camera Mouse Movement] admin
Line 109: Line 109:
   Button: TMouseButton; Shift: TShiftState; X, Y: Single);   Button: TMouseButton; Shift: TShiftState; X, Y: Single);
 begin begin
 +  /// allow camera movement
   FMove := true;   FMove := true;
 +  /// store the current mouse position to detect the pixel movement
   FLastPos := PointF(X, Y);   FLastPos := PointF(X, Y);
 end; end;
Line 118: Line 120:
     LDir  : TPoint3D;     LDir  : TPoint3D;
 begin begin
 +  /// if mouse was not down - skip camera movement here
   if not FMove then   if not FMove then
   begin   begin
Line 124: Line 127:
   end;   end;
  
 +  /// compute the offset to the last pixel position
   LDiff := PointF(X, Y) - FLastPos;   LDiff := PointF(X, Y) - FLastPos;
  
   if ssRight in Shift then   if ssRight in Shift then
   begin   begin
-    // rotate camera+    /// rotate camera on right mouse button down
     Dummy1.RotationAngle.Y := Dummy1.RotationAngle.Y + LDiff.X;     Dummy1.RotationAngle.Y := Dummy1.RotationAngle.Y + LDiff.X;
   end   end
-  else+  else if ssLeft in Shift then
   begin   begin
 +    /// move camera in view direction if left mouse button is down
     LDir := TPoint3D.Zero;     LDir := TPoint3D.Zero;