понедельник, 7 мая 2018 г.

Гра триває

Ставимо компонент tableLayoutPanel1, налаштовуємо поле три на три.. у поле ставимо pictureBox1. Налаштовуємо.. і копіюємо його у решта вісім ячейок.
Налаштовуємо меню.
у pictureboxах у властивості Tag пишемо своє значення, до якого будем звертатися
00 01 02 10 11 12 20 21 22
Добавляємо у ресуурси два файла.
створюємо клас Logic.cs, де будемо описувати логіку гри.... Описуємо
Описуємо головну форму
Для всіх кліків на picturebox описуємо нижче подано

четверг, 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 описуємо для всіх трьох картинок