国产chinesehd精品酒店,邱淑贞aa极毛片,国产在线色视频,玖玖爱zh综合伊人久久

網(wǎng)站首頁
手機(jī)版

《泰拉瑞亞》飾品制作方法 泰拉瑞亞飾品合成和獲得方式

更新時間:2023-03-29 00:11:04作者:佚名

《泰拉瑞亞》飾品制作方法 泰拉瑞亞飾品合成和獲得方式

【基礎(chǔ)篇:飾品創(chuàng)建】

一個mod道具需要有json文件和png文件嘛~

png就不多說了,圖片,不要找太大的就行了,反例請參見ctx的just a simple boss里的BOSS召喚物——骷髏下巴,因為直接用了骷髏下巴的圖,太大,撿起來放在物品欄的時候縮得不成樣子

當(dāng)然還有一點:背景色必須是透明,比如:《泰拉瑞亞》飾品制作方法

下面是json的寫法:以剛寫的ctxmove作范例:

{

  "code": "ctxmove",——名字,要和json的文件名一致

  "displayName": "CTXs Movement",——顯示名稱,最好區(qū)分大小寫以顯得很正式

  "size": [28,14],——尺寸,兩個數(shù)字分別對應(yīng)png圖像的長和寬

  "value": [0,0,0,0],——價值,四個數(shù)字分別對應(yīng)鉑、金、銀、銅幣的數(shù)量(注意這里是買入價值,賣出時會有折扣,使用打折卡買入也會有折扣)

  "rare": 9,——稀有度,⑨就是最稀有的天藍(lán)了好像

  "toolTip": "I hate json.",——第一行道具說明(想加第二行就是toolTip2)

  "accessory":true,——這句是重點,它決定了這個道具可以被塞進(jìn)飾品欄

  "recipes": [——合成表

  {

    "items": ["0 Wood"],——用0個木頭

    "creates": 1——合成1個飾品

  }

  ]——這里的recipe明顯不合格好吧!連tile也沒有——嘛,這不是重點

}

此外,還可以加一些附加的語句,比如"wings":12,讓玩家佩戴后獲得蒸汽朋克翅膀,"lifeRegen":增加回血速度,"defense":加防御,好像也就這些了。

【進(jìn)階篇:cs創(chuàng)建】

寫一個和png以及json相同名字的cs文件

首先,在里面寫:

using System;

using TAPI;

using Microsoft.Xna.Framework.Graphics;

namespace TAPI.【MOD名稱】{

  public class 【道具名稱】:ModItem{

    public 【道具名稱】(ModBase modbase,Item i):base(modbase,i){}

    public override void Effects(Player p){

      //等會就是在這里插入飾品信息滴~

    }

  }

}

那些【mod名稱】和【道具名稱】需要換成什么,就看實際情況和個人喜好了……順便:【道具名稱】也要和文件名一樣

然后嘞……這個Effects究竟能干什么?答案:幾乎所有!一個玩家能干的事!

看見后面括號里那個Player p了么?這代表接下來Effects里發(fā)生的一切事情,都將施予那個代號為p的玩家——也就是帶上這個飾品的玩家~(當(dāng)然那個p改成player,ctx,lzw神馬的都行,只是切記要和后面保持一致)

至于Effects究竟能干啥嘛……先來幾個基本的吧:

首先是對玩家身上的數(shù)據(jù)進(jìn)行操作

寫p.statLifeMax=500;就是玩家佩戴時生命最大值將瞬間飆到500

p.statManaMax=200;同理,玩家最大魔法值飆到200

p.statManaMax2=+200;這個就像一般的法師飾品一樣暫時增加了玩家的最大魔法,卸掉飾品就會還原(而前兩個不會)

p.wings = 12;給玩家戴上蒸汽朋克翅膀

p.statDefense+=233;玩家防御增加233

p.lifeRegen+=233;玩家回血速度增加233(再注:這里的回血速度最大也只能增加到每秒一點,是TR原版回血機(jī)制的問題)

當(dāng)然,還有很多……

