實現各種效果和功能的按鈕,讀這篇文章就夠了

語言: CN / TW / HK

按鈕是一個在遊戲中非常常用的組件,包含各種各樣的形態和功能,今天就在這篇文章裏彙總一下擁有各種不同點擊效果的按鈕,以及一些具有不同觸發條件的按鈕的實現方法。

在遊戲設計中有一個名詞叫“反饋”,大體就是指當玩家在進行遊戲時,遊戲所給予玩家的一些東西,比如常見的在點擊按鈕時,按鈕會變換顏色,或進行縮放,或播放音效等等。總之,不論玩家在遊戲中進行任何的操作,遊戲都應該給予玩家一個合理的反饋。讓玩家能夠明白他的操作所獲得的結果是什麼。

一個擁有着合理反饋的遊戲一定也伴隨着良好的用户體驗。我們經常會在遊戲中點擊各種各樣的按鈕,所以,對於一個按鈕來説,點擊後有反饋是很重要的。

首先,我們利用小遊戲開發工具提供的各種行為,來實現幾個擁有不同動勢的按鈕。

抖動的按鈕

我們使用一個容器來代表一個按鈕,容器中包含兩部分內容,一個是按鈕顯示的文字,一個是按鈕的圖片。

選中“抖動按鈕”容器,為其增加一個“抖動”的行為。

設置一下抖動行為的參數。

最後,為抖動按鈕容器增加按鈕點擊的邏輯。

非常的簡單,當按鈕點擊時,我們讓其抖動一下即可。

這樣一個點擊時觸發抖動的按鈕就做好啦!

彈出的按鈕

接下來,我們製作一個彈出按鈕,與抖動按鈕一樣,我們也為彈出按鈕新建一個容器,然後為其添加一個“彈出”行為。

設置一下彈出行為的屬性。

最後,為彈出按鈕容器增加按鈕點擊邏輯。

一個有彈出效果的按鈕就完成啦!

翻轉的按鈕

同樣的創建一個“翻轉按鈕”的容器,為其增加一個“翻轉”行為。

調整翻轉行為的屬性。

增加翻轉邏輯積木。

一個點擊可以翻轉的按鈕就出來啦!

旋轉的按鈕

創建一個“旋轉按鈕”的容器,為其增加一個“旋轉”行為。

調整旋轉行為的屬性。

增加旋轉邏輯積木。

這裏的旋轉積木仍然使用了“翻轉”來命名,這裏大概是工具開發者的疏忽吧!

預覽一下可以旋轉的按鈕。旋轉效果比較適合正方形或者圓形的按鈕。

上述就是我們可以直接利用工具提供的“行為”實現的不同按鈕點擊的效果了。可以看到每個行為中都配有不同的參數,大家可以通過調整參數,來實現自己想要的行為效果。

接下來我們介紹一下如何利用“會動的按鈕”來吸引玩家的注意力。

在一個頁面中,如果你想讓用户額外的關注某一部分,通常有三種不同的方法。第一種是通過佈局和佔用面積,讓需要關注的那個部分儘可能的在屏幕上方(打開任何的一個頁面,人們總是習慣從上往下看),佔用面積儘可能的大。另一個方式是通過顏色的搭配,來重點突出某一區域的顏色,來引起重點關注。除此之外,還有一個方法就是讓需要關注的地方“動起來”。想象一下在一個靜態的頁面中,如果只有一個按鈕在跳動,那麼你是很難不注意到它的。

下面我們就實現幾個擁有不同的“動起來”的效果的按鈕,並且介紹一下它們的用途。

不停縮放的按鈕

首先,創建一個按鈕容器,然後為其增加如下的邏輯。

預覽一下按鈕的效果。

這種按鈕比較適合用於遊戲中的復活場景,點擊按鈕進行復活,類似於心臟的起搏,來引導玩家進行復活操作。

精緻1010中的復活按鈕,就使用了這種效果,另外搭配上了復活的倒計時,可以很好的引導玩家進行復活操作。

另外,在遊戲結束後,如果玩家刷新了自己的最高分,同樣的也讓“分享”按鈕動起來,讓玩家注意到,這樣更有可能產生分享操作。

上下浮動的提示按鈕

同樣的,先創建按鈕容器,然後增加如下的邏輯。

預覽看一下效果。

這裏我使用的是上下的浮動,大家可以根據需要去實現各個方向上的浮動效果。

