/ / Cách tạo trò chơi PICO-8 đầu tiên của bạn

Cách tạo trò chơi PICO-8 đầu tiên của bạn

PICO-8 là một công cụ tuyệt vời để sử dụng nếu bạn đang muốn học cách phát triển trò chơi. Bạn có thể xây dựng các trò chơi theo phong cách retro, 8-bit và phân phối chúng trực tuyến cho mọi người chơi.

PICO-8 cung cấp trình soạn thảo sprite và trình soạn nhạc của riêng mình để xây dựng các trò chơi độc lập hoàn chỉnh. Để làm quen với cách hoạt động của PICO-8, tốt nhất bạn nên bắt đầu đơn giản.

Chạy Bảng điều khiển PICO-8

PICO-8 là một bảng điều khiển ảo và công cụ phát triển trò chơi. Bạn có thể sử dụng nó để xây dựng và phân phối các trò chơi theo phong cách cổ điển đơn giản.

Bắt đầu bằng cách tải ứng dụng PICO-8 và chạy nó:

  1. Mua và tải xuống phần mềm từ trang chủ itch.io của nó. Bạn có thể tải xuống PICO-8 cho Windows, macOS hoặc Linux.
  2. Chạy ứng dụng và bạn sẽ thấy màn hình khởi động như sau:

    Đây là dòng lệnh của PICO-8 mà bạn có thể sử dụng để tải và chạy hộp mực, cùng với một số hành động khác, được ghi lại trên PICO-8 Wiki.

Sử dụng cơ bản của Trình soạn thảo mã

Bạn có thể biết cách lập trình PICO-8 hoạt động bằng cách sử dụng trình soạn thảo mã để tạo một chương trình đơn giản và sau đó chạy nó.


  1. Tại màn hình khởi động, nhấn THOÁT để nhập trình chỉnh sửa mã. Bạn sẽ thấy một màn hình trống chủ yếu:

  2. Trình chỉnh sửa mã là cơ bản nhưng dễ sử dụng. Bây giờ, hãy bắt đầu với chương trình đơn giản nhất:
    PRINT("HELLO, WORLD")
  3. Khi bạn đã nhập mã trên, hãy nhấn THOÁT để quay lại màn hình khởi động.
  4. Bây giờ bạn có thể gõ CHẠY để chạy chương trình của bạn. Nó sẽ xuất ra văn bản “HELLO, WORLD”.

Viết một trò chơi đơn giản

Khi bạn đã cảm thấy thoải mái khi viết mã PICO-8 và chạy nó, đã đến lúc thử một trò chơi đơn giản. Tic-tac-toe là một lựa chọn tuyệt vời cho một trò chơi khởi động vì:

  • Nó theo lượt, vì vậy bạn không phải lo lắng về việc tính thời gian.
  • Nó liên quan đến rất ít logic, về cơ bản chỉ bao gồm hai quy tắc.
  • Nó có các yêu cầu đồ họa rất đơn giản.

Mã đầy đủ cho trò chơi đơn giản này có sẵn trong kho lưu trữ GitHub. Bạn có thể tải xuống tệp này, lưu vào thư mục hộp mực cục bộ và mở bằng PICO-8.

Để mở thư mục hộp mực cục bộ trong trình duyệt tệp của máy tính, hãy nhập THƯ MỤC trên dòng lệnh PICO-8.

Giới thiệu Vòng lặp trò chơi

Cho dù bạn đang sử dụng ngôn ngữ nào, việc phát triển trò chơi thường xoay quanh “vòng lặp trò chơi”. Nó bao gồm quá trình sau:

  1. Nhận thông tin đầu vào của người dùng
  2. Cập nhật trạng thái trò chơi
  3. Vẽ trò chơi

PICO-8 có hỗ trợ tích hợp tuyệt vời cho vòng lặp trò chơi thông qua các chức năng của nó _trong đó(), _cập nhật()_vẽ tranh(). Các chức năng này đặc biệt vì PICO-8 tự động gọi chúng khi cần thiết.

Bạn có thể thấy những thứ này hoạt động như thế nào bằng cách tạo ra khung của một trò chơi. Bản sửa đổi đầu tiên này sẽ hiển thị một con trỏ trên màn hình di chuyển khi bạn di chuyển chuột.