更多相關(guān)資訊請關(guān)注:泰拉瑞亞terraria專題

【娛樂篇:鬼畜cs】

接上篇,繼續(xù)往Effects里加條條——

p.statDefense+=2333333333;神馬的就不用我說了吧~改數(shù)字而已,大家自便,不要讓自己失去游戲樂趣就可以了

首先是更加神奇的回血:

p.statLife++;

這條代碼能讓玩家每幀都回復(fù)一點血,相當(dāng)于每秒60點,而且這個回血和玩家自動回血以及幽靈套、吸血飛刀、HP藥水之類的完全無關(guān),相當(dāng)于是每秒免費送的60血~

同理,寫p.statMana++;就是每幀回復(fù)1藍(lán),每秒額外60藍(lán)

另外,如果想看到效果的話可以再加一句p.HealEffect(1);或者p.ManaEffect(1);,分別是回血和回藍(lán)1的效果,當(dāng)然括號里的數(shù)字隨意填,填幾就跳幾的綠/藍(lán)數(shù)字(最好和寫的回血/回藍(lán)數(shù)字相同,不然會有困擾)

——什么?還是太弱了?你手殘所以每秒60血根本不夠?

p.longInvince = true;

p.lavaImmune = true;

p.fireWalk = true;

p.noFallDmg = true;

四句分別是延長無敵時間(神圣十字效果),免疫巖漿(黑曜石藥水效果),免疫熱磚塊(黑曜石頭顱效果)以及免疫掉落傷害(馬掌效果)

——什么?你還想站擼霜月?

記得我說過Effects可以對玩家數(shù)據(jù)任意操控吧~

我們可以簡單地做一個內(nèi)置鎖血鎖藍(lán)的效果:

p.statLife=p.statLifeMax;和p.statMana=p.p.statManaMax2;

原理:每幀都讀一下玩家當(dāng)前最大血/藍(lán)是多少,再賦給剩余的血/藍(lán)

夠鬼畜了吧~現(xiàn)在只要沒有喵殺你的攻擊,對你來說都是浮云了

——什么?你還要白天去同時站擼骷髏王、地牢守護(hù)者和機(jī)械骷髏王?

【喪病篇:鬼畜cs進(jìn)階】

這一篇教程就是一些更華麗的效果了……

首先是上期遺留的問題:如何站擼白天吳克?答案就是……誒有人敲門?我的快遞到了,去收一下……

……剛才送快遞的LZW小哥告訴我,不能把這個說出來,不然會(ta)極(hui)大(zai)地(jin)影(wan)響(lai)游(gang)戲(le)平(wo)衡,所以就只能給一點提示了:給玩家強(qiáng)行上無敵~

子提示①:無敵和免疫的意思很接近

子提示②:TR的變量基本是用英文命名的

子提示③:無敵也需要時間限定

那么,就這樣吧,作為一個思考題,接下來是——

1.時裝

想穿烏龜套又懶得收集龜甲?萬能的Effects滿足你!

p.head=99;

p.body=65;

p.legs=54;

想穿幽靈套又不想下地牢?萬能的Effects滿足你!

p.head=101;

p.body=66;

p.legs=55;

其它時裝同理,不過實際使用時優(yōu)先級是時裝欄高于下面的飾品高于上面的飾品高于裝備欄,請務(wù)必注意

2.套裝效果

想反傷又嫌烏龜套好難看而且不想穿時裝?還是萬能的Effects滿足你!

p.thorns = true;

p.turtleThorns = true;

想吸血而且覺得幽靈套太丑?依然是是萬能的Effects滿足你!

p.ghostHeal=true;

什么?嫌幽靈套吸血太慢了?那就再來一句:

p.lifeSteal=233f;——瞬間還原至舊版幽靈套的吸血頻率我會說?

3.視覺特效

還是那句話,Effects是萬能的。

想在身上點上火?

for (int i=0;i<9;i++){

  int m = Dust.NewDust(p.position, p.width, p.height, 6);

  Main.dust[m].noGravity = true;

  Main.dust[m].position += p.velocity * Main.rand.Next(-50, 51) * 0.01f;

}

