分享

【Scratch 教學】雲端變數 - 2

上一篇傑夫老師做了基本介紹,這一篇就來看看雲端變數可以怎麼應用。
既然可以及時更新資料,也就是說可以把一方的操作傳到另一方,並在另一方顯示出來。說明白一點,就是在其中一邊控制移動角色,在另一邊這個角色就被遠端操控而移動。
看看下面的例子,P1-X 與 P1-Y 都是雲端變數,分別紀錄著「鼠標的x」與「鼠標的y」,貓咪再一直定位到 P1-X, P1-Y 的位置。這樣能不能達到前面所說的效果呢?
Scratch Scratch教學 雲端變數 傑夫老師

這樣的程式,如果有兩個玩家同時執行,會有問題

這不會達到想要的效果,因為有兩個玩家同時點擊綠旗開始執行,兩個玩家同時都在更新 P1-X, P1-Y 這兩個雲端變數,最後這隻貓咪就只會定位在自己滑鼠的位置,忽略來自雲端的更新。
所以,必須分辨誰是主控端、誰是客戶端 (client) ,作法就是要加入一個變數『Player』來分別,程式改成下面這樣。
Scratch Scratch教學 雲端變數 傑夫老師

角色要分辨主客端

這樣,按下 "1" 鍵的人就可以操控貓咪了。執行結果就像下面這樣。
Scratch Scratch教學 雲端變數 傑夫老師

這樣就能做到遠端操控

如果再加一個角色,並把程式稍加修改增加 P2-X 與 P2-Y 兩個雲端變數紀錄第二個角色的座標,那麼就可以有兩個玩家同時上線了。
Scratch Scratch教學 雲端變數 傑夫老師

第二個玩家的程式

下面就是加入第二個角色的執行結果,注意到在點擊綠旗前 P2-X 與 P2-Y 的值已經在改變,表示第二個玩家已經在操控。點擊綠旗後,貓咪跟著滑鼠移動,但另一個角色 Gobo 是被遠端玩家所操弄著的。
Scratch Scratch教學 雲端變數 傑夫老師

多人線上遊戲的雛形

好了~這就是利用雲端變數做的多人線上遊戲的雛形,說穿了其實沒什麼高深的技巧。
但仔細看前兩張圖,貓咪在客戶端的移動好像有點 lag (延遲)!這能解決嗎?就讓傑夫老師在下一篇再來說明。Bye now~
分類:學習

傑夫(Jeff)老師喜歡研究積木型(block)程式,如:Scratch, App Inventor, micor:bit,除了有一般中小學生的課程,也不定期的會開設Scratch師資培訓班,並且是「Scratch的100個技巧」的共同作者。

評論
上一篇
  • 更多文章
    載入中... 沒有更多了