你正在玩《水果忍者》季惩,一個(gè)西瓜飛了上來(lái)录粱。
如果你有看過(guò)本系列上一篇文章《游戲和動(dòng)畫有什么不同?》画拾,你就會(huì)知道啥繁,你的iPhone這時(shí)正在努力地把這個(gè)西瓜從一個(gè)狀態(tài)變到另一個(gè)狀態(tài)。
如果你沒(méi)看過(guò)或者忘記了青抛,沒(méi)關(guān)系旗闽,我們先簡(jiǎn)單回顧一下什么叫狀態(tài)。
所謂的狀態(tài)就是游戲里的參數(shù)蜜另,例如剛才這位西瓜适室,它的位置就是一個(gè)參數(shù)。狀態(tài)會(huì)隨著時(shí)間變化:一開始這個(gè)西瓜的位置在屏幕的左下角举瑰,過(guò)一會(huì)兒它的位置在屏幕正上方捣辆,再過(guò)一會(huì)兒它又移到屏幕右下角去了。西瓜的位置在變此迅,等于說(shuō)游戲的狀態(tài)在變汽畴,每變化到一個(gè)新狀態(tài),游戲都會(huì)根據(jù)這個(gè)狀態(tài)下的參數(shù)耸序,把西瓜重新畫到屏幕上忍些,然后,iPhone繼續(xù)計(jì)算出下一個(gè)狀態(tài)的參數(shù)坎怪,如此循環(huán)不息罢坝,游戲就一直運(yùn)行下去。
ok芋忿,上一篇文章其實(shí)就講了這么個(gè)事炸客,現(xiàn)在,我們討論下西瓜是怎么被切掉的戈钢。
如上所述痹仙,當(dāng)西瓜飛上來(lái)時(shí),游戲正在從一個(gè)狀態(tài)跳到下一個(gè)狀態(tài)殉了,這時(shí)开仰, 你的iPhone突然感到自己被人劃了一下,敏感的它會(huì)立刻把“擦薪铜,我被劃了一下”這件事通知游戲众弓。
具體怎么通知呢?它把這件事插入到當(dāng)前狀態(tài)之后隔箍。
本來(lái)如果沒(méi)這事谓娃,游戲畫完當(dāng)前這一幀后就會(huì)跳到下一狀態(tài),現(xiàn)在出了這事蜒滩,它畫完當(dāng)前幀后就沒(méi)法立刻跳到下個(gè)狀態(tài)滨达,它得先處理這個(gè)事奶稠,等處理完了,再跳到下一個(gè)狀態(tài)捡遍。所以我們說(shuō)锌订,“我被劃了一下”這件事被插入到兩個(gè)狀態(tài)之間。
那么画株,一個(gè)很自然的問(wèn)題是:游戲怎么處理這件事辆飘?
事實(shí)上,游戲?qū)@件事的處理谓传,本質(zhì)上還是在改變西瓜的參數(shù)蜈项。我們假設(shè)西瓜除了“位置”以外,還有一個(gè)叫做“爆否”的參數(shù)良拼,在處理這個(gè)事件的時(shí)候战得,游戲把這個(gè)參數(shù)由原來(lái)的0(表示沒(méi)爆)改寫成1(表示爆啦)。改寫完后庸推,游戲就把這事忘記了,繼續(xù)跳到下一個(gè)狀態(tài)浇冰。在新的狀態(tài)里贬媒,游戲照例會(huì)根據(jù)參數(shù)來(lái)畫西瓜。這時(shí)肘习,它猛然發(fā)現(xiàn)“爆否”這個(gè)參數(shù)居然不等于0际乘,而是等于1!天哪漂佩!這意味著這個(gè)西瓜爆了脖含!盡管對(duì)這個(gè)西瓜滿懷不舍,游戲還是不得不把西瓜爆掉的畫面畫出來(lái)投蝉,因?yàn)楫嬅媸怯蔂顟B(tài)說(shuō)了算的养葵。所以西瓜就是這么被切掉的。
導(dǎo)致西瓜被切掉的瘩缆,是“iPhone被劃了一下”這件事关拒,這在游戲開發(fā)里叫用戶事件,從游戲者的角度來(lái)看庸娱,用戶事件則是由輸入設(shè)備觸發(fā)的着绊。
隨著游戲設(shè)備越來(lái)越豐富,輸入方式也越來(lái)越多:從紅白機(jī)的手柄熟尉,電腦的鼠標(biāo)鍵盤归露,到移動(dòng)設(shè)備的觸控和重力感應(yīng),再到狂拽炫酷的體感設(shè)備斤儿,不一而足剧包。想象一下聲控的Flappy Bird吧腮考,喊一聲跳一下,是不是歡樂(lè)玄捕。
電影《阿凡達(dá)》里踩蔚,主角自己無(wú)法站起來(lái),但他能通過(guò)意識(shí)輸入來(lái)控制Avatar枚粘,就像在玩一款游戲馅闽。Avatar這個(gè)詞來(lái)自印度教,有神靈下凡馍迄、附體的意思福也。所以當(dāng)你點(diǎn)開《神廟逃亡》,用你牛逼閃閃的操作控制著主角左蹦右跳時(shí)攀圈,背后的魔鬼肯定吐槽:神人附體啊臥槽暴凑。
在《游戲和動(dòng)畫有什么不同?》里赘来,我們說(shuō)游戲本質(zhì)上是狀態(tài)機(jī)现喳,現(xiàn)在我們可以說(shuō),它是一個(gè)可以和人互動(dòng)的狀態(tài)機(jī)犬辰。它接收來(lái)自游戲者的信息嗦篱, 改變自身狀態(tài),通過(guò)畫面或聲音把新的狀態(tài)告訴游戲者幌缝,游戲者又根據(jù)這些畫面輸入新的信息灸促,如此往復(fù),造就了游戲里的另一個(gè)循環(huán)涵卵。