Example #1
0
 // Ball must be updated
 private void tmBall_Tick(object sender, EventArgs e)
 {
     // checks if it goes to the right
     if (direction == 1)
     {
         // OBSOLETE:    pbCircle.Location = new Point(currloc.X + speed[0] + addSpeedRight, currloc.Y + speed[1]);
         gdicirclex = gdicirclex + speed[0] + addSpeedRight;
         gdicircley = gdicircley + speed[1];
     }
     else
     {
         // ball goes to left
         // OBSOLETE:    pbCircle.Location = new Point(currloc.X + speed[0] - addSpeedLeft, currloc.Y + speed[1]);
         gdicirclex = gdicirclex + speed[0] - addSpeedLeft;
         gdicircley = gdicircley + speed[1];
     }
     if (direction == 1)
     {
         // right direction
         // checks if lower bound is reached
         // OBSOLETE:        if (pbCircle.Location.Y + pbCircle.Size.Height + speed[1] > this.Size.Height)
         //                      speed[1] = speed[1] - (speed[1] * 2);
         if (gdicircley + gdicircleheight + speed[1] > this.Size.Height)
         {
             speed[1] = speed[1] - speed[1] * 2;
         }
         // checks if upper bound reached
         // OBSOLETE:        if (pbCircle.Location.Y + speed[1] < 0)
         //                      speed[1] = speed[1] + (-1 * (speed[1] * 2));
         if (gdicircley + speed[1] < 0)
         {
             speed[1] = speed[1] + (-1 * (speed[1] * 2));
         }
     }
     else
     {
         // left direction
         // checks if lower bound is reached
         // OBSOLETE:        if (pbCircle.Location.Y + pbCircle.Size.Height + speed[1] > this.Size.Height)
         //                      speed[1] = speed[1] - (speed[1] * 2);
         if (gdicircley + gdicircleheight + speed[1] > this.Size.Height)
         {
             speed[1] = speed[1] - speed[1] * 2;
         }
         // checks if upper bound reached
         // OBSOLETE: if (pbCircle.Location.Y + speed[1] < 0)
         //    speed[1] = speed[1] + (-1 * (speed[1] * 2));
         if (gdicircley + speed[1] < 0)
         {
             speed[1] = speed[1] + (-1 * (speed[1] * 2));
         }
     }
     // checks if user 2 has made a point
     if (gdicirclex < gdiuser1width)
     {
         // checks if bar disabled point and returns ball
         if (gdicircley + gdicirclewidth / 2 >= gdiuser1y & gdicircley + gdicirclewidth / 2 <= gdiuser1y + gdiuser1height)
         {
             addSpeedRight++;
             direction = 1;
             // NOT WORKING:     if (speed[1] > 0)
             //                      speed[1] -= speed[1] * 2;
             //                  else
             //                      speed[1] += -1 * speed[1] * 2;
             if (PInvoke.GetAsyncKeyState(Keys.S) == short.MinValue || PInvoke.GetAsyncKeyState(Keys.S) == 1)
             {
                 speed[1] += 3;
             }
             if (PInvoke.GetAsyncKeyState(Keys.W) == short.MinValue || PInvoke.GetAsyncKeyState(Keys.W) == 1)
             {
                 speed[1] -= 3;
             }
             if (speed[1] > 10)
             {
                 speed[1] = 10;
             }
             if (speed[1] < -10)
             {
                 speed[1] = -10;
             }
             speed[0] = speed[0] * -1;
         }
         else
         {
             // user 2 pointed
             score2++;
             lblScore2.Text = score2.ToString();
             stopGame();
         }
     }
     // checks if user 1 has made a point
     if (gdicirclex + gdicirclewidth > this.Size.Width - gdiuser2width)
     {
         // checks if bar disabled point and returns ball
         if (gdicircley + gdicircleheight / 2 >= gdiuser2y & gdicircley + gdicircleheight / 2 <= gdiuser2y + gdiuser2height)
         {
             addSpeedLeft++;
             direction = 0;
             // NOT WORKING:     if (speed[1] > 0)
             //                      speed[1] -= speed[1] * 2;
             //                  else
             //                      speed[1] += -1 * speed[1] * 2;
             if (PInvoke.GetAsyncKeyState(Keys.Down) == short.MinValue || PInvoke.GetAsyncKeyState(Keys.Down) == 1)
             {
                 speed[1] += 3;
             }
             if (PInvoke.GetAsyncKeyState(Keys.Up) == short.MinValue || PInvoke.GetAsyncKeyState(Keys.Up) == 1)
             {
                 speed[1] -= 3;
             }
             if (speed[1] > 10)
             {
                 speed[1] = 10;
             }
             if (speed[1] < -10)
             {
                 speed[1] = -10;
             }
             speed[0] = speed[0] * -1;
         }
         else
         {
             // user 1 pointed
             score1++;
             lblScore1.Text = score1.ToString();
             stopGame();
         }
     }
     // Drunk Ball produces unpredictable Paths
     if (Properties.Settings.Default.DrunkBall)
     {
         if (DrunkBallCounter == 30)
         {
             GetNewSpeeds(direction);
             DrunkBallCounter = 0;
         }
         else
         {
             DrunkBallCounter++;
         }
     }
 }
