Bài 7: Tương tác giữa Xe tăng – Vật cản

Từ ChipFC Wiki
Phiên bản vào lúc 03:09, ngày 10 tháng 11 năm 2018 của Sncarem (Thảo luận | đóng góp) (Tạo trang mới với nội dung “Category:Scratch nâng cao ==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 hiểu…”)
Bước tới: chuyển hướng, tìm kiếm


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 hiểu được kĩ thuật di chuyển của nhân vật trong trò chơi.
  • 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

Hiện tại, xe tăng của chúng ta đang đi đè lên các vật cản. Do đó, trong bài này, chúng ta sẽ cải thiện chương trình của xe tăng để nó không đi qua được vật cản. Chúng ta nhấp đôi vào nhân vật xe tăng để trở về chương trình của đối tượng này và bắt đầu lập trình cho nó.

Tập tin:Bai7-1.jpg
Hình 1: Chương trình di chuyển của xe tăng

Giáo viên nhắc lại cho học sinh nguyên lý hoạt động của chương trình này như sau:

  • Khi nhấn phím mũi tên, chúng ta chỉ cho xe tăng xoay về hướng tương ứng
  • Sau đó, tất cả việc di chuyển đều được định nghĩa trong khối lệnh DiChuyenXeTang

Do đó, để cải tiến việc di chuyển của xe tăng, trong yêu cầu của trò chơi này là không đè lên vật cả, chúng ta chỉ cần cải tiến khối lệnh DiChuyenXeTang mà thôi

Xe tăng không di chuyển khi gặp vật cản

Nguyên lý để hiện thực việc này là chúng ta cứ cho xe tăng di chuyển bình thường, sau đó kiểm tra xem nó có chạm vào vật cản hay không. Nếu đang chạm vào vật cản, thì đi lùi lại. Chương trình gợi ý như sau:

Tập tin:Bai7-2.jpg
Hình 2: Chương trình di chuyển của xe tăng không chạm vào vật cản

Trong chương trình trên, chúng ta sử dụng câu lệnh điều kiện nếu thì để kiểm tra xem xe tăng có đang chạm vào vật cản hay không (đối tượng Ball). Nếu có chạm vào, thì chúng ta cho xe tăng di chuyển 1 đoạn âm để tạo hiệu ứng đi lùi lại. Tuy nhiên việc này sẽ được thực hiện rất nhanh và cảm giác của người chơi là thấy xe tăng đứng yên. Cần lưu ý là khoảng di chuyển tới và lùi phải bằng nhau, ví dụ như chương trình trên là đi tới 20 bước, thì phải đi lùi 20 bước khi gặp vật cản. Nếu 2 số này khác nhau, xe tăng sẽ không tạo ra hiệu ứng đứng yên.

Xe tăng không di chuyển khi chạm biên

Chúng ta sẽ nâng cấp thêm 1 tính năng nhỏ cho việc di chuyển của xe tăng trở nên hợp lý hơn. Cụ thể, xe tăng cũng không di chuyển khi chạm vào biên. Chương trình gợi ý như sau:

Tập tin:Bai7-3.jpg
Hình 3: Chương trình di chuyển của xe tăng được cải tiến: xét thêm điều kiện chạm biên

Giáo viên nhấn mạnh lại lợi ích của việc tạo ra khối lệnh mới: Chúng ta chỉ cần thay đổi tại khối lệnh này, và tất cả hiệu ứng sẽ được áp dụng cho cả 4 phím mũi tên di chuyển.

Bài tập về nhà

Học sinh tự nghĩ ra một ý tưởng mới cho trò chơi, hiện thực nó và trình bày trước lớp vào hôm sau. Một số ý tưởng như sau:

  • Xe tăng bắn 1 lúc ra 3 viên đạn, mỗi viên bay theo 1 hướng
  • Xe tăng bắn đạn đặc biệt khi nhấn vào phím R. Viên đạn này sẽ xuyên qua tất cả viên đạn