收藏本站

当前位置:首页 / 游戏库 / 泰拉瑞亚

泰拉瑞拉饰品制作方法

时间:2014-02-18 16:36:04 来源:k73电玩之家 作者:小新 热度: 134

《泰拉瑞拉》的饰品制作方法其实还是有一些麻烦的,玩家们初上手制作可能会遇到一些困难,不过我想这些都不是玩家们想要制作饰品的阻碍,希望以下的饰品的制作方法,可以让玩家们在这款游戏中可以获得更多的乐趣。

【DEBUG-查错阶段】

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

泰拉瑞拉饰品制作方法

这里需要注意一点:cs开头的using应该是using Microsoft.Xna.Framework;

也就是说,模板应该是如下:

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){

//等会就是在这里插入饰品信息滴~

}

}

这篇主要讲述的是运用TR原版的一些方法组来答到寓守于攻、不战而退敌的效果

首先……先介绍一些需要用到的代码

1.Rectangle(组词法:rect是“四”,angle是“角”,四个墙角即为矩形~)

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

TR里声明一个矩形的方法是使用new方法组,也就是new Rectangle(坐标X,坐标Y,宽,高)

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

泰拉瑞拉饰品制作方法

左上顶点坐标(100,200),长300宽400,右下顶点坐标(100+300,200+400),表示的是一个范围(嗯没错那个就是66ccff)

注:矩形的坐标和长宽必须是整数,在使用到玩家或npc坐标的地方请在前面加个(int),表示取整

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

intersects方法组,隶属于xna特有的数学系(重申一遍前面cs格式的.Graphics一定要删掉!),用来判定两个矩形是否相交,输出逻辑值(真或假)

p.s.判定是否在范围内时好像比直接计算距离略快一点,缺点就是判定是方的不好看

……嘛,战斗时谁还管好不好看呢?

3.foreach(类型 代号 in 组)

就像这个语句的名字一样,它可以把某个组里的所有东西都拉出来给一个代号,比如foreach(NPC n in Main.npc)就是检索游戏中所有NPC并给每个NPC起个名字:n;接下来这个n将要受到什么代码的操(rou)作(lin),就完全是个人喜好的问题了

4.NPC.AddBuff(int BUFF类型,int BUFF持续时间)

是时候让那些可恶的怪物们尝尝FFF团的怒火了!有了这个方法组,给NPC随意加debuff将不是梦想!

·BUFF类型就是想要加的BUFF的编号,比如燃烧是24,诅咒燃烧是39,霜火燃烧是44,等等

·BUFF持续时间是按帧算的,60帧=1秒(0处理落率),如果这里写60就是一秒,写3600是一分钟,写23333333就是约4.50102874天,依据自己需求来决定时间吧

5.if(条件)

直译:如果满足条件就执行后面的内容,条件应为逻辑值

5.2.else

“否则”是“如果”的好姬友,用于在if的条件不成立时执行后面的语句

5.2.1.多层判定

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

if(条件1){代码段1}

else if(条件2){代码段2}

else if(条件3){代码段3}

else……

……

……else{都不满足时的代码段}

5.2.逻辑值的运算

如果需要同时判定多个条件成立,几个条件就套上几个if?如果需要多个条件任一成立,几个条件就写几个else,然后在里面写相同语句?乃们out了!其实许多条件也是可以合并成一个条件的

需要用到的就是逻辑运算符:且(&&)、或(||)和非(!)

且就是数字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.反击时刻!

现在让我们把这四条组成一个给附近300像素以内NPC上霜火debuff的效果吧~

6.1.思路(伸手党可以跳过这一段直接复制后方的成品,感兴趣的还是看一下吧~)

先遍历所有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团精神吧!

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);

}

}

相关导航

泰拉瑞亚

泰拉瑞亚

游戏平台:3DSPSVPS3Xbox360

游戏类型:动作冒险沙盒开放

发售日期:2017-1-9 全部版本发售日
PSV美版:2013-12-17
PC中文版:2015-7-9
PS3日版:2013-11-5
Xbox360欧版:2013-3-27
Xbox One美版:2014-11-14
3DS, New 3DS美版:2016-2-23
3DS, New 3DS欧版:2016-2-12
3DS, New 3DS中文版:2015-12-21
Android, iOS中文版:2024-5-1
WIIU美版:2016-4-12
WIIU欧版:2016-4-12
PC中文版:2011-5-17
PC, Android, iOS中文版:2017-1-9

游戏版本:日版美版欧版中文版

游戏标签:游戏推荐经典游戏好玩的游戏游戏排行榜

84

总分 玩家评分:40 k73评分:44
画面:8
剧情:8
系统:8
音乐:8
耐玩:8

收藏本站 | 联系我们 | 发展历程 | 版权声明 | 下载帮助 | 广告服务 | 软件提交 | 意见反馈

Copyright 2008-2020 破解游戏排行榜 版权所有 鄂ICP备17000873号

k73所有游戏及软件下载资源均来源自互联网,并由网友上传分享。如有侵权,请来电来函告之。

k73手游