Cách tạo game rắn săn mồi cổ điển bằng Scratch

  • 1 Đánh giá

Game Rắn săn mồi (Snake) gắn liền với tuổi thơ của nhiều thế hệ. Và giờ dù có ít kinh nghiệm lập trình, trẻ em hoàn toàn có thể tạo game Rắn săn mồi bằng Scratch.

Lựa chọn hình nền phù hợp

Đối với trò chơi Rắn săn mồi, trẻ sẽ cần hai hình nền như sau:

Hình nền đầu tiên dành cho khu vực chơi game và sẽ xuất hiện ngay khi bắt đầu trò chơi. Trẻ có thể tự vẽ hình nền, tải lên hình nền có sẵn hoặc chọn từ thư viện của Scratch. Trước mắt, hãy chọn hình nền từ thư viện có sẵn của Scratch bằng cách nhấp vào tùy chọn chọn hình nền (backdrop) như hình dưới đây:

Backdrop Scratch

Sau đó, trong mục "ngoài trời" (outdoors) của thư viện Scratch, chọn phông nền khu rừng như hình dưới đây:

Chọn bối cảnh rừng

Hình nền thứ hai hiển thị khi trò chơi kết thúc (game over); hình nền này sẽ xuất hiện ngay khi con rắn chạm vào mép của khu vực chơi. Đối với hình nền này, chọn công cụ vẽ (paint) và tô kín màn hình bằng một màu bất kỳ thông qua công cụ đổ màu (fill). Trước tiên, bạn cần chuyển đổi hình ảnh sang dạng bitmap bằng cách nhấp vào nút tương ứng ở bên dưới, sau đó nhấp chuột vào màn hình để tô màu đã chọn.

Tô màu

Bước tiếp theo là nhấp vào tùy chọn chữ T (dùng để chèn văn bản), chọn một kiểu phông chữ khác (ví dụ: kiểu chữ uốn lượn), chọn màu tô khác, rồi viết dòng chữ "GAME OVER" lên màn hình như trong hình minh họa dưới đây.

Chỉnh bối cảnh game

Ngoài ra, bạn có thể vận dụng sự sáng tạo để thêm các đối tượng khác nhau bằng cách sử dụng những công cụ tạo hình có sẵn như minh họa dưới đây, và cuối cùng là đổi tên cho phần nền.

Chỉnh backdrop game over

Giờ, trẻ có 2 background cho dự án: ảnh rừng và game over.

Chọn các sprite

Game này cần hai sprite: thức ăn và con rắn. Bạn có thể chọn bất kỳ sprite nào làm thức ăn từ thư viện, tải lên hoặc tự vẽ. Vì rắn thường ăn côn trùng, chọn sprite hình con châu chấu từ thư viện Scratch bằng cách nhấp vào tùy chọn Chọn một sprite (Choose a sprite) như hình dưới đây.

Chọn Sprite

Tiếp theo, chọn nhân vật (sprite) con châu chấu bằng cách vào danh mục động vật. Trẻ thậm chí có thể dễ dàng thấy châu chấu trong ô tìm kiếm sẵn có.

Ảnh con châu chấu

Sprite tiếp theo sẽ là con rắn. Để thực hiện, hướng dẫn đã tải xuống hình ảnh phần đầu và phần thân có vảy của con rắn từ internet; trước khi sử dụng, loại bỏ nền của các hình ảnh này bằng cách tải chúng lên trang https://www.remove.bg/upload rồi tải lại về máy. Sau đó, bạn có thể tải một trong các hình ảnh lên làm sprite và đưa hình còn lại vào phần trang phục (costume) của sprite đó. Cuối cùng, chúng ta sẽ có một sprite tên là "snake" với hai trang phục là phần đầu và phần thân, như minh họa dưới đây.

Trang phục cho rắn

Lập trình cho background

Ngay khi nhấp vào lá cờ xanh, phông nền đầu tiên xuất hiện sẽ là khu rừng – nơi đóng vai trò là khu vực chơi. Để thực hiện điều này, viết đoạn mã sau đây.

Ngoài ra, nếu muốn nhạc nền phát liên tục, trẻ có thể lồng khối lệnh phát âm thanh vào trong khối "liên tục" (forever) khi nhấn vào lá cờ xanh, như minh họa dưới đây. Trẻ cũng có thể chọn âm thanh mong muốn từ thư viện âm thanh có sẵn (nằm cạnh mục trang phục) hoặc thậm chí tự tải lên hay ghi âm âm thanh của riêng mình.

Lập trình cho nhân vật (sprite) thức ăn là chú châu chấu

