NEWS

[C#] Hướng dẫn bắt sự kiện khi đối tượng di chuyển chạm vào object trên winform HitTest Object

[C#] Hướng dẫn bắt sự kiện khi đối tượng di chuyển chạm vào object trên winform HitTest Object
Đăng bởi: Thảo Meo - Lượt xem: 2915 21:49:26, 03/12/2022DEVEXPRESS   In bài viết

Xin chào các bạn, bài viết hôm nay mình tiếp tục hướng dẫn các bạn về bắt sự kiện Hit Test object trên Winform C#.

[C#] Handle Event Hit Test Object in winform

Các bạn có thể xem hình ảnh demo ứng dụng ở bên dưới:

hitTest_object

Khi các bạn, bấm các phím up, down, left, right để di chuyển các hình ảnh đối tượng của các bạn (player)

Thì khi player đi đến vào chạm vào đối tượng nào, cụ thể ở đây là từng PictureBox.

Thì chúng ta sẽ đổi hình ảnh của picturebox đó và hiển thị tên của PictureBox đó là gì vào label như hình trên.

Các bạn, sẽ thấy ứng dụng này được ứng dụng để các bạn có thể viết game cơ bản như: Rắn ăn mồi...

Source code c#:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace HitTestObject
{
    public partial class Form1 : Form
    {
        bool moveLeft, moveRight, moveUp, moveDown;
        int speed = 12;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void mainTimerEvent(object sender, EventArgs e) { 
            if(moveLeft && player.Left > 0)
            {
                player.Left -= speed;
            }
            if (moveRight && player.Left < 837)
            {
                player.Left += speed;
            }
            if (moveUp && player.Top > 0)
            {
                player.Top -= speed;
            }
            if (moveDown && player.Top < 386)
            {
                player.Top += speed;
            }
            foreach (Control x in this.Controls)
            {
                if (x is PictureBox && (string)x.Tag == "gifBox") {
                    if (player.Bounds.IntersectsWith(x.Bounds))
                    {
                        ((PictureBox)x).Image = Properties.Resources.girl;
                        label1.Text = $"Hit Test: {x.Name}";
                    }
                    else
                    {
                        ((PictureBox)x).Image = Properties.Resources.box;
                    }
                }
            }

        }
        private void keyIsDown(object sender, KeyEventArgs e)
        {
            if(e.KeyCode == Keys.Left)
            {
                moveLeft = true;
            }
            if(e.KeyCode== Keys.Right)
            {
                moveRight = true;
            }
            if (e.KeyCode == Keys.Up)
            {
                moveUp = true;
            }
            if (e.KeyCode == Keys.Down)
            {
                moveDown = true;
            }
        }

        private void keyIsUp(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Left)
            {
                moveLeft = false;
            }
            if (e.KeyCode == Keys.Right)
            {
                moveRight = false;
            }
            if (e.KeyCode == Keys.Up)
            {
                moveUp = false;
            }
            if (e.KeyCode == Keys.Down)
            {
                moveDown = false;
            }
        }
    }
}

Thanks for watching!

DOWNLOAD SOURCE

THÔNG TIN TÁC GIẢ

BÀI VIẾT LIÊN QUAN

[C#] Hướng dẫn bắt sự kiện khi đối tượng di chuyển chạm vào object trên winform HitTest Object
Đăng bởi: Thảo Meo - Lượt xem: 2915 21:49:26, 03/12/2022DEVEXPRESS   In bài viết

CÁC BÀI CÙNG CHỦ ĐỀ

Đọc tiếp
.