Khác biệt giữa các bản “Bài 7: Tương tác giữa Xe tăng – Vật cản”

Từ ChipFC Wiki
Bước tới: chuyển hướng, tìm kiếm
(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…”)
 
 
Dòng 9: Dòng 9:
 
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ó.
 
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|120px|nhỏ|giữa|Hình 1: Chương trình di chuyển của xe tăng]]
+
[[Tập tin:bai7-1.png|120px|nhỏ|giữa|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:
 
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:
Dòng 22: Dòng 22:
 
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:
 
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|120px|nhỏ|giữa|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]]  
+
[[Tập tin:bai7-2.png|120px|nhỏ|giữa|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.
 
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.
Dòng 29: Dòng 29:
 
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:
 
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|120px|nhỏ|giữa|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]]  
+
[[Tập tin:bai7-3.png|120px|nhỏ|giữa|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.
 
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ản hiện tại lúc 05:52, ngày 10 tháng 11 năm 2018


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ó.

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:

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:

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