Example #2
0
 /// <summary>
 /// Listens to user 2 input
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void tmUser2_Tick(object sender, EventArgs e)
 {
     // Checks if Test or AI mode enabled
     if (!(Globals.mode == 1) & !(Globals.mode == 2))
     {
         // Checks if down key pressed
         if (PInvoke.GetAsyncKeyState(Keys.Down) == short.MinValue || PInvoke.GetAsyncKeyState(Keys.Down) == 1)
         {
             // OBSOLETE:    Point currloc = new System.Drawing.Point(User2.Location.X, User2.Location.Y);
             //              User2.Location = new System.Drawing.Point(currloc.X, currloc.Y + Properties.Settings.Default.AllowedPPCSpeed);
             gdiuser2y += Properties.Settings.Default.AllowedPPCSpeed;
             if (gdiuser2y > (this.Size.Height - gdiuser2height))
             {
                 // OBSOLETE:    User2.Location = new System.Drawing.Point(User2.Location.X, this.Size.Height - User2.Size.Height);
                 gdiuser2y = this.Size.Height - gdiuser2height;
             }
         }
         // Checks if up key pressed
         if (PInvoke.GetAsyncKeyState(Keys.Up) == short.MinValue || PInvoke.GetAsyncKeyState(Keys.Up) == 1)
         {
             // OBSOLETE:    Point currloc = new System.Drawing.Point(User2.Location.X, User2.Location.Y);
             //              User2.Location = new System.Drawing.Point(currloc.X, currloc.Y - Properties.Settings.Default.AllowedPPCSpeed);
             gdiuser2y -= Properties.Settings.Default.AllowedPPCSpeed;
             if (gdiuser2y < 0)
             {
                 // OBSOLETE:    User2.Location = new System.Drawing.Point(User2.Location.X, 0);
                 gdiuser2y = 0;
             }
         }
         tmUser2.Stop();
         tmUser2.Start();
     }
     else if (Globals.mode == 1)
     {
         // Bot Test Mode
         int difference = gdicircley - gdiuser2height / 2 - gdiuser2y;
         if (difference < 0)
         {
             difference = -1 * Properties.Settings.Default.AllowedAiDifference;
         }
         if (difference > 0)
         {
             difference = Properties.Settings.Default.AllowedAiDifference;
         }
         if (!((gdiuser2y + gdiuser2height) > this.Size.Height) & difference > 0 || !((gdiuser2y) < 0) & difference < 0)
         {
             // OBSOLETE:    User2.Location = new Point(this.Size.Width - User2.Size.Width, User2.Location.Y + difference);
             gdiuser2y += difference;
         }
         // OBSOLETE/MERGED:     if (!((gdiuser2y) < 0) & difference < 0)
         //                      User2.Location = new Point(this.Size.Width - User2.Size.Width, User2.Location.Y + difference);
         //                      gdiuser2y += difference;
     }
     else if (Globals.mode == 2)
     {
         // AI Mode (Bot has average difficulty)
         int difference = gdicircley - gdiuser2height / 2 - gdiuser2y;
         if (difference < 0)
         {
             difference = -1 * Properties.Settings.Default.AllowedAiDifference;
         }
         if (difference > 0)
         {
             difference = Properties.Settings.Default.AllowedAiDifference;
         }
         if (!((gdiuser2y + gdiuser2height) > this.Size.Height) & difference > 0 || !((gdiuser2y) < 0) & difference < 0)
         {
             // OBSOLETE:    User2.Location = new Point(this.Size.Width - User2.Size.Width, User2.Location.Y + difference);
             gdiuser2y += difference;
         }
         // OBSOLETE/MERGED:     if (!((gdiuser2y) < 0) & difference < 0)
         //                      User2.Location = new Point(this.Size.Width - User2.Size.Width, User2.Location.Y + difference);
         //                      gdiuser2y += difference;
     }
 }