-
Ta sẽ quay lại chương trình vẽ Winston, nhưng tôi đã thêm một số chữ vào đó.
-
Hãy xem, những gì ta muốn làm là đặt Winston bên dưới các nhãn này,
-
để thể hiện anh ấy ở mỗi thời điểm trong đời.
-
Lúc này anh ấy ở khắp mọi nơi. Đó là bởi ta đang gán
-
faceX và faceY cho các giá trị ngẫu nhiên bên trong hàm.
-
Ta muốn rằng "Đây là vị trí chính xác tôi muốn vẽ Winston"
-
Tôi muốn có thể chỉ định vị trí đó mỗi khi gọi hàm,
-
giống như cách ta làm với ellipse() và rect().
-
Tôi muốn đặt Winston ở đây, đây và Winston ở đây, và Winston ở đây nữa,
-
và tôi không muốn chỉ là những vị trí ngẫu nhiên mỗi khi gọi hàm.
-
Để làm điều đó, ta phải chỉ định "tham số" cho hàm,
-
cả trong định nghĩa hàm - ở trên cùng ở đây -
-
và trong lời gọi hàm, ở đây, khi ta thực sự gọi nó.
-
Đối với drawWinston(), ta truyền vào faceX và faceY,
-
và sử dụng những giá trị mà ta truyền vào thay vì tạo ra chúng một cách ngẫu nhiên.
-
Hãy suy nghĩ về những gì ta sẽ truyền vào các hàm gọi ở đưới đây.
-
Ta đặt Winstons dưới mỗi chữ, vì vậy ta có thể muốn x và y của mỗi
-
Winston tương ứng với các giá trị ta đã truyền vào các hàm text().
-
Có thể, nhỏ hơn 10 pixel với y. Cái đầu tiên sẽ là 10 và 30,
-
và sau đó có thể 200, 230 ... 10, 230 ... 200, 230.
-
Nó giống như tọa độ của chữ, tôi chỉ cần +10 cho mỗi y, '
-
bởi tôi muốn nó thấp hơn một chút thôi.
-
Winston không di chuyển. Ta đã không cho hàm ở đây biết rằng
-
ta đang truyền tham số cho nó, vì vậy nó vẫn sử dụng các giá trị ngẫu nhiên này.
-
Để nói với hàm này, "Thay vào đó anh sẽ cung cấp cho chú thông tin này".
-
ta cần đặt tên tham số bên trong dấu ngoặc đơn.
-
Ta sẽ gọi nó là faceX và faceY, phân tách chúng bằng dấu phẩy,
-
Ta gọi như vậy là vì ta đang sử dụng nó để tham chiếu trong hàm.
-
Bằng cách đó, ta không phải viết lại phần còn lại của code.
-
Nhưng vẫn không có gì xảy ra; Winston vẫn còn ở khắp mọi nơi.
-
Nếu nhìn vào phần đầu của hàm,
-
ta vẫn ghi đè faceX và faceY với các giá trị ngẫu nhiên.
-
Vì vậy, tất cả những gì ta phải làm là xóa những dòng này đi.
-
Bây giờ, faceX và faceY đang được truyền vào hàm,
-
và nó đang dùng các giá trị được gọi ở đây.
-
Tôi đã không định vị chính xác Winston, vì quên rằng chữ đã được xác định vị trí
-
căn theo phía trên bên trái, và mặt được xác định vị trí theo tâm điểm.
-
Ta cần tiếp tục và điều chỉnh số má một chút ở đây, phải không?
-
Tôi cần phải đặt 'x' lên rất nhiều, và di chuyển nó, được rồi ... như vậy đó là những bước đi đầu tiên
-
Ta sẽ thực hiện và thay đổi những gì truyền vào hàm,
-
Ta không phải thay đổi định nghĩa hàm,
-
Nó sẽ luôn lấy bất cứ giá trị nào ta truyền vào.
-
Cũng giống như với ellipse() và rect().
-
Tôi đã định vị nó, nhưng nhận thấy rằng Winston quá to.
-
Anh ta chồng chéo và không phù hợp.
-
Tôi đã viết code để vẽ anh ta trong một hàm,
-
Tôi có thể thay đổi kích thước của tất cả chúng cùng một lúc
-
bằng cách thay đổi dòng code vẽ hình elip.
-
Nếu ta đặt cho anh ta kích thước như 190, Winston sẽ ăn kiêng còn 190.
-
Bây giờ anh ta sẽ khỏe hơn và sau đó ta có thể tiếp tục điều chỉnh
-
Như vậy, tôi thực sự có thể đưa anh ta vào trong đó, phải không? Ngon.
-
Hãy xem xét lại những gì code này làm. Nó định nghĩa một hàm gọi là drawWinston()
-
và nói rằng hàm này có hai giá trị tên là faceX và faceY,
-
các giá trị này xuất hiện dưới dạng những biến ta có thể sử dụng ở bất kỳ đâu trong hàm,
-
giống như ta đã từng sử dụng các biến đã khai báo ở trên cùng
-
Và sau đó ta có thể gọi hàm này bất cứ khi nào mình muốn sau khi khai báo nó,
-
ta có thể truyền các giá trị khác nhau, để nó sử dụng các giá trị mới đó trong mỗi lần.
-
Bạn đã thấy những điều tuyệt vời về hàm. Ta có thể tiếp tục code
-
và nghĩ rằng sẽ rất hữu ích khi tái sử dụng, nhưng ta cũng có thể dùng các tham số để thể hiện
-
"Này, đây là điều gì đó ta có thể thay đổi trong code này, để tùy chỉnh."
-
Nó giống như một công thức. Bạn viết ra những chỉ dẫn chung,
-
và nếu bạn nhận ra rằng bạn đột nhiên cần có 4 Winstons thay vì 1,
-
bạn không phải bắt đầu lại, chỉ cần sửa đổi các hướng dẫn ban đầu
-
và nhân mọi thứ với 4.
-
Bây giờ bạn có thể bắt đầu suy nghĩ về các công thức trong code của mình rồi đấy! Ngon.