Hello,
The following APIs have been added to branch dev_1.3:
procedure Motion
(Sprite : in out Sprite_Type;
Radial_Velocity : in Velocity_Type;
Azimuth_Of_Velocity : in Integer);
procedure Radial_Velocity
(Sprite : in out Sprite_Type;
Value : in Velocity_Type);
procedure Azimuth_Of_Velocity
(Sprite : in out Sprite_Type;
Value : in Integer);
-- Specifies the motion of a sprite in polar coordinate
procedure Orient_Velocity
(Sprite : in out Sprite_Type;
To_Row, To_Column : in Integer);
-- Points the velocity vector to the specified point
and same for acceleration.
So it's easier to program a parabolic trajectory:
App.SP1.Motion (50.0, -145);
App.SP1.Acceleration (10.0, 90);
See full source code in pixi_sprite_test.adb.
And an automatic motion is available:
procedure Move_To
(Sprite : in out Sprite_Type;
Row, Column : in Integer;
Radial_Velocity : in Velocity_Type;
Radial_Acceleration : in Acceleration_Type;
Spent_Time : out Duration);
-- Sets sprite motion in order to reach specified point on a straight line
then stop.
-- Based on specified target point, velocity and acceleration, actual
velocity and acceleration are set
-- during a calculated spent time. Whatever position, velocity or
acceleration are changed during this time,
-- velocity and acceleration are set to zero at the end of time. Thus the
sprite may not have reached
-- the target point. If the time cannot be calculated then Constraint_Error
is raised.
No more annoying trials to tune the time to wait for a sprite to move from a
position to another, Move_To do it automatically, see example in
pixi_sprite_test.adb.
Feel free to send comments.
Enjoy, Pascal.
http://blady.pagesperso-orange.fr
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Gnoga-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gnoga-list