{-|
Module      : Animation
Description : Move the ball
Copyright   : (c) Truong Dung, 2017
License     : GPL-3
Maintainer  : checkraiser11@gmail.com
Stability   : experimental
Portability : POSIX
-}
module Animation(moveBall) where 

import Pong(PongGame, ballLoc, ballVel)

-- | Update the ball position using its current velocity.
moveBall :: Float -- ^ The number of seconds since last update
         -> PongGame -- ^ The initial game state
         -> PongGame -- ^ A new game state with an updated ball position

moveBall seconds game = game { ballLoc = (x', y') }         
  where 
    -- Old locations and velocities
    (x, y) = ballLoc game 
    (vx, vy) = ballVel game 
    -- New locations.
    x' = x + vx * seconds
    y' = y + vy * seconds