Trước tiên, tạo hai biến là `score` (điểm số) và `length` (độ dài), rồi khởi tạo giá trị ban đầu của chúng bằng 0. Nghĩa là, ngay khi nhấp vào lá cờ xanh, giá trị của các biến `score` và `length` sẽ được thiết lập về 0.

Tiếp theo, di chuyển chú châu chấu trên sân khấu (stage) đến góc xa nhất bên trái để kiểm tra tọa độ x, sau đó di chuyển nó sang góc xa nhất bên phải và kiểm tra tọa độ x tại đó. Đây sẽ là phạm vi tọa độ x mà châu chấu có thể xuất hiện. Trong trường hợp này, phạm vi đó xấp xỉ từ -217 đến 217. Tương tự, kiểm tra tọa độ y ở mép trên cùng và dưới cùng của sân khấu bằng cách kéo châu chấu đến các vị trí đó.

Như vậy, châu chấu sẽ nhận được tọa độ x và y ngẫu nhiên mỗi khi chúng ta bắt đầu trò chơi. Bây giờ, bên trong khối lệnh `forever` (liên tục), kiểm tra xem châu chấu có đang chạm vào con rắn hay không. Khi có sự va chạm, tăng biến `score` thêm 1 (cộng 1 điểm) và tăng biến `length` thêm 0,1; việc tăng biến `length` này sẽ giúp làm tăng độ dài của con rắn sau đó. Cuối cùng, sử dụng lại khối lệnh di chuyển đến tọa độ x, y (`go to x: y:`) để đưa châu chấu đến một vị trí ngẫu nhiên mỗi khi con rắn chạm vào nó; qua đó hoàn tất phần lập trình cho nhân vật châu chấu.

Lập trình châu chấu

Lập trình cho nhân vật (sprite) con rắn

Ở đây, sử dụng thêm một biến có tên là `direction` để quản lý hướng di chuyển của con rắn. Các biến có thể lưu trữ nhiều loại dữ liệu khác nhau như số, chuỗi (văn bản), giá trị logic (đúng hoặc sai), v.v. Do đó, khi nhấn phím mũi tên lên, ta sẽ gán giá trị "Forward" (tiến) cho biến `direction`. Tương tự, đối với các phím mũi tên xuống, trái và phải, ta sẽ lần lượt gán các giá trị "backward" (lùi), "left" (trái) và "right" (phải) cho biến này.

Lập trình con rắn

Tiếp theo, khi nhấp vào lá cờ xanh, đặt vị trí ban đầu của con rắn tại tâm, với tọa độ x và y đều bằng 0. Sau đó, chuyển trang phục của con rắn sang hình cái đầu. Để con rắn di chuyển liên tục, kiểm tra giá trị của biến hướng (direction) đã thiết lập trước đó. Tùy thuộc vào việc hướng di chuyển là tiến, lùi, sang trái hay sang phải, thay đổi tọa độ x và y của nó. Khi nhân vật (sprite) di chuyển lên trên, giá trị y sẽ tăng; khi di chuyển xuống dưới, giá trị y sẽ giảm. Tương tự, khi di chuyển sang trái thì x giảm, còn sang phải thì x tăng.

Tại đây, bên trong khối lệnh "liên tục" (forever), kiểm tra thêm một điều kiện xem con rắn có đang chạm vào bất kỳ cạnh nào của màn hình hay không. Nếu chạm cạnh, đặt biến độ dài (length) về 0 và chuyển phông nền sang cảnh kết thúc trò chơi (game over). Đồng thời, sử dụng khối lệnh "dừng tất cả" (stop all) để ngưng thực thi mọi tập lệnh của nhân vật.

Cũng trong khối lệnh "liên tục" này, để tăng độ dài cho con rắn, liên tục tạo các bản sao (clone) của con rắn ở phía sau.

Lập trình điều hướng

Khi bản sao bắt đầu hành trình của mình, đảm bảo rằng nó mang hình dáng của vật thể gốc, vì chính hình ảnh của vật thể đó là thứ cần được hiển thị với kích thước tăng dần. Do các bản sao được tạo ra liên tục và có thể gây treo máy vì chiếm dụng bộ nhớ, hãy lập trình xóa chúng sau một khoảng thời gian tương ứng với giá trị của biến `length`. Như vậy, giá trị của biến `length` càng lớn thì bản sao càng tồn tại lâu trên màn hình và kích thước hiển thị cũng càng lớn.

Lập trình game Scratch

Đây là một trong số hình ảnh kết quả:

Game rắn săn mồi kinh điển

Cập nhật: 02/10/2026
  • lượt xem
Xem thêm: Scratch