Trong video này, ta sẽ học các kiến thức nâng cao hơn với lệnh "text".
Đầu tiên, chúng ta sẽ bắt đầu,
học cách sử dụng "string", nghĩa là chuỗi ký tự.
Vậy chuỗi ký tự là gì?
Trong lập trình, đây là một tên gọi đặc biệt
sử dụng cho một đoạn văn bản.
Bạn có thể hiểu chuỗi ký tự như một dây nối liền các chữ cái.
Tên bạn là một chuỗi ký tự, tên trường học là một chuỗi ký tự.
Mỗi tin nhắn mà bạn gửi cũng là một chuỗi ký tự.
Về cơ bản, ta có thể coi chuỗi ký tự là văn bản.
Trong video trước, ta đã học cách tạo và đổi màu các chuỗi ký tự.
Vậy ta hoàn toàn có thể dùng biến với chuỗi ký tự.
Tương tự như cách gán một số cho một biến,
ta cũng có thể gán một chuỗi ký tự cho một biến.
Chúng ta có thể nhập như sau:
"var myName =", rồi nhập tên bạn, ví dụ như "Sophia".
Sophia cần đặt trong dấu ngoặc kép.
Sau đó, chúng ta thay biến "myName"
vào phần văn bản cần hiển thị trong câu lệnh text
như ta đã làm trước kia.
Ta vẫn thu được kết quả tương tự trên khung.
Và ta có thể nhập vô số lệnh "text" tương tự
và thay đổi giá trị các tham số
để trình bày rõ ràng các văn bản.
Bạn cũng có thể cho biến "myName"
nhận "Your Name", nghĩa là tên của bạn,
bằng cách này, bạn sẽ viết được tên mình 3 lần.
Bây giờ, ta đổi lại tên thành "Sophia" để tiếp tục bài học.
Liệu ta có thể gắn nhiều chuỗi ký tự với nhau
bằng cách gán biến này phụ thuộc vào biến khác hay không?
Chúng ta có thể thực hiện được
và chương trình sẽ liên kết hai chuỗi ký tự với nhau.
Ví dụ, chúng ta sẽ xóa bớt hai lệnh "text",
thêm một biến "message" nghĩa là tin nhắn
và gán biến "myName" cộng ba dấu chấm than vào biến mới này.
Như vậy, nếu chúng ta thay "message" vào "myName"
trong lệnh "text", ta có thể thấy rằng
3 dấu chấm than đã được thêm vào sau
giá trị của biến "myName" là "Sophia", như cú pháp của biến "message".
Chúng ta còn có thể thực hiện thêm thao tác,
chẳng hạn như viết biến "message" hai lần.
Như vậy, việc gắn các chuỗi ký tự với nhau
nghĩa là ta gắn một chuỗi ký tự vào sau một chuỗi ký tự khác.
Tiếp theo, ta còn có thể làm gì khác với câu lệnh text?
Ta có thể thực hiện nhân, chia hoặc trừ các chuỗi ký tự không?
Trên thực tế, ta không thể thực hiện các thao tác này.
Ta chỉ có thể gắn thêm chuỗi ký tự này vào chuỗi ký tự khác.
Ta chỉ có thể chia hoặc trừ với các biến nhận giá trị là số,
nhưng với biến chuỗi ký tự thì ta chỉ được thêm chuỗi ký tự.
Việc tò mò và đặt những câu hỏi như vậy
là một cách rất tốt để bạn học lập trình.
Bạn hoàn toàn có thể tự đặt câu hỏi cho mình để phát triển tư duy.
Tiếp theo, ta cũng có thể tạo hiệu ứng hoạt hình và tương tác chuột với các chuỗi ký tự.
Ví dụ, ta có thể làm cho chuỗi ký tự đổi vị trí theo vị trí con trỏ chuột
bằng cách gán chuỗi ký tự với hàm "draw" như khi ta làm với hình chữ nhật.
Ta nhập như sau: "var draw = function()"
và đưa tất cả biến chuỗi ký tự vào hàm "draw"
tương tự như khi học về hiệu ứng hoạt hình.
Bây giờ, để khiến văn bản di chuyển theo vị trí di con trỏ chuột,
chúng ta cần thay biến "mouseX" và "mouseY" vào vị trí 2 tham số.
Và kết quả là vô số "Sophia!!!" được hiển thị theo vị trí di của con trỏ chuột.
Chúng ta có thể thêm lệnh "background", đổi màu nền thành xanh lam nhạt
để chỉ có 1 "Sophia!!!" di theo con trỏ chuột.
Vậy là chuỗi ký tự của chúng ta đã di chuyển theo vị trí di con trỏ chuột,
tương tự như hình chữ nhật trong các bài trước.
Tiếp theo, chúng ta sẽ cùng tạo hiệu ứng hoạt hình
để làm cho kích thước văn bản to dần.
Đầu tiên, áp dụng kiến thức đã học về biến, thay vì sử dụng "textSize(30)"
ta có thể nhập biến "var howBig = 30;"
và thay biến này cho số 30 ở câu lệnh "textSize".
Khung kết quả vẫn chưa có gì thay đổi.
Vì vậy, ta cần làm các bước tiếp theo
để tạo được hiệu ứng hoạt hình.
Ta có thể nhập "howBig = howBig + 1"
để cộng thêm một đơn vị vào giá trị khởi tạo ban đầu
gán cho biến "howBig", thể hiện rằng giá trị sẽ lớn dần.
Bây giờ, chúng ta sẽ chạy lại chương trình.
Trong khung kết quả, khi ta di con trỏ chuột,
kích thước văn bản cũng to dần
nhờ vào dòng "howBig = howBig + 1" này.
Bạn cũng có thể tự nghĩ xem
làm thế nào để kích thước văn bản to lên nhanh hơn?
Tóm lại, đến bài này, chúng ta không chỉ biết lập trình với các hình khối
mà còn học được cách lập trình với văn bản nữa.