Bài 6: Tương tác giữ Đạn – Vật cản trong trò chơi
Mục lục
Mục tiêu
- Học sinh hiểu được kĩ thuật tương tác giữa nhiều đối tượng.
- Học sinh sử dụng được kĩ thuật “gửi tin nhắn”.
- Học sinh áp dụng được các kĩ thuật này để áp dụng vào trò chơi.
Nội dung chi tiết
Sửa bài tập về nhà
Ở Bài 5, chúng ta cần hiện thực thêm chức năng tạo ra bản đồ như sau: Chúng ta sẽ không tạo ra viên gạch nếu nó đang chạm vào xe tăng. Do đó, chúng ta cần kiểm tra thêm điều kiện có đang chạm vào xe tăng hay không trước khi tạo ra một bản sao. Như vậy, một vật cản chỉ được tạo ra nếu như giá trị trong danh sách tương ứng là 1 và nó phải không chạm vào xe tăng. Đoạn chương trình để kiểm tra 2 điều kiện này như sau:
Bài tập trên lớp: Giáo viên cho học sinh hiện thực chương trình hoàn chỉnh sau đây. Đoạn chương trình này cũng chính là đáp án của bài tập về nhà ở Bài 5.
Sau khi chạy chương trình, giáo viên có thể cho học sinh di chuyển vị trí của xe tăng. Chúng ta có thể thấy, vật cản sẽ không được tạo ra khi có xe tăng ở đó (xem . Điều này cũng hợp lý với mục đích của trò chơi, xe tăng cần khoảng trống để di chuyển.
Tương tác giữa viên đạn và vật cản
Theo như yêu cầu của trò chơi này, xe tăng có thể bắn để “dọn dẹp” vật cản. Với chương trình hiện tại, mỗi khi viên đạn được bắn ra (nhấn phím khoảng trắng), nó đang “đi xuyên” qua vật cản. Chúng ta cần cải tiến chương trình để khi viên đạn chạm vào vật cả, cả 2 cùng biến mất.
Đầu tiên, chúng ta sẽ viết chương trình cho vật cản trước. Cần lưu ý ở đây, mỗi vật cản thật ra chỉ là 1 bản sao từ bản gốc của chúng mà thôi (trong chương trình, chúng ta đang dùng câu lệnh tạo ra bản sao từ bản thân tôi). Do đó, chúng ta sẽ hiện thực chức năng trong sự kiện khi 1 bản sao được tạo ra. Chúng ta cần một vòng lặp mãi mãi để kiểm tra xem bản sao (chính là vật cản) có chạm vào viên đạn hay không. Chương trình gợi ý như sau:
Lưu ý: Đây là chương trình cho vật cản, nên chúng ta cần nhấp đôi vào vật cản (đối tượng Button3) để hiện thực đoạn chương trình này.
Ẩn viên đạn khi đụng vật cản
Với chương trình hiện tại, vật cản đã mất đi mỗi khi viên đạn đụng phải. Tuy nhiên, viên đạn vẫn tiếp tục bay đi và làm mất đi những vật cản phía sau. Chúng ta cần cải tiến chương trình để cho viên đạn biến mất khi nó gặp phải vật cản đầu tiên. Để làm được việc này, chúng ta cần 2 bước.
Bước 1: Trước khi xóa bản sao của vật cản, chúng ta cần tạo ra 1 tin nhắn gửi đến viên đạn. Chúng ta sẽ dùng câu lệnh thông báo, và tạo một tin nhắn mới (nhấn vào kí hiệu tam giác ở góc của câu lệnh thông báo), một hộp hoại thoại hiện ra cho phép chúng ta đặt tên cho thông báo, ví dụ là DanChamGach (viết tắt của Đạn Chạm Gạch), như hình vẽ dưới đây:
Chương trình hoàn thiện cho vật cản như sau:
Bước 2: Cập nhật chương trình cho viên đạn (đối tượng Ball): Khi nhận được thông báo thì ngừng hoạt động của viên đạn, để nó không bay nữa, và ẩn nó đi.
Lưu ý: Đây là chương trình cho viên đạn, nên phải nhấp đôi vào đối tượng viên đạn để hiện thực thêm đoạn chương trình này. Học sinh cần lưu ý màu của các câu lệnh để tìm cho đúng và hiệu chỉnh lại các thông số bằng cách nhấn vào phím mũi tên màu đen ở góc bên phải của các câu lệnh.