逗游網(wǎng):值得大家信賴的游戲下載站!
發(fā)布時(shí)間:2014-02-18 來源:互聯(lián)網(wǎng)
例:如何做一個(gè)讓玩家移動速度加快的飾品?
大體思路就是讀取玩家按下的方向鍵,并相應(yīng)地適當(dāng)改變玩家速度,如下:
if (p.controlLeft)
{
if (p.velocity.X > 0) p.velocity.X *= 0.95f;
else if (p.velocity.X > -30) p.velocity.X -= p.velocity.Y == 0 ? 0.5f : 1f;
}
if (p.controlRight)
{
if (p.velocity.X < 0) p.velocity.X *= 0.95f;
else if (p.velocity.X < 30) p.velocity.X += p.velocity.Y == 0 ? 0.5f : 1f;
}
if (p.controlUp)
{
p.controlJump = true;
if (p.velocity.Y > 0) p.velocity.Y *= 0.95f;
else if (p.velocity.Y > -30) p.velocity.Y -= 1f;
}
以上的作用是:玩家控制向左時(shí)就增加向左速度,玩家控制向右就增加向右速度;將控制向上和控制跳躍綁定,控制向上就增加向上的速度
2.讀取鼠標(biāo)狀態(tài)
游戲中自帶顯示鼠標(biāo)狀態(tài)的邏輯值,Main.mouseLeft和Main.mouseRight分別表示鼠標(biāo)左鍵和右鍵是否按下;相應(yīng)的還有Main.mouseLeftRelease和Main.mouseRightRelease表示左右鍵是否未按下,可以理解為兩者相反
思考題:如何制作按下鼠標(biāo)右鍵就回血的飾品?運(yùn)用前面的教程,題目較為簡單,這里就不寫示例了
3.讀取鍵盤狀態(tài)
Main.keyState.IsKeyDown(Microsoft.Xna.Framework.Input.Keys.【按鍵代號】)
這個(gè)語句用來讀取鍵盤狀態(tài),如果當(dāng)前按下了指定【按鍵代號】的鍵就等于真;反之,假。一般來說,提取字母鍵的狀態(tài)只需把按鍵代號寫成相應(yīng)大寫字母;F1-F12也是直接寫大寫F加數(shù)字就可以了
【獵奇+篇:輔助火力】
提示:這一篇將會有大量的英語和數(shù)學(xué)成分,不過LZ相信你們會比上學(xué)期英語倒10的LZ看得更明白的~
當(dāng)然最開始還是喜聞樂見地分條講解代碼:
1.Projectile.NewProjectile(坐標(biāo)X,坐標(biāo)Y,速度X,速度Y,種類,傷害,擊退,所屬玩家,ai0,ai1)
字面意思,用來在世界里生成一個(gè)proj,中心對準(zhǔn)給定的坐標(biāo),速度為給定速度,種類、傷害、擊退等等都是可以指定的,所屬玩家一般寫Main.myPlayer或者p.whoAmI(當(dāng)自己被編號為p時(shí))至于那個(gè)ai0和ai1,目前還不需要它們,在寫的時(shí)候可以純粹省略這兩項(xiàng),或者填0
這句話可以說是附加火力的核心,沒有它一切都是免談,想象一下,對準(zhǔn)怪物按下鼠標(biāo),想讓火球飛過去就飛火球,想飛激光就飛激光……
橋豆麻袋!電腦怎么知道你想讓那個(gè)proj飛到哪里去?下面是一些有關(guān)確定速度方向的講解:
?、偃呛瘮?shù)天才,或者平面向量萬年掛科,請前往條目2
②平面向量學(xué)霸或者痛恨三角函數(shù),請前往條目3
1.1.先確定自己和鼠標(biāo)的位置吧~
Vector2 pc=p.position+new Vector2(p.width,p.height)/2;
Vector2 mc=Main.screenPosition+new Vector2(Main.mouseX,Main.mouseY);
2.Math.Atan2(對邊,斜邊)
兩個(gè)向量作差,得到了什么?向量?錯!是直角三角形!
float r=(float)Math.Atan2(mc.Y-pc.Y,mc.X-pc.X);
(這個(gè)函數(shù)是反正切,又不是反正切,因?yàn)樗膶吅托边呺S便哪個(gè)取0都是可以輸出結(jié)果的;而且它的值域是2π,也就是一圈!)
接下來,Vector2 v=new Vector2((float)Math.Cos(r),(float)Math.Sin(r));
這就是單位長度,方向從玩家中心指向鼠標(biāo)的速度向量
上一篇: 阿加雷斯特戰(zhàn)記-AP變化詳解
下一篇: 各系五行套裝的實(shí)質(zhì)
《罪惡都市》決定版數(shù)據(jù)在Steam后臺更新
《Apex英雄》日蝕戰(zhàn)斗通行證預(yù)告 全新傳說皮膚等
《霍格沃茨之遺》登上Steam愿望單排行榜榜首
《布蘭博:山丘之王》試玩Demo上線 2023年發(fā)售
《刀劍神域》“今日正式發(fā)售” 官方發(fā)布周年紀(jì)念禮盒
《七龍珠:破界斗士》公布賽季更新路線圖
《獵天使魔女3》通過NS模擬器 在PC上以4K/60幀運(yùn)行
《刺客信條:幻景》樂曲“Into the light”欣賞
《獵天使魔女3》首日更新 改進(jìn)防走光模式調(diào)整平衡
《生化危機(jī)8》云游戲版發(fā)售預(yù)告公布 今日登陸Switch