如何做一個超級馬里奧頂方塊的效果

功能效果展示

 

運行環境

Win7,Win8,Win10

Reworld版本 體驗版

vc_redist.x64 運行環境

 

針對零基礎讀者的補充

下載安裝 Reworld對應版本

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

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

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

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

 

思路分析

想要實現超級馬里奧頂方塊這樣的效果,當角色碰撞到方塊時,方塊四散開來,就需要利用TriggerEnter()碰撞事件API接口來觸發事件。爲了實現方塊四散開來的效果,我們可以用編輯器拼接的功能,先將方塊拼接在一起,當事件觸發時,解除拼接的約束。最後我們可以使用Destroy()刪除對象API接口實現方塊分散後隔一段時間自動消失的效果。(ReworldAPI

 

方塊的搭建

一、搭建過程

1.首先工作區創建四個方塊零件,修改每個方塊的名稱、尺寸和四種不同的顏色,如下圖:

 

2.再創建一個零件E,修改零件的尺寸,取消零件E的碰撞和重力,並且錨定零件E。

 

3.分別創建零件E與零件A,零件B,零件C,零件D的拼接關係。

image.png

 

二、補充說明

1.什麼是工作區?

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

服務對象。

不可創建。

不可複製。

不可刪除。

 

2.什麼是零件?

零件是一個物理對象,當零件在工作區WorkSpace中時,零件可以移動、變化外形體積、並與其他零件交互。零件是構建世界的基礎元件,幾乎所有物體都是用零件構建的,可以改變零件大小製作大底板,也可以零件合併、切割創建異形塊,也可以使用零件製作角色和工具。

 

3.什麼是拼接?

使被連接的物體保持固定的相對位置和朝向。

 

核心功能執行環境搭建

一、搭建過程

點擊工作區-零件E右邊加號按鈕創建服務器腳本,同時將零件E的零件透明度調整至0。

 

腳本創建好了,接下來就是去實現它的功能了,我把腳本功能放到下方的代碼中:

local 零件E = script.Parent
local 零件A = WorkSpace.零件A
local 零件B = WorkSpace.零件B
local 零件C = WorkSpace.零件C
local 零件D = WorkSpace.零件D
function means(who)------------------------------定義一個事件爲means
    if who:IsClass("Avatar") then
        零件E:DelAllJoint()-----------------------解除零件E拼接的約束
        零件A.UseGravity=true
        零件B.UseGravity=true
        零件C.UseGravity=true
        零件D.UseGravity=true
    零件A.Velocity = Vector3.New(-3,5,-3)---零件A向(-3,5,-3)方向運動
    零件B.Velocity = Vector3.New(3,5,-3)
    零件C.Velocity = Vector3.New(-3,5,3)
    零件D.Velocity = Vector3.New(3,5,3)
    end
    coroutine.start(function()
        coroutine.wait(0.5)---------------------------------0.5秒之後
        零件E:Destroy()--------------------------------------零件E刪除
        coroutine.wait(1.5)---------------------------------1.5秒之後
        零件A:Destroy()--------------------------------------零件A刪除
        零件B:Destroy()
        零件C:Destroy()  
        零件D:Destroy()
    end)
end
零件E.CollisionEnter:Connect(means)-------------------碰撞觸發事件means

有些時候將腳本複製到編輯器中可能會出現問題,可以用TXT文檔轉換一下,或者刪掉重新創建一個腳本試試,另外有些時候會出現複製不上的情況,這個時候可以關閉腳本編輯重新打開就可以了。

 

二、補充說明

1.什麼是服務器腳本?

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

 

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

基於敵人跟隨攻擊功能用於單人和多人等不同環境,所以採用通用的服務器腳本。

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

 

好了,接下來我們點擊開始遊戲就可以了,當你控制玩家跳躍碰到方塊時,就會實現像馬里奧頂方塊一樣的效果,小夥伴們快去嘗試吧!

如果有什麼問題或者有更好的實現方式,大家可以在下方積極交流討論,我們也會參與進來和大家一起分享經驗,期望能和大家共同進步~~

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