如何讓零件表面的貼花動起來

功能效果展示

 

運行環境

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.在零件下添加一個X軸的速度。如下圖所示:

 

二、貼花搭建過程

在零件創建一個貼花,導入一個下載好的箭頭貼圖,將貼花方式改爲平鋪,修改X軸的平鋪率。如下圖所示:

2.在零件下創建一個服務器腳本。如下圖所示:

編寫服務器腳本如下:

--[[
 1.獲取自身零件或自己創建零件
 2.定義局部變量 local x 
 3.創建更改貼圖世界座標函數
 4.創建貼圖移動函數
 5.使用GameRun.Update事件調用3和4
 注:控制運動時長方法(按幀計算)
   1.將步驟3創建的函數【change()函數】和代碼末尾調用此函數的語句刪除
   2.步驟4創建的函數【move()函數】每幀運行一次,       while (move()函數中的x == local x) 貼圖停止運動
 ]]--
 local part = script.Parent.貼花     -- 獲取零件貼花
 local x = 1               -- 不能與更改貼圖世界座標函數中if判斷語句中的x值相等
 local function change()         -- 創建更改貼圖世界座標函數
 if(x <= -1) then            -- 判斷貼圖的世界座標是否等於當前座標
          x = 1          -- while(貼圖偏移量) == -1 貼圖停止運動         
                       -- 注:賦給x的值越接近if語句中x的值貼圖運動越快
 end
 end
 local function move()          -- 創建貼圖移動函數        
          x = x - 0.005     -- 貼圖偏移量 注:被減數值越小 貼圖運動越慢
          part.Offset = Vector2(-x,0) -- 官方API文檔中貼花(Decal)Offset()函數   
 end
 GameRun.Update:Connect(move)          -- 官方API文檔中游戲運行服務(GameRun)Update()函數
 GameRun.Update:Connect(change)

 

補充說明

1.什麼是工作區?

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

 

2.什麼是貼花?

爲零件表面的其中一個面添加自定義貼圖的對象。

 

3.什麼是服務器腳本?

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

 

好了,接下來我們開始遊戲,傳送帶上的箭頭貼圖就會隨着傳送帶一起移動啦。如果有什麼問題或者有更好的實現方式,大家可以在下方積極交流討論,我們也會參與進來和大家一起分享經驗,期望能和大家共同進步~~

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