Scratch: Bài 5. Mèo bay

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

I. MỤC ĐÍCH

Sau khi học xong bài này, em sẽ biết cách kết hợp những lệnh em đã được học ở những bài học trước, và em cũng sẽ làm được project Mèo bay.

II. KHỞI ĐỘNG

Trước tiên chúng ta cần làm quen với khái niệm "Phủ định", nó có nghĩa là thực hiện điều ngược lại, ví dụ như đang là đúng thì phủ định sẽ thành sai, đang là sai thì phủ định sẽ thành đúng.

III. BẮT ĐẦU BÀI HỌC

1. TÌM HIỂU MỘT SỐ LỆNH:

- Lệnh switch costume to:

Lệnh switch costume to

Dùng để chuyển hình dạng củanhân vật sang một hình dạng cụ thể khác. Ví dụ như chuyển chú mèo từ dạng bay ngang sang dạng bay lên cao.

- Lệnh next costume:

next costume

Dùng để chuyển hình dạng của nhân vật sang một hình dạng tiếp theo ngay sau hình dạng hiện thời. Ví dụ chú mèo có 3 dạng liên tục nhau là bay xuống, bay ngang, và bay lên, nếu chú mèo đang ở dạng bay xuống thì lệnh next costume sẽ chuyển hình dạng của chú mèo sang bay ngang.

- Lệnh phủ định:

Lệnh phủ định - not

Dùng để phủ định, chuyển thành điều ngược lại với điều hiện tại. Ví dụ như lệnh Ví dụ lệnh phủ định có nghĩa là nếu không phải phím cách được nhấn.

2. LÀM PROJECT:

Chủ đề:

Mèo bay.

Mô tả:

Có 1 chú mèo đang bay qua các tòa nhà, chú mèo có thể bay lên cao hơn nếu muốn, nhưng chú mèo sẽ rơi dần nếu không được tiếp sức, và nếu chạm vào một tòa nhà bất kỳ hoặc chạm vào nền đất thì trò chơi sẽ kết thúc. Em hãy lập trình để thực hiện ý tưởng nhé.

Em hãy tạo và chọn 3 nhân vật chú mèo bay, nền đất và tòa nhà như hình dưới đây:

Thiết kế giao diện ban đầu

Yêu cầu: Khi nhấn cờ xanh thì vị trí của chú mèo, nền đất và tòa nhà sẽ như sau:

Vị trí ban đầu của các nhân vật

Hướng dẫn:

- Lập trình cho tòa nhà:

Lập trình để tòa nhà di chuyển sang bên trái, sau khi di chuyển hết biên bên trái sẽ có 1 tòa nhà khác xuất hiện và di chuyển tương tự.

Lập trình cho tòa nhà di chuyển sang trái

- Lập trình cho chú mèo:

+ Khi mới bắt đầu chơi chú mèo đang bay nhưng rơi dần xuống đất, nếu nhấn phím cách (Space) thì chú mèo lại bay lên cao hơn.

Lập trình chú mèo rơi dần xuống đất

+ Khi nhấn phím cách thì chú mèo sẽ bay lên:

Lập trình để chú mèo bay lên

+ Em hãy lấy thêm dạng bay lên của chú mèo:

Dạng bay lên của chú mèo

+ Sau đó lập trình tạo hiệu ứng khi nhấn phím cách thì dạng bay lên sẽ được áp dụng, còn nếu không nhấn phím cách thì chú mèo lại trở về dạng bay ngang.

Code ví dụ:

Code chuyển hình dạng cho chú mèo

+ Bây giờ ta sẽ lập trình để khi chú mèo chạm vào nền đất thì trò chơi kết thúc. Đặt tên cho nền đất là Background, đây là code tham khảo:

Chú mèo chạm vào nền đất thì kết thúc trò chơi

+ Khi chạm vào tòa nhà trò chơi cũng kết thúc:

Chạm vào tòa nhà thì trò chơi cũng kết thúc

+ Bây giờ em sẽ lập trình cho phần tính điểm nhé. Mỗi khi chú mèo vượt qua được 1 tòa nhà thì điểm số sẽ tăng lên 1. Lưu ý ban đầu em cần đặt điểm số là 0 nhé.

Em hãy phân tích một chút về cách tính điểm nhé: Khi nào thì ta hiểu là chú mèo đã vượt qua tòa nhà? Em trả lời xem nào.

Trả lời: Khi chú mèo vượt qua 1 tòa nhà, tức là khi có 1 tòa nhà khác xuất hiện. Như vậy em chỉ việc đặt lệnh tăng điểm số ngay sau lệnh làm tòa nhà khác xuất hiện, đó chính là lệnh next costume trong phần lập trình của tòa nhà.

Tức là lệnh sẽ được đặt như sau:

