前言:
新年願望之一,開發多人遊戲。
加上最近想到覺得不錯的點子,就決定叫他: Radar War ! (雷達戰)
展示影片:
(指令欄,解析功能還沒做,所以現在是純聊天室XD)
((UI正常滾動
目標玩法: 仿cmd風格,用指令操作的作戰遊戲。
之後會分職業,例如偵測兵視野很廣,但攻擊力弱,需要靠打聊天式指令告訴同隊的長砲兵狙擊座標等等
指令之後預計用之前做的
tag語言工具去分析,像是要射擊可以打" shoot(0,0)" 或許能讓使用者打for迴圈或設變數(?
以下是筆記:
Photon RPC不能傳送自訂類別,所以要把資料轉成byte[]。
方法來源。
其他的跟上一篇筆記差不多,但有個地方想更正:
上篇寫到:《
當下懷疑既然只有被打的A才會繼續執行扣血的動作,那為什麼還要透過RPC告訴大家? 原因是透過RPC更新所有玩家端的玩家A血量。意即:若場上有3個玩家,則就有3個玩家A的分身,透過RPC叫每個人電腦裡面的玩家A去執行扣血的動作。
》
有點講錯,因為實際執行起來:
假設一個房間有ID 1018(主機)、2022、3054這3個玩家連線,每個玩家電腦裡面都會有這三個玩家物件的分身。
當1018射2022,照上篇的程式碼,1018電腦裡的2022玩家物件會呼叫TakeDamage呼叫RPC的RPC_TakeDamage方法。
如果執行178行 的pv.isMine,則:
1018電腦的2022玩家物件 isMine=False
2022電腦的2022玩家物件 isMine=True
3054電腦的2022玩家物件 isMine=False
所以HP真正有被更新的只有2022電腦裡的2022物件。其餘兩個人電腦裡的2022玩家物件HP還是100。
2022 HP歸零會死亡也只是因為2022電腦裡的2022物件HP歸零,才呼叫方法告訴其他人他死了,叫大家殺死自己電腦裡的2022。