天長地久有時盡,此恨綿綿無絕期

這叫「天長地久有時盡,此恨綿綿無絕期」,所以!要做大遊戲的同學不要再用『重複無限次』了

要做大遊戲的同學不要再用『重複無限次』了

為什麼這麼說?先說『重複無限次』,它只會在執行到『停止( )』積木或紅點被按下時才會停止,但要停止一個重複無限的迴圈,一定是別的程式積木來停止它,或者在這個重複無限迴圈中有個『如果<>那麼』的判斷,成立了就停止。對~這不就是『重複直到』嗎?

再說『重複直到』,它在離開迴圈之後還可以幾繼續執行下面的程式,而『重複無限』下面是平的不能再接其他積木。也就是說,如果要在跳出迴圈之後,繼續做一些事情,那就要另外寫一段程式積木,這樣程式積木串會變多變亂,也就是「可讀性」變差。

做大遊戲的時候,通常會有「標題」、「遊戲介紹」、「第一關」、「第二關」、「遊戲失敗畫面」及「遊戲破關畫面」等,要怎麼樣讓程式的流程控制變的有條理,傑夫老師都會介紹"狀態機 state machine"的觀念,對學生來說就是利用一個變數來紀錄現在進行到第幾「關」,然而這個「關」是包含前面提的標題、介紹及成功失敗畫面的。所以當關卡1中的某一個角色如果要重複做什麼事,那就像是下面的例子:

發出「第一關開始」這個廣播時,「關卡」變數已被設為 1

只要「關卡」這個變數大於 1,就表示進入第二關或是結束 (關卡=9),那麼這個角色也就不會再旋轉,而且也會隱藏起來。既不需要多加『停止[這個程式]』,也不需去收什麼廣播,進入下一關就沒這個角色的事了。至於什麼時候停止就交給負責管理「關卡」這個變數的角色,換句話說,大家都聽這個角色的指揮做事,就不會出問題。

那為什麼是這樣的標題呢?因為,『重複無限次』積木的英文是 "forever" 那中文不就是「天長地久」~但被換成了重複直到就變成了「有時盡」了~可是重複直到的判斷式中又不放東西,那又變回了沒有停止的重複迴圈,不就變成「無絕期」了嗎~迴圈裡面再放個『恨』就變成了「此恨綿綿」了~

不要太稱讚傑夫老師的中文,老師唸書時中文都是全班倒數的,寫這篇希望沒讓國文老師氣死。

所以,如果你習慣用『重複無限』,當你遊戲做大的時候,請改用『重複直到』,直到什麼條件還不確定沒關係,可以先放著等到你的關卡或是狀態清楚了,再把停止條件加進去就可以了。

下面的影片是最近在Youtube上看到的,說明了什麼是大遊戲?那又該注意什麼?但沒有提到狀態機。英文好的可以看看。Bye now~