Bắt đầu bằng cách thiết lập bất kỳ hành động bắt buộc nào trong _trong đó(). Chức năng này không hoàn toàn là một phần của vòng lặp trò chơi vì nó chỉ chạy một lần khi bắt đầu. Đối với một trò chơi yêu cầu nhập chuột, bạn sẽ cần thực hiện một cuộc gọi đặc biệt để kích hoạt trò chơi đó:


function _init()
poke(0x5f2d, 1)
end

Các _cập nhật chức năng xử lý đầu vào của người dùng và cập nhật trạng thái trò chơi của bạn. Để hỗ trợ nhập liệu bằng chuột, đây là nơi để theo dõi vị trí của con trỏ.

function _update()
mousex = stat(32)
mousey = stat(33)
end

Lưu ý rằng các biến trong PICO-8 là toàn cục theo mặc định, vì vậy bất kỳ hàm nào trong chương trình của bạn sẽ có quyền truy cập vào mousexchuột nhắt. PICO-8 bao gồm stat như một chức năng tích hợp. Nó cung cấp các chi tiết khác nhau về môi trường hiện tại, bao gồm chuột, bàn phím và ngày / giờ.

Cuối cùng, xác định một _vẽ tranh chức năng hiển thị một con trỏ trên màn hình. Đối với con trỏ kiểu chữ thập, bạn có thể vẽ một đường thẳng đứng và một đường ngang tại vị trí chuột hiện tại:

function _draw()
cls()
line(mousex, mousey - 4, mousex, mousey + 4)
line(mousex - 4, mousey, mousex + 4, mousey)
end

Các hàng() là một chức năng khác được tích hợp trong PICO-8. Cần bốn đối số để vẽ một đường thẳng giữa hai điểm: tọa độ x và y của điểm a, và tọa độ x và y của điểm b.

Các cls () chức năng xóa màn hình. Hãy thử xóa dòng này để xem điều gì sẽ xảy ra khi bạn không xóa màn hình.

Vẽ các yếu tố trò chơi còn lại

Tic-tac-toe diễn ra trên một lưới gồm chín ô vuông. Bạn có thể tạo lại điều này bằng cách sử dụng bốn dòng: hai ngang và hai dọc. Vì màn hình PICO-8 có kích thước 128×128 pixel nên mỗi hình vuông có thể là 42 pixel, để lại 1 pixel cho các đường lưới:

function draw_grid()
line(42, 0, 42, 127)
line(85, 0, 85, 127)

line(0, 42, 127, 42)
line(0, 85, 127, 85)
end

Nhiệm vụ tiếp theo là vẽ một biểu tượng — không hoặc chéo — trong một hình vuông nhất định. Bạn có thể sử dụng biểu tượng này để hiển thị cả biểu tượng “bảng” hiện tại và biểu tượng “xem trước” khi người dùng di chuột qua một ô trống.

Vẽ “không” chỉ đơn giản là một trường hợp gọi PICO-8 khoanh tròn () hàm số:

function draw_nought(x, y)
circ(x, y, 10)
end

Vẽ một “chữ thập” hơi phức tạp hơn một chút. Bạn sẽ cần vẽ hai đường chéo giao nhau:

function draw_cross(x, y)
line(x - 10, y - 10, x + 10, y + 10)
line(x + 10, y - 10, x - 10, y + 10)
end

Chức năng vẽ còn lại là draw_square. Nó vẽ biểu tượng (chữ thập hoặc không) trong một ô vuông lưới nhất định, nếu có. Tuy nhiên, để hoàn thành chức năng đó, bạn sẽ cần truy cập trạng thái trò chơi.

Theo dõi trạng thái trò chơi

Để chơi một trò chơi có ý nghĩa, bạn sẽ cần một cách để theo dõi biểu tượng nào, nếu có, nằm trong ô vuông nào. Mặc dù PICO-8 không hỗ trợ mảng nhiều chiều, nhưng việc sử dụng mảng một chiều cho các trường hợp sử dụng đơn giản như thế này cũng dễ dàng như vậy. Bạn chỉ cần theo dõi chín vị trí khác nhau trong lưới:

p = {"", "", "", "", "", "", "", "", ""}

