Пример #1
0
        public void Update(Cloud[] clouds)
        {
            m_decrease = 0.0f;

            /* Handle collision with clouds */
            for (int i = 0; i < clouds.Length; i++)
            {
                if (Texture_Data.m_rect.Intersects(clouds[i].m_coldata.m_rect))
                {
                    if (HelperUtils.IntersectPixels(Texture_Data.m_transformation, Texture_Data.m_rect.Width,
                           Texture_Data.m_rect.Height, Texture_Data.m_color_data,
                           clouds[i].m_coldata.m_transformation, clouds[i].m_coldata.m_rect.Width,
                           clouds[i].m_coldata.m_rect.Height, clouds[i].m_coldata.m_color_data))
                    {
                        m_decrease -= AbsVelocity * clouds[i].m_slow_down;
                    }
                }
            }

            CurrVelocity = AbsVelocity + m_decrease;
        }
Пример #2
0
 public void Update(Cloud[] clouds)
 {
     if (Ball_State == BallState.Active)
     {
         for (int i = 0; i < clouds.Length; i++)
         {
             if (PongBall_Rect.Intersects(clouds[i].m_collision_rect)) // clouds[i].m_used != true &&
             {
                 Console.WriteLine("Collision with cloud");
                 Y_Vel = -Y_Vel;
                 m_hit = Direction.None;
             }
         }
     }
 }
Пример #3
0
 public void UpdateBalls(CollisionData p1paddle, CollisionData p2paddle, Cloud[] clouds)
 {
     m_pongballs[0].Update(p1paddle, p2paddle);
     m_pongballs[0].Update(clouds);
     m_pongballs[1].Update(p1paddle, p2paddle);
     m_pongballs[1].Update(clouds);
 }
Пример #4
0
        public void Reset()
        {
            Sprite temp;
            int tnum = 0;

            if (m_player == 0)
            {
                for (int i = 0; i < m_num/2; i++, tnum++)
                {
                    temp = new Sprite();
                    temp.Texture = m_textures[tnum];
                    temp.X_Pos = (float)HelperUtils.GetRandomNumber(-412 - HelperUtils.SafeBoundary.X, HelperUtils.SafeBoundary.X + -m_textures[tnum].Width);
                    temp.Y_Pos = (float)HelperUtils.GetRandomNumber(HelperUtils.SafeBoundary.Y, HelperUtils.SafeBoundary.Y + 200);
                    m_clouds[i] = new Cloud();
                    m_clouds[i].m_used = false;
                    m_clouds[i].m_cloud = new LinearXYMover(temp, 2*HelperUtils.SafeBoundary.X + 1024, (int)temp.Y_Pos, 1.0f);
                    m_clouds[i].m_collision_rect = new Rectangle((int)temp.X_Pos + m_textures[tnum].Width / 4, (int)temp.Y_Pos + m_textures[tnum].Height / 2, m_textures[tnum].Width / 2, 4);
                    m_clouds[i].m_coldata = new CollisionData((int)temp.X_Pos, (int)temp.Y_Pos, m_textures[tnum],
                         new Rectangle(0, 0, m_textures[tnum].Width, m_textures[tnum].Height), m_clouds[i].m_cloud.Origin,
                         m_clouds[i].m_cloud.Scale, m_clouds[i].m_cloud.Rotation, m_clouds[i].m_cloud.Effects);
                }
                tnum = 0;

                for (int i = m_num/2; i < m_num; i++, tnum++)
                {
                    temp = new Sprite();
                    temp.Texture = m_textures[tnum];
                    temp.X_Pos = (float)HelperUtils.GetRandomNumber(-412 - HelperUtils.SafeBoundary.X, HelperUtils.SafeBoundary.X + -m_textures[tnum].Width);
                    temp.Y_Pos = (float)HelperUtils.GetRandomNumber(HelperUtils.SafeBoundary.Y, HelperUtils.SafeBoundary.Y + 200);
                    m_clouds[i] = new Cloud();
                    m_clouds[i].m_used = false;
                    m_clouds[i].m_cloud = new LinearXYMover(temp, 2*HelperUtils.SafeBoundary.X + 1024, (int)temp.Y_Pos, 1.0f);
                    m_clouds[i].m_collision_rect = new Rectangle((int)temp.X_Pos + m_textures[tnum].Width / 4, (int)temp.Y_Pos + m_textures[tnum].Height / 2, m_textures[tnum].Width / 2, 4);
                    m_clouds[i].m_coldata = new CollisionData((int)temp.X_Pos, (int)temp.Y_Pos, m_textures[tnum],
                         new Rectangle(0, 0, m_textures[tnum].Width, m_textures[tnum].Height), m_clouds[i].m_cloud.Origin,
                         m_clouds[i].m_cloud.Scale, m_clouds[i].m_cloud.Rotation, m_clouds[i].m_cloud.Effects);
                }

            }
            else if (m_player == 1)
            {
                for (int i = 0; i < m_num / 2; i++, tnum++)
                {
                    temp = new Sprite();
                    temp.Texture = m_textures[tnum];
                    temp.X_Pos = (float)HelperUtils.GetRandomNumber(HelperUtils.SafeBoundary.X + 1024, HelperUtils.SafeBoundary.X + 1024 + 412);
                    temp.Y_Pos = (float)HelperUtils.GetRandomNumber(HelperUtils.SafeBoundary.Y, HelperUtils.SafeBoundary.Y + 200);
                    m_clouds[i] = new Cloud();
                    m_clouds[i].m_used = false;
                    m_clouds[i].m_cloud = new LinearXYMover(temp, -m_textures[tnum].Width - 2*HelperUtils.SafeBoundary.X, (int)temp.Y_Pos, 1.0f);
                    m_clouds[i].m_collision_rect = new Rectangle((int)temp.X_Pos + m_textures[tnum].Width / 4, (int)temp.Y_Pos + m_textures[tnum].Height / 2, m_textures[tnum].Width / 2, 4);
                    m_clouds[i].m_coldata = new CollisionData((int)temp.X_Pos, (int)temp.Y_Pos, m_textures[tnum],
                         new Rectangle(0, 0, m_textures[tnum].Width, m_textures[tnum].Height), m_clouds[i].m_cloud.Origin,
                         m_clouds[i].m_cloud.Scale, m_clouds[i].m_cloud.Rotation, m_clouds[i].m_cloud.Effects);
                }

                tnum = 0;

                for (int i = m_num / 2; i < m_num; i++, tnum++)
                {
                    temp = new Sprite();
                    temp.Texture = m_textures[tnum];
                    temp.X_Pos = (float)HelperUtils.GetRandomNumber(HelperUtils.SafeBoundary.X + 1024, HelperUtils.SafeBoundary.X + 1024 + 412);
                    temp.Y_Pos = (float)HelperUtils.GetRandomNumber(HelperUtils.SafeBoundary.Y, HelperUtils.SafeBoundary.Y + 200);
                    m_clouds[i] = new Cloud();
                    m_clouds[i].m_used = false;
                    m_clouds[i].m_cloud = new LinearXYMover(temp, -m_textures[tnum].Width - 2*HelperUtils.SafeBoundary.X, (int)temp.Y_Pos, 1.0f);
                    m_clouds[i].m_collision_rect = new Rectangle((int)temp.X_Pos + m_textures[tnum].Width / 4, (int)temp.Y_Pos + m_textures[tnum].Height / 2, m_textures[tnum].Width / 2, 4);
                    m_clouds[i].m_coldata = new CollisionData((int)temp.X_Pos, (int)temp.Y_Pos, m_textures[tnum],
                         new Rectangle(0, 0, m_textures[tnum].Width, m_textures[tnum].Height), m_clouds[i].m_cloud.Origin,
                         m_clouds[i].m_cloud.Scale, m_clouds[i].m_cloud.Rotation, m_clouds[i].m_cloud.Effects);
                }

            }

            m_state = DrawableState.Active;
        }