上面這段效果大概就是在身上放上火焰的粒子特效,并且會依據(jù)玩家的速度而延伸成一條火鏈;至于每一句都是起的什么作用——字面意思,不懂英文的請自行g(shù)oogle翻譯,不懂英文又秀優(yōu)越秀愛國的請右上角

想讓自己身上冒星星?

Gore.NewGore(p.position+new Vector2(Main.rand.Next(p.width),Main.rand.Next(p.height)), p.velocity,Main.rand.Next(16,18));

上面這句就是在玩家身上隨機(jī)的地方冒16號或者17號gore,也就是星星

【DEBUG-查錯階段】

首先是同時掛上蒸汽朋克翅膀、火焰粒子以及星星gore的照片一張

《泰拉瑞亞》飾品制作方法

這里需要注意一點:cs開頭的using應(yīng)該是using Microsoft.Xna.Framework;

也就是說,模板應(yīng)該是如下:

using System;

using TAPI;

using Microsoft.Xna.Framework;

namespace TAPI.【MOD名稱】{

  public class 【道具名稱】:ModItem{

    public 【道具名稱】(ModBase modbase,Item i):base(modbase,i){}

    public override void Effects(Player p){

      //等會就是在這里插入飾品信息滴~

   ?。?/p>

  }

}

這篇主要講述的是運用TR原版的一些方法組來答到寓守于攻、不戰(zhàn)而退敵的效果

首先……先介紹一些需要用到的代碼

1.Rectangle(組詞法:rect是“四”,angle是“角”,四個墻角即為矩形~)

要想快速而方便地判定范圍,首先要在TR里表示一個矩形(Rectangle)。

TR里聲明一個矩形的方法是使用new方法組,也就是new Rectangle(坐標(biāo)X,坐標(biāo)Y,寬,高)

舉例:new Rectangle(100,200,300,400)表示的是如下圖的矩形:

《泰拉瑞亞》飾品制作方法

左上頂點坐標(biāo)(100,200),長300寬400,右下頂點坐標(biāo)(100+300,200+400),表示的是一個范圍(嗯沒錯那個就是66ccff)

注:矩形的坐標(biāo)和長寬必須是整數(shù),在使用到玩家或npc坐標(biāo)的地方請在前面加個(int),表示取整

2.Rectangle.Intersects(Rectangle r1,Rectangle r2)

intersects方法組,隸屬于xna特有的數(shù)學(xué)系(重申一遍前面cs格式的.Graphics一定要刪掉!),用來判定兩個矩形是否相交,輸出邏輯值(真或假)

p.s.判定是否在范圍內(nèi)時好像比直接計算距離略快一點,缺點就是判定是方的不好看

……嘛,戰(zhàn)斗時誰還管好不好看呢?

3.foreach(類型 代號 in 組)

就像這個語句的名字一樣,它可以把某個組里的所有東西都拉出來給一個代號,比如foreach(NPC n in Main.npc)就是檢索游戲中所有NPC并給每個NPC起個名字:n;接下來這個n將要受到什么代碼的操(rou)作(lin),就完全是個人喜好的問題了

4.NPC.AddBuff(int BUFF類型,int BUFF持續(xù)時間)

是時候讓那些可惡的怪物們嘗嘗FFF團(tuán)的怒火了!有了這個方法組,給NPC隨意加debuff將不是夢想!

·BUFF類型就是想要加的BUFF的編號,比如燃燒是24,詛咒燃燒是39,霜火燃燒是44,等等

·BUFF持續(xù)時間是按幀算的,60幀=1秒(0處理落率),如果這里寫60就是一秒,寫3600是一分鐘,寫23333333就是約4.50102874天,依據(jù)自己需求來決定時間吧

5.if(條件)

直譯:如果滿足條件就執(zhí)行后面的內(nèi)容,條件應(yīng)為邏輯值

5.2.else

“否則”是“如果”的好姬友,用于在if的條件不成立時執(zhí)行后面的語句

5.2.1.多層判定

那啥……else后面也能跟if,所以如果多重判定就可以寫成:

if(條件1){代碼段1}

else if(條件2){代碼段2}

else if(條件3){代碼段3}

else……

……

……else{都不滿足時的代碼段}

5.2.邏輯值的運算

如果需要同時判定多個條件成立,幾個條件就套上幾個if?如果需要多個條件任一成立,幾個條件就寫幾個else,然后在里面寫相同語句?乃們out了!其實許多條件也是可以合并成一個條件的

需要用到的就是邏輯運算符:且(&&)、或(||)和非(!)

且就是數(shù)字7上面那個符號打兩遍,或就是右shift上面那個按鍵+shift打出來的(絕對值括號),非就是感嘆號(全都是半角)

且和或用于連接兩個邏輯值,放于兩個邏輯值之間;非放在一個邏輯值的前面,用于否定這個邏輯值(真假顛倒)

5.2.1.幾個邏輯運算的法則

1.!!a就是a

2.!(a&&b)就是(!a)||(!b)

3.!(a||b)就是(!a)&&(!b)

例題1:輸出一個邏輯值M,在a和b同時不成立的前提下要求滿足以下三點中任意兩點便成立:①b和c任一成立②d和e同時成立③f成立

解1:M=(!a)&&(!b)&&(((b||c)&&d&&e)||(f&&d&&e)||((b||c)&&f))

評價:簡單粗♂暴,適用于對多重括號很熟練的兄貴們

解2:int m=0;

if(b||c)m++;

if(d&&e)m++;

if(f)m++;

M=(!(a||b))&&(m>=2)

評價:略運用了化簡的技巧,適用于懶♂的兄貴們

6.反擊時刻!

現(xiàn)在讓我們把這四條組成一個給附近300像素以內(nèi)NPC上霜火debuff的效果吧~

6.1.思路(伸手黨可以跳過這一段直接復(fù)制后方的成品,感興趣的還是看一下吧~)

先遍歷所有NPC記作n:foreach(NPC n in Main.npc)

操♂作開始,首先是確定范圍:

NPC所在的矩形是new Rectangle((int)n.position.X,(int)n.position.Y,n.width,n.height)

玩家上下左右300像素的矩形是new Rectangle((int)p.position.X-300,(int)p.position.Y-300,p.width+600,p.height+600)

接下來是判定相交同時確保n還活著,而且是敵對NPC:

if(n.active&&!n.friendly&&new Rectangle((int)n.position.X,(int)n.position.Y,n.width,n.height).Intersects(new Rectangle((int)p.position.X-300,(int)p.position.Y-300,p.width+600,p.height+600)))

最后嘛……嘗嘗來自北國的FFF團(tuán)精神吧!

n.AddBuff(44,300);

6.2.成品代碼:

foreach(NPC n in Main.npc){

  if(n.active&&!n.friendly&&new Rectangle((int)n.position.X,(int)n.position.Y,n.width,n.height).Intersects(new Rectangle((int)p.position.X-300,(int)p.position.Y-300,p.width+600,p.height+600))){

    n.AddBuff(44,300);

  }

}

6.3.效果圖:

《泰拉瑞亞》飾品制作方法

BURN BABY,BURN!

嗯……本期教程就此結(jié)束,下期將是:【獵奇篇:讀取操作】,如何用飾品給予玩家可控的額外火力,盡請期待~

附思考題:

如何做出十動然拒徽章的效果?(排除危險NPC和proj到安全距離以外)(neta自擁著轉(zhuǎn))

提示:

①proj對應(yīng)的組是Main.projectile,proj的類型是Projectile

②proj和NPC一樣有位置和寬高數(shù)據(jù),位置可以被任意操作

③敵對NPC特征是friendly邏輯值為假,敵對proj特征是hostile邏輯值為真

【獵奇篇:讀取操作】

前言:

其實這一篇嚴(yán)格地說并不是為增強(qiáng)火力而存在的;換句話說,它不只是為增強(qiáng)火力存在的。

只要讀取了電腦前玩家的操作,加上自定的一些代碼,玩家就可以做到擴(kuò)展整個人物的功能,就像K鍵召喚所有BOSS,F(xiàn)鍵瞬移,等等……

下面是正題:

1.讀取玩家行動

讀取玩家行動,其實只需熟記表示玩家狀態(tài)的幾個邏輯值,就能對玩家相應(yīng)的行動做到加強(qiáng)或改變;平時需要用的基本就是這幾條了:

controlLeft;控制向左

controlRight;控制向右

controlUp;控制向上

controlDown;控制向下

controlJump;控制跳

controlHook;控制鉤子

例:如何做一個讓玩家移動速度加快的飾品?

大體思路就是讀取玩家按下的方向鍵,并相應(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;

}

以上的作用是:玩家控制向左時就增加向左速度,玩家控制向右就增加向右速度;將控制向上和控制跳躍綁定,控制向上就增加向上的速度

2.讀取鼠標(biāo)狀態(tài)

游戲中自帶顯示鼠標(biāo)狀態(tài)的邏輯值,Main.mouseLeft和Main.mouseRight分別表示鼠標(biāo)左鍵和右鍵是否按下;相應(yīng)的還有Main.mouseLeftRelease和Main.mouseRightRelease表示左右鍵是否未按下,可以理解為兩者相反

思考題:如何制作按下鼠標(biāo)右鍵就回血的飾品?運用前面的教程,題目較為簡單,這里就不寫示例了

3.讀取鍵盤狀態(tài)

Main.keyState.IsKeyDown(Microsoft.Xna.Framework.Input.Keys.【按鍵代號】)

這個語句用來讀取鍵盤狀態(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)

字面意思,用來在世界里生成一個proj,中心對準(zhǔn)給定的坐標(biāo),速度為給定速度,種類、傷害、擊退等等都是可以指定的,所屬玩家一般寫Main.myPlayer或者p.whoAmI(當(dāng)自己被編號為p時)至于那個ai0和ai1,目前還不需要它們,在寫的時候可以純粹省略這兩項,或者填0

這句話可以說是附加火力的核心,沒有它一切都是免談,想象一下,對準(zhǔn)怪物按下鼠標(biāo),想讓火球飛過去就飛火球,想飛激光就飛激光……

橋豆麻袋!電腦怎么知道你想讓那個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(對邊,斜邊)

兩個向量作差,得到了什么?向量?錯!是直角三角形!

float r=(float)Math.Atan2(mc.Y-pc.Y,mc.X-pc.X);

(這個函數(shù)是反正切,又不是反正切,因為它的對邊和斜邊隨便哪個取0都是可以輸出結(jié)果的;而且它的值域是2π,也就是一圈!)

接下來,Vector2 v=new Vector2((float)Math.Cos(r),(float)Math.Sin(r));

這就是單位長度,方向從玩家中心指向鼠標(biāo)的速度向量

3.Vector2.Distance(向量1,向量2)

這個語句是用來求兩個向量距離的,同樣的效果也可以用求向量長度的語句((向量1-向量2).Length())來實現(xiàn)

Q:沒事求向量長度干啥?

A:向量除以長度等于單位向量

也就是:Vector2 v=(mc-pc)/Vector2.Distance(mc,pc);

一發(fā)♂入魂的單位向量~

下面就可以組裝起來了:

Vector2 pc=p.position+new Vector2(p.width,p.height)/2;

Vector2 mc=Main.screenPosition+new Vector2(Main.mouseX,Main.mouseY);

Vector2 v=(mc-pc)/Vector2.Distance(mc,pc);

Projectile.NewProjectile(pc.X,pc.Y,v.X*6,v.Y*6,255,50,0,p.whoAmI);

示例中為使用單位向量法,速度大小為6,傷害為50,無擊退的磁球激光

直接寫進(jìn)去?不不不那樣會鬼畜的,激光還好,如果寫的是雷♂管之類的和諧物品的話,想象一下每秒60個雷♂管不受控制地射出去的景象……

【獵奇+篇:控制法】

前方大量聲明,注意

要控制火力嘛……不然會鬼畜不是嗎?所以這里就能利用上前面說的讀取鍵盤狀態(tài)了

這里可以分為幾類觸發(fā)機(jī)制,以下用F鍵作為例子

0.特別說明

務(wù)必加上p.whoAmI==Main.myPlayer的判定,如果你不想自己按鍵時全圖玩家都開始放彈幕,想象一下全圖按鍵會發(fā)生什么

1.單發(fā)

原理是記錄上一幀的F鍵狀態(tài),如果兩個狀態(tài)不同,代表按下(彈起)了F,鍵,就可以放彈幕了

具體:

using System;

using TAPI;

using Microsoft.Xna.Framework;

namespace TAPI.【MOD名稱】{