Bạn có thể truy cập các phần tử của mảng này bằng cách sử dụng một cú pháp quen thuộc từ các ngôn ngữ khác. Ví dụ:


p[1] = "0"


if (p[9] == "x") then

Mảng PICO-8 bắt đầu ở chỉ mục 1, không phải chỉ mục 0 như thường thấy trong nhiều ngôn ngữ.

Bạn có thể dịch từ một tham chiếu cột & hàng sang một chỉ mục trong mảng này và quay lại một lần nữa. Sử dụng thực tế rằng màn hình là 128×128 và lưới là 3×3, bạn có thể chuyển đổi tọa độ x và y thành các tham chiếu lưới như sau:

mousecol=flr(mousex/42.666)
mouserow=flr((mousey/42.666) % 3)

Xử lý đầu vào của người dùng

Bạn có thể theo dõi các lần nhấn nút chuột tương tự như vị trí chuột. Trong _cập nhậtsử dụng một biến toàn cục để theo dõi trạng thái và gọi stat (34) để kiểm tra xem nút chuột trái có bị tắt hay không:

if (down and stat(34) == 0) then
down = false
end

if ((not down) and stat(34) == 1) then
down = true
end

Theo dõi xuống cho phép bạn xác định thời điểm nút được nhấp lần đầu tiên, vì stat () chỉ cho bạn biết liệu nút có bị sập khi nó chạy hay không.

Phát hiện điều kiện chiến thắng

Trò chơi tic-tac-toe kết thúc khi:

  • Ba trường hợp của cùng một biểu tượng tồn tại trong cùng một hàng, cột hoặc đường chéo.
  • Tất cả các ô vuông đều đầy.

Các check_for_win chức năng hoạt động xem trạng thái trò chơi hiện tại có đáp ứng một trong hai điều kiện hay không. Có một số cách bạn có thể xử lý điều này, nhưng đối với một trò chơi đơn giản như tic-tac-toe, cách tiếp cận bạo lực thường là dễ nhất:

for a = 1,3 do
if p[a] != "" and p[a] == p[a + 3] and p[a] == p[a + 6] then
finished = true
winner = p[a]
end
end

Đoạn mã này hiển thị việc kiểm tra các cột. Nó tìm kiếm các giá trị khớp không trống ở các vị trí thích hợp trong mảng lưới chính. Nếu nó phát hiện ra một dòng chiến thắng, mã này sẽ đặt hai biến toàn cục sau đó thúc đẩy hiển thị thông báo chiến thắng trong _trưng bày().

Đóng gói trò chơi của bạn

Không có ích gì khi tạo ra một trò chơi trừ khi người khác có thể chơi nó. May mắn thay, PICO-8 đã giúp bạn. Bạn có thể tạo tệp thực thi bằng cách chạy dòng lệnh sau của PICO-8:

  1. Loại hình CHẠY để bắt đầu chương trình của bạn.
  2. Trong khi chạy, nhấn F2 để chụp ảnh màn hình. PICO-8 sẽ sử dụng nó làm hình thu nhỏ cho trò chơi của bạn.
  3. Loại hình XUẤT TICTACTOE.HTML. HTML là định dạng nhanh nhất để tạo và di động nhất.

PICO-8 cũng hỗ trợ các tệp thực thi nhị phân gốc cho Windows, macOS và Linux. Sử dụng XUẤT KHẨU TICTACTOE.BIN để tạo ra chúng. Cho dù bạn chọn định dạng nào, PICO-8 sẽ xuất các tệp của bạn trong thư mục hộp mực.

PICO-8 có thể chỉ là sự khởi đầu

Trò chơi đơn giản này có nhiều tiềm năng cho công việc tiếp theo. Bạn có thể cải tiến đồ họa hoặc thêm một số logic vào các chuyển động của CPU. Bạn cũng có thể tạo phiên bản hai người chơi và cho phép người chơi chọn biểu tượng của họ.

Hầu hết các nhà phát triển trò chơi PICO-8 cung cấp miễn phí các sáng tạo của họ. Trong thế giới phát triển game chuyên nghiệp, các công cụ như Unreal Engine, GameMaker và Unity trở nên phổ biến hơn.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *