четверг, 26 апреля 2018 г.

Граємо далі



Називаємо FormMenu
описуємо

Нова форма FormGame
Описуємо

Кнопку називаємо raacket, перешкоди brick1,2,3,4,5, мяч ball
Поля label_right label_top label_left
 private void move_ball()
        {
            int bx1, bx2, by1, by2;
            bx1 = ball_x;
            bx2 = ball_x + ball.Width;
            by1 = ball_y;
            by2 = ball_y + ball.Height;
            if (bx1 + ball_sx < side_lx)
                ball_sx = ball_shift_x;
            if (bx2 + ball_sx > side_rx)
                ball_sx = -ball_shift_x;
            if (by1 + ball_sy < side_uy)
                ball_sy = ball_shift_y;
            if (by2 + ball_sy > racket_y)
            {
                // bool lose = true;
                int bx0, by0;
                bx0 = (bx1 + bx2) / 2;
                by0 = (by1 + by2) / 2;
                int rx1, rx2;
                rx1 = racket_x;
                rx2 = racket_x + raacket.Width;
                if (rx1 <= bx0 && bx0 <= rx2)
                {
                    ball_sy = -ball_shift_y + rnd.Next(-1,2);
                       }
                else
                    if (rx1 <= bx2 + ball.Width && bx2 + ball.Width <= rx2)
                {
                    ball_sy = -ball_shift_y + rnd.Next(-1, 2);
                    ball_sx = -ball_shift_x + rnd.Next(-1, 2);
                }
                else
                if (rx1 <= bx1 - ball.Width && bx1 - ball.Width <= rx2)
                {
                    ball_sy = -ball_shift_y + rnd.Next(-1, 2);
                    ball_sx = ball_shift_x + rnd.Next(-1, 2);
                }
                else
                    lose_ball();
            }

            ball_x += ball_sx;
            ball_y += ball_sy;
            ball.Location = new Point(ball_x, ball_y);
            cross_brick(brick1);
            cross_brick(brick2);
            cross_brick(brick3);
            cross_brick(brick4);
            cross_brick(brick5);
         
        }
 private void cross_brick(Label brick)
        {
            if (!brick.Visible) return;
            int bx1, bx2, bx0;
            int by1, by2, by0;
            int rx1, rx2, ry1, ry2;
            bx1 = ball_x;
            bx2 = ball_x+ball.Width;
            bx0 = (bx1 / bx2) / 2;
            by1 = ball_y;
            by2 = ball_y + ball.Height;
            by0 = (by1 / by2) / 2;
            rx1 = brick.Location.X;
            rx2 = rx1 + brick.Width;
            ry1 = brick.Location.Y;
            ry2 = ry1 + brick.Height;
            if (rx1
                ry1<=by2 && by2<=ry2)             
            {
                drop_brick(brick);
                ball_sy = -ball_sy;
                return;
            }
            if (rx1 <= bx2 && bx2 <= rx2 &&
ry1 <= by0 && by0 <= ry2)
            {
                drop_brick(brick);
                ball_sx = -ball_sx;
                return;
            }
            if (rx1 <= bx2 && bx1 <= rx2 &&
    ry1 <= by0 && by0 <= ry2)             
            {
                drop_brick(brick);
                ball_sx = -ball_sx;
                return;
            }

            if (rx1 <= bx1 && bx1 <= rx2 &&
    ry1 <= by0 && by0 <= ry2)
            {
                drop_brick(brick);
                ball_sx = -ball_sx;
                return;
            }

           if ((rx1 <= bx2 && bx2 <= rx2 && ry1 <= by2 
                && by2 <= ry2) ||
                (rx1 <= bx2 && bx2 <= rx2 && ry1 <= by2 && by2 <= ry2) ||
                (rx1 <= bx2 && bx2 <= rx2 && ry1 <= by1 && by1 <= ry2) ||
                (rx1 <= bx2 && bx2 <= rx2 && ry1 <= by2 && by2 <= ry2))
            {
                drop_brick(brick);
               
                ball_sx = -ball_sx;
                ball_sy = -ball_sy;
                return;
            }
        }


среда, 11 апреля 2018 г.

Продовження

using System.Runtime.InteropServices;

Давайте пограємося?

Налаштовуємо форму... pictureBox,panel. Малюнки добавляємо з ресурсів.
Створюємо клас Cell.cs
Створюємо клас Map.cs
Створюємо клас Body.cs
Створюємо клас Snake.cs
описуємо Form1 незабудьте таймер поставить і інтервал 250.

воскресенье, 8 апреля 2018 г.

Числа

ставимо tableLayoutPanel1, добавляємо рядок, стовбець, настроюємо, кнопки ставимо, робимо їх невидими(visible=false)....
описуємо форму


суббота, 7 апреля 2018 г.

Продовження ........Нова гра

Поділити малюнки на частини...і реалізувати гру...

ставимо панель, меню, pictureBox1..Налаштовуємо...Картинку у ресурс.

Створюємо клас Game.cs. Описуємо

Описуємо форму

Нова гра.

Реалізувати гру. Побити Рекорд
Підєднати
 using System.Diagnostics;

Ставимо компоненти  progressBar1,timer1,label
три picturebox, перейменовуємо їх на picture1,picture2,picture3/
З ресурсів вставляємо картинки...
Описуємо форму..


ОnClick описуємо для всіх трьох картинок

четверг, 5 апреля 2018 г.

Лінія


 У двовимірному масиві 9 на 9 будемо поміщувати  шарики. Малюнки з шариками незабуваємо помістити у ресурси. (шарики додадються)
На форму ставимо компонент panel, налаштовуємо ....
const int BOX_SIZE = 40; -це розмір шариків
const int MAP_SIZE = 9; -розмірність масиву.
Описуємо форму.....
Труднощі виникнути можуть при роботі з делегатами (рядок   box.Click += Box_Click;)
після дорівнює тиснемо клавішу TAB , ще раз тиснемо клавішу TAB
зявиться автоматично  функція типу рядка
 private void Box_Click(object sender, EventArgs e)
        {
           -----------------------------------
        }
де описуємо своє.

среда, 4 апреля 2018 г.

Гра

На форму ставимо компонент для меню menuStrip  та компонент tableLayoutPanel1
Настроюємо..
Ставимо кнопку... Перейменовуємо button0, і копіюємо її 15 раз. Для кожної кнопки міняємо властивість Tag на відповідний номер кнопки (від 0 до15)
Створюємо новий клас Game.cs. Описуємо його



Описуємо головну форму Form1