  public class 【道具名稱】:ModItem{

    public 【道具名稱】(ModBase modbase,Item i):base(modbase,i){}

    bool oldF=false;

    public override void Effects(Player p){

      if(p.whoAmI==Main.myPlayer&&!oldF&&Main.keyState.IsKeyDown(Microsoft.Xna.Framework.Input.Keys.F)){

        //這里面就是寫前面發(fā)射子彈代碼的地方

      }

      oldF=Main.keyState.IsKeyDown(Microsoft.Xna.Framework.Input.Keys.F;

   ?。?/p>

  }

}

這種觸發(fā)方式的頻率是取決于按鍵速度的,也就是按得越快射♂得越快,理論射速峰值為30發(fā)每秒

2.連發(fā)

原理是添加一個計時變量,至于具體怎么計時就看個人喜好了,這里提供一種解決方案:

using System;

using TAPI;

using Microsoft.Xna.Framework;

namespace TAPI.【MOD名稱】{

  public class 【道具名稱】:ModItem{

    public 【道具名稱】(ModBase modbase,Item i):base(modbase,i){}

    int timer=0;

    public override void Effects(Player p){

      if(timer>0)timer--;

      else{

        if(p.whoAmI==Main.myPlayer&&Main.keyState.IsKeyDown(Microsoft.Xna.Framework.Input.Keys.F)){

          timer=10;

          //這里面就是寫前面發(fā)射子彈代碼的地方

        }

      }

    }

  }

}

按住F就可以連射了~示例為每秒觸發(fā)6次的寫法

3.自動

這里就略復(fù)雜了點,需要具有想象力以及數(shù)學(xué)功底,當(dāng)然還有對于彈幕的熱愛=w=

簡單地來一個施放旋轉(zhuǎn)鐮刀的腳本吧~

using System;

using TAPI;

using Microsoft.Xna.Framework;

namespace TAPI.ctx{

