在使用Scratch製作角色動畫時經常會有需要兩個角色甚至是多個角色之間對話的場景,許多同學都是透過廣播的方式,讓角色一個對話一個對話地進行,如果對話的內容很多,經常都會造成積木的數量過多,而且也不好管理。但是,因為兩個角色之間的對話其實就是一連串的字串顯示,透過清單和迴圈,可以大大地簡化程式積木的數量,也可以讓程式更好理解。
首先,假設我們在一個場景中有兩隻貓咪要進行對話,一開始先把場景和角色佈置成如下所示的樣子:
在這個程式中我們有兩個角色,分別把它命名為catA以及catB,假設牠們的對話是分別各講一句,那麼需要兩個清單用來儲存要講的句子內容,分別把它們放在conversationA以及conversationB中,還要設計兩個指標變數(catAindex以及catBindex),分別指向兩個清單目前要講話的資料項目,如下所示:
在程式一開始執行的時候,要做的事就是把所有要對話的內容一句一句地分別放在兩個清單中,同時指標也別忘了要設定為1(因為清單的第一個項目是1),如下所示:
我們的程式是以點擊左邊的那隻貓咪(catA)開始進行會話,因此在貓咪catA的角色被點擊時,就要開始對話的內容,程式設計如下:
在程式中我們透過一個重複迴圈來進行對話,而重複的次數由conversationA的項目數來決定。每次當catA說出一句話時,就會廣播叫catB也說話,而且會等待3秒鐘讓catB把話說完,接著再把catAindex加1,以便接下來說下一句話。對於貓咪catB來說,它是被動地等待來自於catA的廣播訊息,收到之後就開始說話,如下:
如上述的程式積木可以看出來,貓咪catB要說哪一句話是由catBindex的內容來決定的,因此每次說完一句話之後,就要記得把catBindex的內容加1,才不會一直講到同樣的話。以下是程式的執行結果: