最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

關(guān)于角色攻擊的解決

2023-02-22 18:44 作者:WonderFF1  | 我要投稿

????????

????????角色攻擊功能一直是RPG游戲的核心玩法,首先是攻擊連擊次數(shù)的設(shè)計(jì),我的角色可以使用三次連擊,但是為了實(shí)現(xiàn)“連續(xù)”攻擊的效果,需要玩家在固定的時(shí)間內(nèi)完成這三次攻擊,才能使得連擊能夠流暢。我需要為攻擊設(shè)置幾個(gè)基本參數(shù),分別是連擊完成的時(shí)間(Interval)、連擊次數(shù)(comboStep)、是否正在攻擊(isAttack)、是否正在播放攻擊動(dòng)畫(huà)(isPlaying)、攻擊類(lèi)型(attackType)、附加速度(attackSpeed)。Interval參數(shù)就是這三次連擊的最長(zhǎng)完成時(shí)間,如果不能在這個(gè)時(shí)間內(nèi)完成三連擊,則會(huì)從Attack1重新開(kāi)始;comboStep參數(shù)是記錄攻擊次數(shù),區(qū)分Attack1、23,用以播放不同的動(dòng)畫(huà)和產(chǎn)生不同的效果;isAttack參數(shù)是檢測(cè)玩家攻擊的參數(shù),為真則表示正在攻擊,玩家連擊需要在上次攻擊的后半程再按攻擊,如果在前半程就能攻擊則會(huì)打斷攻擊,如果在動(dòng)畫(huà)播放末尾才能攻擊則會(huì)使得連擊不流暢,這也是常說(shuō)的預(yù)輸入機(jī)制;isPlaying參數(shù)是檢測(cè)動(dòng)畫(huà)是否正在播放的參數(shù),為真則表示動(dòng)畫(huà)正在播放,因?yàn)橥婕夜魰?huì)有一個(gè)向前的附加速度且攻擊時(shí)不能隨意移動(dòng),所以設(shè)置這個(gè)參數(shù)是為了使得攻擊動(dòng)畫(huà)仍在播放時(shí),雖然能預(yù)輸入下一次攻擊,但是不能隨意移動(dòng);attackType參數(shù)記錄了攻擊類(lèi)型,有普通攻擊和跳躍攻擊;attackSpeed參數(shù)是攻擊的附加速度,玩家的攻擊會(huì)擊退敵人,為了防止連擊無(wú)法連續(xù)命中,需要附加一個(gè)向前的速度。

以下是具體代碼和攻擊流程。

?一次完整攻擊的示意圖

void Update()

??? {

??????? if (isAttack)

??????????? isPlaying = true;

??????? Attack();

??? }

void Attack()//攻擊

??? {

??????? if (Input.GetButtonDown("Attack") && !isAttack)

??????? {

??????????? isPlaying = true;

??????????? isAttack = true;

??????????? attackType = "normal";

??????????? comboStep++;

??????????? if (comboStep > 3)

??????????????? comboStep = 1;

???????? ???timer = interval;

??????????? anim.SetTrigger("normalAttack");

??????????? anim.SetInteger("comboStep", comboStep);

??????? }

??????? else if (Input.GetButtonDown("Attack"))

??????? {

??????????? isPlaying = true;

??????????? isAttack = true;

??????????? attackType = "air";

??????????? anim.SetTrigger("airAttack");

??????????? timer = 0;

??????? }

??????? if (timer != 0)

??????? {

??????????? timer -= Time.deltaTime;

??????????? if (timer <= 0)

??????????? {

??????????????? timer = 0;

???????? ???????comboStep = 0;

??????????? }

??????? }

??? }

?

??? public void AttackOver()//攻擊結(jié)束

??? {

??????? isAttack = false;

??? }

?

??? public void AnimPlayingOver()//動(dòng)畫(huà)結(jié)束

??? {

??????? isPlaying = false;

??? }

}

????????這樣通過(guò)代碼和動(dòng)畫(huà)系統(tǒng)的配合,玩家就能實(shí)現(xiàn)較為流暢的連擊了。本人做到這一步已經(jīng)基本解決攻擊手感問(wèn)題,在此僅僅提供一種基本方案,故沒(méi)有進(jìn)行下一步研究改進(jìn)。


關(guān)于角色攻擊的解決的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
潢川县| 察哈| 河池市| 香河县| 郎溪县| 佛冈县| 双江| 弥渡县| 石柱| 华坪县| 肇源县| 措美县| 鹿泉市| 葵青区| 五常市| 乐平市| 德钦县| 满城县| 白沙| 平阳县| 凤庆县| 明光市| 读书| 南岸区| 新营市| 铜鼓县| 嵊泗县| 原阳县| 工布江达县| 清镇市| 平顶山市| 宜宾县| 皮山县| 安泽县| 古丈县| 宜都市| 安溪县| 韶关市| 安远县| 镇雄县| 龙山县|