 public class ctxbullet : ModItem{

  int timer = 0;

  float r = 0;

  float rv = 0;

  float ra = 0.001f;

  bool barrage = false;

  public ctxbullet(ModBase modbase, Item i) : base(modbase, i) { }

  public override void Effects(Player p){

   rv += ra;

   if (rv > 3) rv -= (float)Math.PI * 2f;

   r += rv;

   if (r > 3) r -= (float)Math.PI * 2f;

   timer++;

   if (timer > 3) timer -= 3;

   if (barrage){

    if (p.statMana < 3 || p.whoAmI != Main.myPlayer){

     barrage = false;

     goto outOfMana;

    }

    else p.statMana -= 3;

    if (timer % 3 == 0){

     Vector2 pc = p.position + new Vector2(p.width, p.height) / 2;

     Vector2 v = new Vector2((float)Math.Cos(r), (float)Math.Sin(r));

     Projectile.NewProjectile(pc.X, pc.Y, v.X * 20f, v.Y * 20f, 274, 100, 0, p.whoAmI);

     Projectile.NewProjectile(pc.X, pc.Y, -v.X * 20f, -v.Y * 20f, 274, 100, 0, p.whoAmI);

    }

   }

  outOfMana:

   if (Main.keyState.IsKeyDown(Microsoft.Xna.Framework.Input.Keys.F)) barrage = !barrage;

  }

 }

}

因為需要美觀,就多定義了幾個角度增速,角度加速度,角度急動度,角度痙攣度神馬的……

效果圖:

《泰拉瑞亞》飾品制作方法

(所以說彈幕可以培養(yǎng)數(shù)學(xué)和想象力=w=)

當(dāng)然,自動類彈幕的形式是非常多的,從上文簡單的噴環(huán)環(huán),到折返射、西行寺無余涅盤、夢想天生、原子崩壞、金剛槍破,等等……只要看懂彈幕的組成,tAPI就能寫出來!

嘛……作為飾品部分的教程基本已經(jīng)結(jié)束了,從道具json的創(chuàng)建一直到在cs里聲明和操作變量,基本現(xiàn)在已經(jīng)可以復(fù)原所有原版飾品的效果了,玩家們也能首夜裸裝站擼機(jī)械三王了

更多相關(guān)資訊請關(guān)注:泰拉瑞亞terraria專題

為您推薦

迷你世界馬鞍怎么做(迷你世界馬鞍怎么做)

1、一般當(dāng)攢到8個星星的時候,會選擇去找到商店老板。打開商店老板的界面,找到“坐騎的鞍”選項,然后點擊“購買”即可。2、當(dāng)有了鞍之后,就可以將其安在動物身上,該動物就會成為坐騎。3、在游戲中馴服某些動物后可以作為坐騎來使

2023-03-30 15:51

小小夢魘2結(jié)局有幾個 小小夢魘2最終結(jié)局

1、《小小夢魘2》結(jié)局不止有一個,但也可以說是只有一個結(jié)局,收集完暗影小孩后會加一點片段,但是這個結(jié)局不會改變,收集全16個幻影,可以打出另一個結(jié)局,新結(jié)局是小六最后凝視貪鄂號的畫面。2、二代實際上就是一代前傳,而極小夢

2023-03-30 15:50

小小夢魘2劇情是怎樣的 小小夢魘2結(jié)局官方解釋

1、第五章的boss瘦男(傳送和噪點都neta slenderman那個)應(yīng)該是整個世界的boss。他知道六的事情,和六是交易關(guān)系,他以八音盒來引誘六讓六去幫他引導(dǎo)摩諾接替他變成瘦男,而現(xiàn)在的瘦男可以逃離這個地方(從結(jié)局

2023-03-30 15:49

逆襲人生如何進(jìn)行闖蕩(逆襲人生的50個秘籍)

1、在手機(jī)桌面中,點擊“逆襲人生”APP圖標(biāo)?!澳嬉u人生”主界面中,點擊左側(cè)的“闖蕩”按鈕。在“闖蕩”界面中,點擊標(biāo)志符號往四周黑色區(qū)域移動即可。2、逆襲人生官方版是一款現(xiàn)代城市背景的模擬人生手游,游戲講述人的一生的選擇

2023-03-30 15:48

王者榮耀買了皮膚沒到賬怎么辦 王者買的皮膚沒到賬怎么辦

1、微信-搜索公眾號【騰訊客服】進(jìn)行關(guān)注(微信號:Tencent_KF),進(jìn)入公眾號后輸入“王者榮耀”然后反饋具體問題。2、微信—發(fā)現(xiàn)—小程序搜索騰訊客服提交問題,選擇王者榮耀產(chǎn)品和問題類型進(jìn)行提問。3、游戲內(nèi)點開右上角

2023-03-30 15:47

奧特曼格斗0怎么獲得奧特之父 奧特曼格斗0怎么獲得奧特之父視頻

1、劇情之后,開始打怪獸,遇到“希波利特星人”,當(dāng)自己塊沒血時,出現(xiàn)一個“奧特曼”給自己加血。全力打倒“希波利特星人”。2、來到最后一站,進(jìn)行戰(zhàn)斗訓(xùn)練,按鍵“映射”,找到“START”設(shè)置一下,繼續(xù)戰(zhàn)斗,點剛才設(shè)置的鍵,

2023-03-30 15:46