Đặt lệnh custome

Chương trình gợi ý:

- Lệnh lập trình cho chú mèo:

Gợi ý lập trình cho chú mèo

- Lệnh lập trình cho tòa nhà:

Gợi ý lập trình cho tòa nhà

NÂNG CAO 1

- Phép toán OR:

Phép toán OR

Dùng để thiết lập 2 điều kiện cùng một lúc, và chỉ cần một trong 2 điều kiện đúng thì kết quả trả về sẽ đúng.

Ví dụ, nếu em muốn biểu diễn điều kiện biến score có lớn hơn hoặc bằng 10 thì em làm như sau:

Ví dụ phép toán OR

Yêu cầu nâng cao:

Em hãy lập trình để tòa nhà di chuyển với các tốc độ khác nhau ứng với các mốc điểm (score) khác nhau.

Gợi ý:

Em thấy rằng việc di chuyển của tòa nhà liên quan đến lệnh:

Lệnh glide-lướt

Ở đây thì việc di chuyển nhanh hay chậm sẽ phụ thuộc vào thời gian di chuyển (ở lệnh trên là 3 giây). Nếu thời gian di chuyển ít hơn (thay vì 3 giây em cho di chuyển trong thời gian 2 giây) thì tòa nhà sẽ di chuyển nhanh hơn.

Do vậy, để thay đổi tốc độ của tòa nhà em sẽ thay đổi thời gian di chuyển trên lệnh glide.

Vì yêu cầu tòa nhà di chuyển với các tốc độ khác nhau ứng với các mốc điểm khác nhau nên cách hay nhất là em tạo một biến lưu lại thời gian di chuyển của tòa nhà (ví dụ biến time chẳng hạn), sau đó thiết lập giá trị ban đầu cho biến chính là 3 (ứng với 3 giây). Lúc này code của tòa nhà em sẽ thay đổi thành như sau:

Thay đổi code của tòa nhà khi áp dụng biến time

Giả sử với mốc điểm là >=10 thì thời gian di chuyển của tòa nhà là 2 giây, khi đó em lập trình như sau:

Thêm code thay đổi thời gian di chuyển của tòa nhà khi điểm số >=10

Thử thách:

Bây giờ, em hãy thêm vào ít nhất 2 mốc điểm khác nhau tùy ý nữa, và ứng với mỗi mốc điểm sẽ là thời gian di chuyển tương ứng nhé.

NÂNG CAO 2

- Lệnh chuyển dạng nhân vật:

lệnh switch costume

Dùng để chuyển dạng nhân vật sang 1 dạng khác.

Có thể sử dụng switch costume với pick random để chuyển dạng nhân vật sang một vị trí ngẫu nhiên.

Em hãy thay các tòa nhà bằng các đường ống, các đường ống em tự vẽ, nó sẽ có dạng như thế này:

Hướng dẫn vẽ đường ống:

Em hãy chọn chế độ Paint:

chế độ paint

Đặt tên là: Duong ong

Rồi chuyển sang chế độ bitmap:

chuyển chế độ bitmap

Chọn vẽ hình chữ nhật:

chọn vẽ hình chữ nhật

Chọn màu rồi vẽ:

chọn màu rồi vẽ

Nhân bản thành nhiều bản (ít nhất 6 bản):

nhân bản đường ống

Tiến hành cắt phần giữa ở những vị trí khác nhau như hướng dẫn ở hình dưới:

tách phần giữa đường ống

Chuyển toàn bộ code của tòa nhà sang đường ống, sau đó chỉnh sửa cho phù hợp để mèo chạm vào đường ống không phải là tòa nhà.

Chỉnh sửa để các đường ống khác nhau xuất hiện ngẫu nhiên không theo tuần tự bằng cách thay lệnh lệnh next costume bằng lệnh switch costume với pick random, lưu ý là nếu đường ống có 8 costume chẳng hạn thì thay 6 là 8, …

Xóa tòa nhà.

Khi lên level cao hơn đường ống sẽ di chuyển nhanh hơn, em có thể lập trình để giúp chú mèo có thể di chuyển nhanh hơn bằng cách lập trình cho 4 mũi tên lên xuống trái phải.

Em hãy tạo 1 ngôi sao, để khi chơi thì ngôi sao sẽ xuất hiện ở một vị trí bất kỳ trên sân khấu, khi chú mèo chạm được vào thì điểm sẽ được cộng thêm 5 và ngôi sao sẽ ẩn đi. Sau 5 giây chú mèo không chạm được vào thì ngôi sao sẽ tự động được ẩn đi, 5 giây sau lại hiện ra.

» Tiếp: Bài 6. Đi xe tránh vật cản
« Trước: Bài 4. Hứng hoa quả
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!