修改游戲控制方式經驗 開發(fā)牛人分享
《Onslaught!》移植到iOS平臺的過程中遇到了不少困難,我們認為最難逾越的障礙莫過于獲取合適的幀速率。這一點以及包括音效處理在內的問題,可以通過Game Closure的SDK獲得解決,但還是存在其他不易攻克的難關,其中之一就是最基本的用戶輸入方式。
Chorome和OSX版本的《Onslaught! Arena》采用的是鼠標和鍵盤輸入控制方式,玩家可以使用方向鍵進行導航,并用鼠標定位和發(fā)動攻擊。這種輸入方式顯然無法與觸摸屏設備兼容,為了讓手機版游戲體驗更為流暢,我們嘗試了不同的控制方式,最終為用戶提供了兩種選擇:
control scheme(from gamasutra)
修改游戲控制方式經驗1.點觸控制
我們將這一選項命名為“初級”選項,要求玩家使用一個手指控制游戲。這是一種流線型的AI控制方式,玩家點觸屏幕就可以引導游戲角色行動方向,然后該角色就會根據就近原則自動攻擊敵人或射彈。
修改游戲控制方式經驗2.虛擬搖桿
這是一種相對“更高級”的控制方式,要求玩家使用兩個手指控制游戲。這個機制為玩家提供了控制角色移動地點、方向、攻擊時間和角度等全套的操作功能。
我們經過謹慎考慮和反復論證才制定出這兩個決策。首先,我們了解虛擬搖桿操作方式本身就存在一些問題,所以我們參考了許多最佳案例,研究了一些熱門射擊游戲(注:包括《迷你戈爾》和《幾何戰(zhàn)爭》)。通過這些調查,我們發(fā)現了靜態(tài)和動態(tài)這兩種虛擬搖桿控制方式。
動態(tài)虛擬搖桿(《幾何戰(zhàn)爭》所使用的控制方式)僅在玩家手指碰觸到屏幕界面時,才會顯示定位點。角色將根據這些定位點進行移動,其優(yōu)點在于可為玩家創(chuàng)造舒適體驗,如果他們的手指靠近屏幕邊緣,那也不會影響游戲操作。它支持那些不習慣或暫時無法將手指放在合適位置的玩家進行無障礙的游戲操作,但這種方式的劣勢在于缺乏首要的可見指示,所以可能不容易讓玩家理解如何與游戲進行互動,或者手指應該點觸在屏幕的哪個位置。
靜態(tài)虛擬搖桿的主要特點是,其定位點會一直顯示于屏幕界面。我們決定采用這種方法,因為它可以提供良好的初次體驗,便于新玩家看到手指點觸的位置,除此之外,它還能避免怪物或陷阱隱藏在玩家手指之下(玩家看不到這些危險),從而導致角色死亡的現象。
技術解決方案
我們提倡代碼重用,希望可以將游戲代碼輕松植入任何一個項目,所以就創(chuàng)建了一個搖桿類,其設置方式如下:
var stick = new Stick(40); // 40 is the size of the input
document.addEventListener(“mousemove”, function (e) {
e.preventDefault();
stick.setInputXY(e.pageX, e.pageY);
});
它很容易用以下代碼在畫布元素中實現:
context.beginPath();
context.arc(stick.limit.x,stick.limit.y,limitSize,0,(Math.PI * 2),true);
context.stroke();