Bài 10: Xe tăng tự động bắn đạn

Từ ChipFC Wiki
Bước tới: chuyển hướng, tìm kiếm


Mục tiêu

  • Học sinh hiểu được tư tưởng lập trình cho một đối tượng vận hành tự động.
  • Học sinh hiểu được “trí thông minh” của xe tăng tự động.
  • Học sinh có thể tương tác được nhiều đối tượng trong trò chơi.

Nội dung chi tiết

Trong bài này, chúng ta sẽ làm cho xe tăng tự động bắn ra viên đạn khi đang di chuyển. Cứ mỗi lần chọn 1 hướng bất kì, xe tăng sẽ bắn ra một viên đạn rồi sau đó di chuyển theo hướng đó.

Thêm đối tượng viên đạn cho xe tăng tự động

Đầu tiên, chúng ta cần phải thêm một đối tượng để giả lập là viên đạn của xe tăng tự động. Chúng ta có thể chọn một quả bóng từ thư viện có sẵn của Scratch. Chúng ta có thể chọn quả bóng chày (đối tượng Basketball) làm viên đạn của xe tăng tự động.

Hình 1: Chọn đối tượng Basketball làm viên đạn cho xe tăng tự động

Tương tự như chương trình viên đạn của xe tăng đỏ, chúng ta cũng phải ẩn viên đạn của xe tăng xanh ở đầu chương trình như sau:

Hình 2: Ẩn viên đạn ban đầu trò chơi

Tạo tin nhắn bắn đạn cho xe tăng màu xanh

Khác với viên đạn của xe tăng màu đỏ, nó được bắn đi dựa vào sự kiện khi người dùng nhấn vào nút khoảng trắng. Tuy nhiên, ở xe tăng màu xanh sẽ bắn viên đạn hoàn toàn tự động. Do đó, chúng ta cần tạo ra một sự kiện để giả lập như sự kiện nhấn vào phím khoảng trắng. Để làm điều đó, chúng ta sẽ gửi một thông báo đến viên đạn Basketball. Thông báo này sẽ được gọi trong kịch bản di chuyển của xe tăng màu xanh. Để tạo một tin nhắn mới chúng ta vào nhóm lệnh Sự kiện, chọn vào câu lệnh thông báo, chọn tiếp vào nút mũi tên bên phải và chọn tin nhắn mới

Hình 3: Tạo tin nhắn mới

Giao diện dưới đây sẽ hiện lên, cho phép chúng ta đặt tên cho tin nhắn mới, chúng ta có thể đặt tên là BanDanTankXanh (viết tắt không dấu cho Bắn Đạn Tăng Xanh), và chọn OK.

Hình 4: Đặt tên cho tin nhắn bắn đạn

Hiện thực chương trình bắn đạn cho xe tăng xanh

Bây giờ chúng ta bắt đầu hiện thực chương trình bắn đạn cho xe tăng xanh. Hoàn toàn tương tự với viên đạn của xe tăng đỏ, tuy nhiên, sự kiện bắt đầu bắn ra viên đạn là khi nhận được tin nhắn BanDanTankXanh mà chúng ta vừa tạo ra ở trên. Chương trình gợi ý như sau:

Hình 5: Chương trình bắn đạn của xe tăng màu xanh

Chúng ta có thể thấy, chương trình này hoàn toàn tương tự với viên đạn của xe tăng đỏ. Tuy nhiên, chúng ta bắt đầu chương trình này bằng sự kiện khi tôi nhận được thông báo BanDanTankXanh. Hiển nhiên, chúng ta cũng cần chỉnh lại câu lệnh xoay về phía cho phù hợp. Ở đây, sẽ là hướng của đối tượng tank_xanh. Cuối cùng, các câu lệnh chơi âm thanh là không cần thiết và có thể được loại bỏ. Giáo viên và học sinh chú ý các câu lệnh có dấu mũi tên màu đỏ, là các câu lệnh quan trọng và dễ bị nhầm lẫn khi sao chép chương trình từ xe tăng màu đỏ.

Gọi sự kiện bắn đạn ở đối tượng tank_xanh

Sau khi đã hiện thực sự kiện bắn ra viên đạn, ta cần gọi nó ở kịch bản di chuyển của xe tăng màu xanh. Ví dụ ở đây, là mỗi lần chọn 1 hướng, nó sẽ bắn ra viên đạn, đợi 3s, rồi mới bắt đầu di chuyển.

Hình 6: Thêm câu lệnh thông báo BanDanTankXanh vào kịch bản di chuyển

Bài tập về nhà

Học sinh có thể xây dựng thêm các kịch bản di chuyển và bắn đạn phức tạp hơn. Ví dụ sau khi di chuyển xong, xe tăng lại tiếp tục bắn thêm 1 viên đạn nữa.