TRANG CHỦ
CHUYÊN MỤC
HỌC HỎI
TAG
ABOUT
Tìm kiếm
Lập trình games với Love2D - Chương 10 - Thư viện
2023-10-22 07:48:24
Love2D
Học Lập Trình Lua
89 lượt xem
0 bình luận
Thư viện là mã mà mọi người có thể sử dụng để thêm chức năng nhất định vào dự án của họ. Hãy thử một thư viện. Chúng ta sẽ sử dụng ```tick``` của ```rxi```. Bạn có thể tìm thấy thư viện trên [GitHub](https://github.com/rxi/tick). Bấm vào ```tick.lua``` rồi vào nút Raw và sao chép mã . Đi tới trình soạn thảo, tạo một tệp mới có tên ```tick.lua``` và dán mã. Bây giờ chúng ta phải làm theo hướng dẫn trên trang GitHub. Đầu tiên chúng ta phải tải nó với ```require```. ```lua function love.load() tick = require "tick" end ``` Lưu ý rằng ```require``` không có dấu ngoặc đơn (). Điều này là do bạn chỉ truyền 1 đối số, bạn không cần phải sử dụng chúng. Tiếp theo chúng ta phải cài ```tick.update(dt)``` vào trình cập nhật ```update``` của mình. ```lua function love.update(dt) tick.update(dt) end ``` Và bây giờ chúng ta đã sẵn sàng bắt đầu sử dụng thư viện. Hãy làm sao cho một hình chữ nhật sẽ được vẽ sau 2 giây. ```lua function love.load() tick = require "tick" --Tạo một boolean drawRectangle = false --Đối số đầu tiên là một hàm --Đối số thứ hai là thời gian cần thiết để gọi hàm tick.delay(function () drawRectangle = true end , 2) end function love.draw() --nếu drawRectangle = true thì vẽ hình chữ nhật if drawRectangle then love.graphics.rectangle("fill", 100, 100, 300, 200) end end ``` Có phải chúng ta vừa truyền một hàm làm đối số không? Chắc chắn rồi, tại sao không? Xét cho cùng thì hàm cũng là một loại biến. Khi chạy trò chơi, bạn có thể thấy rằng với thư viện này, chúng ta có thể trì hoãn việc gọi các chức năng (function). Và như thế có rất nhiều thư viện với đủ loại chức năng. Đừng cảm thấy tội lỗi khi sử dụng thư viện. Tại sao phải phát minh lại bánh xe? Đó là, trừ khi bạn quan tâm đến việc học nó. Cá nhân tôi sử dụng khoảng 10 thư viện trong 1 dự án của mình. Chúng cung cấp chức năng mà tôi không hiểu cách tự tạo ra và đơn giản là tôi không muốn tìm hiểu nó. Thư viện không phải là phép thuật. Đó đều là mã Lua mà bạn và tôi có thể đã viết (tất nhiên là trong trường hợp chúng ta có kiến thức). Chúng ta sẽ tạo một thư viện trong chương sau để hiểu rõ hơn về cách chúng hoạt động. ### Thư viện chuẩn - Standard libraries Lua có các thư viện tích hợp sẵn. Chúng được gọi là Thư viện tiêu chuẩn. Chúng là các hàm được tích hợp trong Lua. ```print``` là một ví dụ, cũng như ```table.insert``` và ```table.remove```. Một thư viện tiêu chuẩn quan trọng mà chúng ta chưa xem xét là thư viện toán học (math library). Nó cung cấp các hàm toán học, có thể rất hữu ích khi tạo trò chơi. Ví dụ: ```math.random``` cung cấp cho chúng ta một số ngẫu nhiên. Hãy sử dụng nó để đặt một hình chữ nhật ở một vị trí ngẫu nhiên bất cứ khi nào bạn nhấn phím cách. ```lua function love.load() x = 30 y = 50 end function love.draw() love.graphics.rectangle("line", x, y, 100, 100) end function love.keypressed(key) --Nếu nhấn phím cách thì... if key == "space" then --x và y trở thành một số ngẫu nhiên trong khoảng từ 100 đến 500 x = math.random(100, 500) y = math.random(100, 500) end end ``` Bây giờ chúng ta đã hiểu thư viện là gì, chúng ta có thể bắt đầu sử dụng thư viện lớp (class library). ### Bản tóm tắt Thư viện là mã cung cấp cho chúng ta chức năng. Bất cứ ai cũng có thể làm một thư viện. Lua cũng có các thư viện tích hợp mà chúng ta gọi là Thư viện chuẩn. ------ [Trước](/learn/detail?learnId=9) | [Mục lục](/learn/search?keyword=Lập%20trình%20games%20với%20Love2D) | [Kế tiếp](/learn/detail?learnId=11)
Gợi ý bài học liên quan
Awesome Love2D
Lập trình games với Love2D - Visual Studio Code
Lập trình games với Love2D - Chương 24
Lập trình games với Love2D - Chương 23
Lập trình games với Love2D - Chương 22