這種效果比較適合遊戲中的需要提示地方,在新手教程中會經常用到,來吿訴玩家點擊這裏或者是點那裏。

在精緻1010中,我將這種效果用在了提示玩家使用道具上。可以看到同時也是搭配了倒計時一起使用,給予玩家足夠的反應和判斷時間。

另外,我們上方講過的利用四種不同的行為實現的按鈕效果,同樣也可以用於實現各種“動起來”的按鈕效果,比如説可以隔一段時間旋轉一下,翻轉一下或者縮放一下等等,具體的實現邏輯都類似,大家可以根據自己遊戲的實際情況,酌情選擇不同的按鈕效果。

最後,我們來講一下幾個具有不同觸發條件的按鈕的實現方式。

當前工具已經給我們提供了 5 種不同的觸發條件,在此就不再贅述。

長按觸發的按鈕

首先,我們實現一下長按按鈕觸發的功能,例如長按按鈕 1 秒鐘之後才進行觸發。

先創建一個按鈕,然後為其設置兩個局部變量。

“觸發時間”用於控制按住按鈕後多長時間後觸發,“開始時間”用於記錄當開始點擊按鈕那一刻的時間。

接着,看一下按鈕的實現邏輯。

這裏有兩塊積木需要重點解釋一下。

全局計時器:從遊戲開始時,這個計時器就開始記錄遊戲的時間,我們可以通過它來獲取到遊戲一共進行了多少時間,它的單位是以秒計的。

停止當前精靈的其他事件:這個積木塊的作用是可以強行的終止一個事件的運行。例如我們的按下事件正在等待觸發時間,此時如果調用“停止事件”積木塊,就可以強行的終止按下事件中的邏輯,也就是説我們的按下事件不會再繼續執行等待,也不會最終觸發。

瞭解了這兩塊積木,遊戲邏輯就比較好理解了,當按下時,先記錄開始時間,然後去不停的判斷當前度過的時間是否超過“觸發時間”,超過的話,則執行觸發邏輯(這裏將按鈕變紅當作觸發)。如果在等待期間鬆手了,那麼就強行終止按下的邏輯,按鈕也就沒有機會被觸發了。

預覽,看一下長按按鈕的效果。

長按按鈕 1 秒鐘後,按鈕變紅。

按住後以一定時間間隔觸發的按鈕

接下來,我們實現一下按住後以一定的時間間隔觸發的按鈕。

首先還是創建兩個需要使用的局部變量。

“開始時間”用於記錄每次循環開始的時間,“間隔時間”用於設置觸發的間隔。

接着看一下具體的邏輯。

邏輯與長按觸發類似,我們通過設置數字的增加來表示邏輯的觸發。

點擊預覽看一下效果。

按住按鈕沒間隔 0.2 秒觸發一次。

在射擊遊戲中通常不同的武器會有不同的射擊速度,我們可以通過武器的射擊速度來設置觸發的間隔時間,實現不同的武器擁有不同射速的功能。

不知道你發現了沒有,不論是“長按觸發”還是“長按間隔觸發”,我都使用的“按下”和“放開”事件,而沒有使用“按住”事件,這是為什麼呢?留一點兒小疑問,你可以去嘗試一下能不能利用“按住”事件實現同樣的功能。

按住後可拖動的按鈕

最後,我們來實現一個可以按住拖動的按鈕。首先創建一個變量。用於記錄當前按鈕是否被按住。

然後,實現一下邏輯。

邏輯非常的簡單,“被按住”變量用於標識當前是否被按住,如果被按住的話,我們就將按鈕的位置設置到手指的位置。

預覽一下效果。

在拖拽的實現中我仍然沒有使用“按住”事件,其實是可以通過“按住”事件來設置按鈕的位置的。

你可以嘗試一下在“按住”事件中設置位置,然後預覽遊戲,按住按鈕進行快速的拖動,試過之後就能明白為什麼不在“按住”事件中處理邏輯了。

總結一下, 在這篇文章中我們講述了各種各樣的按鈕。我們可以利用工具提供的各種行為來快速的實現不同的按鈕點擊效果, 也可以通過“會動的按鈕”來引導玩家去關注界面中的某些部分。最後,我們講了一下在不同條件下觸發的一些按鈕的實現方式。

希望這篇文章可以幫助你瞭解到各種各樣的按鈕以及其應用的場景和實現方法。你可以根據自己遊戲的實際情況以及自己想要達到的目的來選擇不同的按鈕進行使用。