Пример #5
0
        public void Reset()
        {
            Sprite temp;
            int    tnum = 0;

            if (m_player == 0)
            {
                for (int i = 0; i < m_num / 2; i++, tnum++)
                {
                    temp                         = new Sprite();
                    temp.Texture                 = m_textures[tnum];
                    temp.X_Pos                   = (float)HelperUtils.GetRandomNumber(-412 - HelperUtils.SafeBoundary.X, HelperUtils.SafeBoundary.X + -m_textures[tnum].Width);
                    temp.Y_Pos                   = (float)HelperUtils.GetRandomNumber(HelperUtils.SafeBoundary.Y, HelperUtils.SafeBoundary.Y + 200);
                    m_clouds[i]                  = new Cloud();
                    m_clouds[i].m_used           = false;
                    m_clouds[i].m_cloud          = new LinearXYMover(temp, 2 * HelperUtils.SafeBoundary.X + 1024, (int)temp.Y_Pos, 1.0f);
                    m_clouds[i].m_collision_rect = new Rectangle((int)temp.X_Pos + m_textures[tnum].Width / 4, (int)temp.Y_Pos + m_textures[tnum].Height / 2, m_textures[tnum].Width / 2, 4);
                    m_clouds[i].m_coldata        = new CollisionData((int)temp.X_Pos, (int)temp.Y_Pos, m_textures[tnum],
                                                                     new Rectangle(0, 0, m_textures[tnum].Width, m_textures[tnum].Height), m_clouds[i].m_cloud.Origin,
                                                                     m_clouds[i].m_cloud.Scale, m_clouds[i].m_cloud.Rotation, m_clouds[i].m_cloud.Effects);
                }
                tnum = 0;

                for (int i = m_num / 2; i < m_num; i++, tnum++)
                {
                    temp                         = new Sprite();
                    temp.Texture                 = m_textures[tnum];
                    temp.X_Pos                   = (float)HelperUtils.GetRandomNumber(-412 - HelperUtils.SafeBoundary.X, HelperUtils.SafeBoundary.X + -m_textures[tnum].Width);
                    temp.Y_Pos                   = (float)HelperUtils.GetRandomNumber(HelperUtils.SafeBoundary.Y, HelperUtils.SafeBoundary.Y + 200);
                    m_clouds[i]                  = new Cloud();
                    m_clouds[i].m_used           = false;
                    m_clouds[i].m_cloud          = new LinearXYMover(temp, 2 * HelperUtils.SafeBoundary.X + 1024, (int)temp.Y_Pos, 1.0f);
                    m_clouds[i].m_collision_rect = new Rectangle((int)temp.X_Pos + m_textures[tnum].Width / 4, (int)temp.Y_Pos + m_textures[tnum].Height / 2, m_textures[tnum].Width / 2, 4);
                    m_clouds[i].m_coldata        = new CollisionData((int)temp.X_Pos, (int)temp.Y_Pos, m_textures[tnum],
                                                                     new Rectangle(0, 0, m_textures[tnum].Width, m_textures[tnum].Height), m_clouds[i].m_cloud.Origin,
                                                                     m_clouds[i].m_cloud.Scale, m_clouds[i].m_cloud.Rotation, m_clouds[i].m_cloud.Effects);
                }
            }
            else if (m_player == 1)
            {
                for (int i = 0; i < m_num / 2; i++, tnum++)
                {
                    temp                         = new Sprite();
                    temp.Texture                 = m_textures[tnum];
                    temp.X_Pos                   = (float)HelperUtils.GetRandomNumber(HelperUtils.SafeBoundary.X + 1024, HelperUtils.SafeBoundary.X + 1024 + 412);
                    temp.Y_Pos                   = (float)HelperUtils.GetRandomNumber(HelperUtils.SafeBoundary.Y, HelperUtils.SafeBoundary.Y + 200);
                    m_clouds[i]                  = new Cloud();
                    m_clouds[i].m_used           = false;
                    m_clouds[i].m_cloud          = new LinearXYMover(temp, -m_textures[tnum].Width - 2 * HelperUtils.SafeBoundary.X, (int)temp.Y_Pos, 1.0f);
                    m_clouds[i].m_collision_rect = new Rectangle((int)temp.X_Pos + m_textures[tnum].Width / 4, (int)temp.Y_Pos + m_textures[tnum].Height / 2, m_textures[tnum].Width / 2, 4);
                    m_clouds[i].m_coldata        = new CollisionData((int)temp.X_Pos, (int)temp.Y_Pos, m_textures[tnum],
                                                                     new Rectangle(0, 0, m_textures[tnum].Width, m_textures[tnum].Height), m_clouds[i].m_cloud.Origin,
                                                                     m_clouds[i].m_cloud.Scale, m_clouds[i].m_cloud.Rotation, m_clouds[i].m_cloud.Effects);
                }

                tnum = 0;

                for (int i = m_num / 2; i < m_num; i++, tnum++)
                {
                    temp                         = new Sprite();
                    temp.Texture                 = m_textures[tnum];
                    temp.X_Pos                   = (float)HelperUtils.GetRandomNumber(HelperUtils.SafeBoundary.X + 1024, HelperUtils.SafeBoundary.X + 1024 + 412);
                    temp.Y_Pos                   = (float)HelperUtils.GetRandomNumber(HelperUtils.SafeBoundary.Y, HelperUtils.SafeBoundary.Y + 200);
                    m_clouds[i]                  = new Cloud();
                    m_clouds[i].m_used           = false;
                    m_clouds[i].m_cloud          = new LinearXYMover(temp, -m_textures[tnum].Width - 2 * HelperUtils.SafeBoundary.X, (int)temp.Y_Pos, 1.0f);
                    m_clouds[i].m_collision_rect = new Rectangle((int)temp.X_Pos + m_textures[tnum].Width / 4, (int)temp.Y_Pos + m_textures[tnum].Height / 2, m_textures[tnum].Width / 2, 4);
                    m_clouds[i].m_coldata        = new CollisionData((int)temp.X_Pos, (int)temp.Y_Pos, m_textures[tnum],
                                                                     new Rectangle(0, 0, m_textures[tnum].Width, m_textures[tnum].Height), m_clouds[i].m_cloud.Origin,
                                                                     m_clouds[i].m_cloud.Scale, m_clouds[i].m_cloud.Rotation, m_clouds[i].m_cloud.Effects);
                }
            }

            m_state = DrawableState.Active;
        }
Пример #6
0
 public void UpdatePaddle(KeyboardState keyboardState, GamePadState gamePadState, Cloud[] clouds)
 {
     m_paddle.Update(clouds);
     m_paddle.Update(keyboardState, gamePadState);
 }