如何製作解密遊戲中只能走一次的路徑

功能效果展示

 

運行環境

Win7,Win8,Win10

Reworld版本 體驗版

vc_redist.x64 運行環境

 

針對零基礎讀者的補充

下載安裝 Reworld對應版本

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

Reworld創作者之家論壇:http://bbs.reworlder.com

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

下載安裝 vc_redist.x64.rar運行環境

redist.x64下載鏈接

 

思路分析

想要製作一個只能走一次的路徑,首先我們需要創建基礎的路塊,並且利用整數值來判斷路塊被踩中的次數,當路塊被踩中一次後修改路塊的顏色來區分,當路塊被踩中踩中兩次後,我們通過修改路塊的座標的方法讓路塊消失。這樣我們就製作完成了一個只有走一次的路徑了。

 

功能搭建

一、路徑搭建過程

1.在工作區內創建一個文件夾,重命名爲踩空塊,在文件夾下創建一個零件,重命名爲地塊,修改零件的屬性。如下圖所示:

2.在零件下創建一個整數值,重命名爲踩中次數。如下圖所示:

 

二、核心功能搭建過程

在踩空塊文件夾下創建一個新的文件夾,重命名爲腳本,在腳本文件夾下創建一個服務器腳本。如下圖所示:

編寫服務器腳本如下:

local CubeGroup = {}
local CubeOType = script.Parent.Parent.地塊;
local Count = 1;
local x = 1;
local z = 1;
local y = CubeOType.Position.y;
local Color1 = Vector3.New(117,49,49);
local Color2 = Vector3.New(19,191,191);
 
local function Touch (t)
    if t.踩中次數.Value ==0 then -- 一次沒踩
         t.踩中次數.Value = 1;
         t.Color = Color1;
    elseif t.踩中次數.Value ==1 then
         t.Transparency = 0;
         t.CanCollide = false;
         t.踩中次數.Value = 2;
    end
end
local function Init()
    CubeOType.Color = Color2;
    CubeOType.TriggerEnter:Connect(function(p)
            if p:IsClass("Avatar") then
                Touch (CubeOType);
            end
    end)
    while(Count < 50) do
       local Temp = CubeOType:Clone();
       Temp.Parent = script.Parent.Parent;
       Temp.Color = Color2;
       Temp.Position = Vector3.New(CubeOType.Position.x+x,CubeOType.Position.y,CubeOType.Position.z+z);
       Temp.TriggerEnter:Connect(function(p)
            if p:IsClass("Avatar") then
                print(1);
                Touch (Temp);
            end
       end)
 
         x = x+1;
        if Count == 20 then
         x = 1;
         z = 2;
        elseif Count == 40 then
         x = 1;
         z = 3;
        end
        Count = Count+1;
    end
end
 
Init();

 

補充說明

1.什麼是工作區?

工作區中的對象是會被可視化顯示到3D場景中的,並且只有在工作區中的對象纔會發生物理交互。

 

2.什麼是服務器腳本?

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

 

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

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

 

好了,接下來我們開始遊戲,就會生成一個路徑,當我們第一次踩上去的時候,路徑的顏色會改變,當我們第二次踩上去的時候,路徑就會消失了。如果有什麼問題或者有更好的實現方式,大家可以在下方積極交流討論,我們也會參與進來和大家一起分享經驗,期望能和大家共同進步~~

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