通過Reworld實現範圍檢測

運行環境

Win7,Win8,Win10 win64

Reworld版本 體驗版

 

針對零基礎讀者的補充

下載安裝 Reworld對應版本

Reworld官網鏈接:http://www.reworlder.com/

下載後安裝後註冊賬號打開空地圖

思路分析:

  扇形檢測爲了兩部分:首先是獲取起點和終點,這是一個基礎的方法,常用於檢測某些物體是否到達了與另外一個物體的距離,然後再通過遍歷達到尋找到此物體對此物體進行操作。

功能效果展示

零件搭建

一、搭建過程

1.在工作區創建一個零件

核心功能執行環境搭建

一、搭建過程

工作區裏創建一個服務器腳本


打開服務器腳本,填入以下代碼:

local part = WorkSpace.零件 -- 獲取零件

local function Update()

    local startPos = Vector3.New(part.Position.x - 2,part.Position.y - 2 ,part.Position.z - 2);     -- 獲取起始點

    local endPos = Vector3.New(part.Position.x + 2,part.Position.y + 2,part.Position.z + 2);     -- 獲取終點

    local interTable = WorkSpace:FindPartsInZone(startPos,endPos,nil,100);     --獲取範圍內所有的物體第四個參數是獲取數量

    for k,v in pairs(interTable) do        -- 遍歷整個周圍所有物體

        if v.ClassName == "Avatar" then

            print(tostring(v.PlayerId))      -- 輸出角色ID

        end

    end

end

GameRun.Update:Connect(Update)   -- 輸出角色ID

 

此時就完成以中心點爲基準的2*2的方形檢測

二、補充說明

1.什麼是服務器邏輯?

服務對象。 

此服務下的腳本會在服務器上運行,用於放置服務器端遊戲邏輯 。

不可創建。

不能用RWObject.Create()函數創建此對象。

不可刪除。 

不能用Destroy()函數刪除此對象。

不可複製。 

不能用Clone()函數複製此對象。

 

2.什麼是服務器腳本?

      只會在服務器運行的Lua腳本代碼,用於編寫服務器邏輯。

            

3.爲什麼要使用服務器腳本?

      基於衝刺功能適用於單人和多人等不同環境,所以採用通用的服務器腳本。

  • 服務器腳本與客戶端腳本不同,客戶端執行的操作只有本地客戶端,也就是玩家自己有效。而服務器執行的操作不僅針對單人有效,還針對與服務器相連的所有客戶端同步生效。
  • 在多人遊戲中,如果這個對象的變化是針對一個人的,必須在客戶端腳本進行編寫;如果這個對象的變化是針對所有人的,那就必須在服務器腳本進行編寫。
  • 對於只能在客戶端腳本修改的對象,如何讓服務器知曉變化結果是很重要的。這裏採用傳統遊戲的製作流程,也就是在客戶端進行修改,把修改後的結果通過與服務器通信的方式發送到服務器,再通過服務器進行邏輯運算,把執行結果再同步給所有客戶端。

 

好了,那麼物體的範圍檢測到這裏就完美實現了。

小夥伴們快去嘗試吧!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章