收藏本站

當(dāng)前位置:首頁 / 游戲庫 / 泰拉瑞亞

泰拉瑞拉飾品制作方法

時(shí)間:2014-02-18 16:36:04 來源:k73電玩之家 作者:小新 熱度: 134

《泰拉瑞拉》的飾品制作方法其實(shí)還是有一些麻煩的,玩家們初上手制作可能會(huì)遇到一些困難,不過我想這些都不是玩家們想要制作飾品的阻礙,希望以下的飾品的制作方法,可以讓玩家們?cè)谶@款游戲中可以獲得更多的樂趣。

【獵奇+篇:控制法】

前方大量聲明,注意

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

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

0.特別說明

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

1.單發(fā)

原理是記錄上一幀的F鍵狀態(tài),如果兩個(gè)狀態(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;

}

}

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

2.連發(fā)

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

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.自動(dòng)

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

簡(jiǎn)單地來一個(gè)施放旋轉(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àn)樾枰烙^,就多定義了幾個(gè)角度增速,角度加速度,角度急動(dòng)度,角度痙攣度神馬的……

效果圖:

泰拉瑞拉飾品制作方法

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

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

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

我要評(píng)論 查看全部評(píng)論 (0)>>