STDIO
Tìm kiếm gần đây
    Nội dung
    0
    0
    Chia sẻ
    Nội dung
    0
    0
    Chia sẻ

    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.

    Khi bạn nhấn vào sản phẩm do chúng tôi đề xuất và mua hàng, chúng tôi sẽ nhận được hoa hồng. Điều này hỗ trợ chúng tôi có thêm kinh phí tạo 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 - 2021