Example #1
0
        protected IBall AddBall(BallGraphicsData graphicsData, BallPhysicsData physicsData, Coordinates startPosition)
        {
            Ball b = new Ball(graphicsData, physicsData, m_Table, startPosition);

            m_Balls.Add(b);
            ComputeSteps();
            return(b);
        }
Example #2
0
 public Ball(BallGraphicsData graphicsData, BallPhysicsData physicsData, ITableInternal table, Coordinates startPosition)
 {
     m_GraphicsData  = graphicsData;
     m_PhysicsData   = physicsData;
     m_Table         = table;
     m_BallInterface = this;
     m_InGame        = true;
     m_Position      = startPosition;
     m_Velocity      = Coordinates.Zero;
     m_DrawingOffset = new Coordinates(m_Table.Width / 2, m_Table.Height / 2);
     Coordinates.MakeReadonly(m_DrawingOffset);
     m_BallDrawingOffset = new Coordinates(m_PhysicsData.Radius, m_PhysicsData.Radius);
     Coordinates.MakeReadonly(m_BallDrawingOffset);
     m_StripedRadius        = (int)Math.Ceiling(m_PhysicsData.Radius * m_GraphicsData.StripedRadiusCoefficient);
     m_StripedDiameter      = 2 * m_StripedRadius;
     m_StripedDrawingOffset = new Coordinates(m_StripedRadius, m_StripedRadius);
     Coordinates.MakeReadonly(m_StripedDrawingOffset);
     m_DirectionUpdated = false;
 }