天天看點

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

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

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

一個擁有着合理回報的遊戲一定也伴随着良好的使用者體驗。我們經常會在遊戲中點選各種各樣的按鈕,是以,對于一個按鈕來說,點選後有回報是很重要的。

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

抖動的按鈕

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

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

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

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

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

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

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

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

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

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

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

彈出的按鈕

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

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

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

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

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

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

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

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

翻轉的按鈕

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

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

調整翻轉行為的屬性。

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

增加翻轉邏輯積木。

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

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

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

旋轉的按鈕

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

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

調整旋轉行為的屬性。

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

增加旋轉邏輯積木。

實作各種效果和功能的按鈕,讀這篇文章就夠了
這裡的旋轉積木仍然使用了“翻轉”來命名,這裡大概是工具開發者的疏忽吧!

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

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

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

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

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

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

不停縮放的按鈕

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

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

預覽一下按鈕的效果。

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

這種按鈕比較适合用于遊戲中的複活場景,點選按鈕進行複活,類似于心髒的起搏,來引導玩家進行複活操作。

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

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

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

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

上下浮動的提示按鈕

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

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

預覽看一下效果。

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

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

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

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

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

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

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

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

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

長按觸發的按鈕

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

接着看一下具體的邏輯。

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

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

點選預覽看一下效果。

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

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

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

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

按住後可拖動的按鈕

最後,我們來實作一個可以按住拖動的按鈕。首先建立一個變量。用于記錄目前按鈕是否被按住。

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

然後,實作一下邏輯。

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

邏輯非常的簡單,“被按住”變量用于辨別目前是否被按住,如果被按住的話,我們就将按鈕的位置設定到手指的位置。

預覽一下效果。

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

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

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

繼續閱讀