TAILIEUCHUNG - Trò chơi xếp hình với VB6

Chương trình sẽ cắt một hình cho trước ra thành nhiều mảnh có hình dạng ngẫu nhiên, và người chơi sẽ phải ráp từng mảnh lại. Trò chơi thật đơn giản nhưng lập trình để tạo trò chơi này không đơn giản chút nào. Bài viết giới thiệu một chương trình như vậy được thực hiện với VB6. Tạo Activex control Tạo một Standard Project mới. Vào menu Project/Add Usercontrol để thêm một Usercontrol mới (đặt tên tùy thích, ở đây tôi đặt là ShapeControl, AutoRedraw=True). Để tạo ShapeControl (SC) có hình dạng đặc biệt cần dùng 4 hàm API:. | Trò chơi xếp hình với VB6 Chương trình sẽ cắt một hình cho trước ra thành nhiều mảnh có hình dạng ngẫu nhiên và người chơi sẽ phải ráp từng mảnh lại. Trò chơi thật đơn giản nhưng lập trình để tạo trò chơi này không đơn giản chút nào. Bài viết giới thiệu một chương trình như vậy được thực hiện với VB6. Tạo ActiveX control Tạo một Standard Project mới. Vào menu Project Add Usercontrol để thêm một Usercontrol mới đặt tên tùy thích ở đây tôi đặt là ShapeControl AutoRedraw True . Để tạo ShapeControl SC có hình dạng đặc biệt cần dùng 4 hàm API CreateRectRgn CreateEllipseticRgn CombineRgn và SetWindowRgn. Khai báo các hàm trên trong SC. Khai báo thêm hàm DeleteObject dùng để hủy đối tượng đã tạo để giải phóng bộ nhớ. Để thuận tiện cho việc tạo hình cho SC ta sử dụng cấu trúc để lưu trữ dữ liệu các cạnh Private Type CauTruc Top As Long Bottom As Long Left As Long Right As Long End Type Function sau tạo hình cho SC Private Function CreateFormRegion ScaleX As Single ScaleY As Single OffsetX As Integer OffsetY As Integer DrawStyle As CauTruc As Long Hình chữ nhật chính có tọa độ 22 22 - 77 77 hình ellipse có bán kính lớn 22 và bán kính nhỏ 13 . Do hình ảnh chúng ta muốn cắt có chiều rộng và chiều dài bất kì nên ta phải nhân tỉ lệ này cho chiều dài rộng thực của mỗi miếng hình nhỏ bằng với chiều dài và chiều rộng của SC do SC sẽ là mỗi miếng hình nhỏ . Các giá trị Top Left Right Bottom trong CauTruc có thể nhận các giá trị -1 0 1. Nếu Top nhận giá trị 1 có nghĩa là hình chữ nhật sẽ kết hợp với hình ellipse nếu nhận giá trị 0 nghĩa là không có hình ellipse còn giá trị -1 thì ellipse sẽ cắt hình chữ nhật tương tự cho Left Right và Bottom . Bạn sẽ thấy cách qui định giá trị này rất hữu ích trong các bước sau. Sở dĩ khai báo Function CreateFormRegion là Private vì nếu bạn chuyển qua Public thì khi chạy chương trình VB sẽ báo lỗi là kiểu người dùng định nghĩa CauTruc không được làm đối số chỉ khi nào bạn tạo ActiveX Control riêng và biên dịch thành .ocx mới không gặp .

TỪ KHÓA LIÊN QUAN
TAILIEUCHUNG - Chia sẻ tài liệu không giới hạn
Địa chỉ : 444 Hoang Hoa Tham, Hanoi, Viet Nam
Website : tailieuchung.com
Email : tailieuchung20@gmail.com
Tailieuchung.com là thư viện tài liệu trực tuyến, nơi chia sẽ trao đổi hàng triệu tài liệu như luận văn đồ án, sách, giáo trình, đề thi.
Chúng tôi không chịu trách nhiệm liên quan đến các vấn đề bản quyền nội dung tài liệu được thành viên tự nguyện đăng tải lên, nếu phát hiện thấy tài liệu xấu hoặc tài liệu có bản quyền xin hãy email cho chúng tôi.
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.