STDIO
Tìm kiếm gần đây
    • Nội dung
    • QR Code
    • 0
    • 0
    • Sao chép

    CBP-1: Tổng Quan về Project Ví Dụ

    Giới thiệu về Component Base Programming (CBP) - sơ lược về project ví dụ sẽ dùng trong chuỗi bài viết CBP.
    20/08/2015
    14/09/2020
    3 phút đọc
    CBP-1: Tổng Quan về Project Ví Dụ

    Giới thiệu

    Component Base Programming (CBP) - 1 khái niệm mà không ít lập trình viên biết đến và mong muốn mình có thể làm chủ được kỹ thuật lập trình này. Chuỗi bài viết này của tôi gồm 10 bài, được đánh dấu bởi tiền tố CBP, hướng dẫn độc giả hiện thực 1 hệ thống Component - Entity.

    Đây là kinh nghiệm và là sự tìm tòi, nghiên cứu và thử nghiệm của tôi trong suốt 6 tháng. Thông qua 1 sản phẩm được hiện thực bởi hệ thống này, tôi rút ra được những kinh nghiệm cần thiết và quan trọng, đáng để chia sẻ cho những độc giả quan tâm.

    FRED_FRAMEWORK là gì?

    Đây là framework đơn giản do tôi tạo ra để làm phần demo hướng dẫn về CBP, làm việc với Win32 với 1 số thao tác cơ bản như tạo cửa sổ, load, vẽ ảnh, truy vấn phím đang nhấn.

    Framework này sẽ theo xuyên suốt trong 10 bài viết để giúp độc giả dễ dàng tiếp cận CBP.

    FRED_FRAMEWORK gồm những gì?

    FKeyboard

    Là 1 lớp Singleton, có chức năng quản lý thiết bị nhập của người dùng, với phương thức chính là isKeyDown, có chức năng kiểm tra phím tương ứng với Virtual Keycode được truyền vào có đang nhấn hay không, return true nếu phím đang được nhấn.

    static bool isKeyDown(int keycode);

    Các Keycode khả dụng để truyền vào phương thức này có 1 số quy tắc:

    • Hầu hết được khởi đầu với VK_.
    • Nếu là phím thuộc Numpad, tiền tố sẽ là VK_NUMPAD.
    • Nếu là phím ký tự hoặc phím số, keycode sẽ tương ứng với mã ASCII của ký tự viết hoa của ký tự đó (ví dụ: K, L, 1, ...).

    FTexture

    Lớp định nghĩa 1 texture, hiện tại FTexture chỉ có thể load ảnh định dạng .bmp, với phương thức chính là draw, vẽ hình ảnh đã load lên màn hình. Ảnh load là ảnh có đường dẫn trùng với đường dẫn được truyền vào Constructor của FTexture.

    void draw(HDC hdc, int posX = 50, int posY = 50);

    FWindows

    Là lớp định nghĩa 1 đối tượng cửa sổ Win32, phương thức chính của FWindows bao gồm Constructorrun.

    FWindows(HINSTANCE hInst, int nCmdShow, 
             int width, int height, 
             Function_I_float_O_void updateFunc, 
             Function_I_HDC_O_void drawFunc);
    • hInst, nCmdShow: lấy từ đối số truyền vào hàm WinMain của chương trình.
    • width, height: kích thước cửa sổ.
    • updateFunc: con trỏ hàm kiểu void(*)(float), là con trỏ đến hàm định nghĩa thao tác update của vòng lặp game, đối số float của hàm là deltaTime - thời gian của vòng lặp trước tính theo giây.
    • drawFunc: con trỏ hàm kiểu void(*)(HDC), là con trỏ đến hàm định nghĩa thao tác draw của vòng lặp game, đối số HDC là Handle của Device Context sử dụng trong lượt vẽ này (tôi yêu cầu đối số này để hiện thực double buffer).
    void run();

    Đây là phương thức dùng để khởi động các xử lý cửa sổ game, hay nói nôm na, phương thức này chính là vòng lặp game.

    Bài chung series

    0 Bình luận
    Lập Trình Game

    Lập Trình Game

    Kiến thức, kỹ thuật, kinh nghiệm lập trình game.

    Đề xuất

    CBP-3: Khai Báo Component Cơ Bản, Tích Hợp Component vào Entity
    Khai báo component CAnimation để thêm hình ảnh hiển thị cho Entity, đây ...
    CBP-10: Hệ Thống Quản Lý Tập Trung Các Component Đặc Thù
    Hệ thống quản lý tập trung các Component sử dụng phương thức đặc trưng.

    Khám phá

    CBP-4: Giao Tiếp với Entity – Hệ Thống Chỉ Lệnh
    Hướng dẫn về hệ thống chỉ lệnh, bước đầu hiện thực ứng dụng hệ thống chỉ ...
    CBP-9: Bộ Khởi Tạo Entity – Factory và Hệ Thống ID
    Tổ chức lại CBP bằng cách tạo ra Factory, sản xuất Entity dựa vào các ID ...
    CBP-8: Component Điều Khiển và AI – Component Ra Lệnh
    Component ra lệnh - các Component có khả năng gửi Entity Command cho ...
    CBP-5: Truyền và Lấy Thông Số từ Component
    Giao tiếp giữa Component và Entity thông qua Command trong mô hình CBP.
    CBP-7: Cài Đặt Phản Ứng Cho Entity
    Thiết lập phản ứng của Entity nhằm điều khiển các Component trong CBP.
    CBP-6: Hàng Đợi Chỉ Lệnh
    Chuẩn hóa các thao tác nhận và xử lý chỉ lệnh từ Component trong mô hình ...
    CBP-0: Giới Thiệu về Component Base Development
    Phương pháp lập trình Hướng thành phần (Component-base Development - ...
    CBP-2: Khai Báo Component Cơ Sở và Entity Cơ Bản
    Tư tưởng của hệ thống Component - Entity trong Component Base ...
    Khi bạn nhấn vào liên kết sản phẩm do STDIO đề xuất và mua hàng, STDIO có thể nhận được hoa hồng. Điều này hỗ trợ STDIO tạo thêm nhiều nội dung hữu ích. Tìm hiểu thêm.
    STDIO
    Trang chính
    Công ty TNHH STDIO

    30, Trịnh Đình Thảo, Hòa Thạnh, Tân Phú, Hồ Chí Minh
    +84 28.36205514 - +84 942.111912
    developer@stdio.vn

    383/1 Quang Trung, Phường 10, Quận Gò Vấp, Hồ Chí Minh
    Số giấy phép ĐKKD: 0311563559 do sở Kế hoạch và Đầu Tư TPHCM cấp ngày 23/02/2012

    ©STDIO, 2013 - 2020