.NET 4.x Игра типа Pong - C#

Узнай цену своей работы

Формулировка задачи:

Короче заступорился на этапе отбиве ракетками мячика. Ввиду моего плохого умения оперировать графикой,я использовал неактивные текстбоксы в качестве объектов. Проблема состоит в том,что сторона делиться на два и одна из них отбивает мяч полностью,а вторая работает правильно.Пока про траэкторию не думал,мяч просто двигаеться влево-вправо по прямой линии.
  private void Form1_KeyPress(object sender, KeyPressEventArgs e)
        {
            string K = e.KeyChar.ToString();
            if (K == "W")
            {
                player1.Top = player1.Top - 10;
            }
            if (K == "S")
            {
                player1.Top = player1.Top + 10;
            }
            if (K == "I")
            {
                player2.Top = player2.Top - 10;
            }
            if (K == "K")
            {
                player2.Top = player2.Top + 10;
            }
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
 
        }

        private void dot_TextChanged(object sender, EventArgs e)
        {
            
        }
 
        private void timer1_Tick(object sender, EventArgs e)
        {
                int score11 = 0;
                dot.Left = dot.Left - 10;
                if (dot.Left == 0)
                {
                   score11 = score11 + 1;
                   score1.Text = score11.ToString();
                }
                if ((dot.Left <= 20) && (dot.Top >= player1.Top))
                {
                    timer1.Enabled = false; ;
                }
        }
        private void dott_Tick(object sender, EventArgs e)
        {
            int score12 = 0;
            if (dot.Left == 0)
            {
                score12 = score12 + 1;
                score2.Text = score12.ToString();
            }
            if (timer1.Enabled == false)
            {
                dot.Left = dot.Left + 10;
                if ((dot.Left >= 465) && (dot.Top >= player2.Top))
                {
                    timer1.Enabled = true;
                    dott.Enabled = false;
                }
 
            }
 
        }
Я специально не добавил "||",так как при проверке оно использует именно первое написанное,а при "&&" не работает правильно. Помогите определить границы текстбокса так,чтобы весь текстбокс отбивал мяч,а не один верх и конец. Скрин с расстановкой:
о! починил Как лучше сделать траэкторию движения шарика? Через if и random? Или можно как-то менее по-индусски?

Решение задачи: «.NET 4.x Игра типа Pong»

textual
Листинг программы
private void timer1_Tick(object sender, EventArgs e)
        {
 
            int score11 = 0;
            int score12 = 0;
            if (dot.Left == 500)
            {
                score11 = score11 + 1;
                score1.Text = score11.ToString();
            }
            if (dot.Left <= 0)
            {
                score12 = score12 + 1;
                score2.Text = score12.ToString();
            }
              
                if ((dot.Left <= 20) && (dot.Top <= player1.Top + 100) && (dot.Top >= player1.Top))
                {
                    double normalvetcx = player1.Left + 30 - player1.Left;
                    double normalvetcy = player1.Top;
                    double normalvetc = Math.Sqrt(normalvetcx*normalvetcx + normalvetcy*normalvetcy);
                    double dotvectx = dot.Left+30 - dot.Left;
                    double dotvecty = dot.Top - dot.Top-20;
                    double dotvect = Math.Sqrt(dotvectx * dotvectx + dotvecty * dotvecty);
                    double r;
                    r = dotvect - 2 * normalvetc * dotvect*normalvetc/normalvetc*normalvetc;
                    int rr = Convert.ToInt32(r);
                    dot.Left = rr;
                }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5
Похожие ответы