《泰拉瑞亚》饰品制作方法
【猎奇+篇:辅助火力】 提示:这一篇将会有大量的英语和数学成分,不过LZ相信你们会比上学期英语倒10的LZ看得更明白的~ 当然最开始还是喜闻乐见地分条讲解代码: 1.Projectile.NewProjectile(坐标X,坐标Y,速度X,速度Y,种类,伤害,击退,所属玩家,ai0,ai1) 字面意思,用来在世界里生成一个proj,中心对准给定的坐标,速度为给定速度,种类、伤害、击退等等都是可以指定的,所属玩家一般写Main.myPlayer或者p.whoAmI(当自己被编号为p时)至于那个ai0和ai1,目前还不需要它们,在写的时候可以纯粹省略这两项,或者填0 这句话可以说是附加火力的核心,没有它一切都是免谈,想象一下,对准怪物按下鼠标,想让火球飞过去就飞火球,想飞激光就飞激光…… 桥豆麻袋!电脑怎么知道你想让那个proj飞到哪里去?下面是一些有关确定速度方向的讲解: ①三角函数天才,或者平面向量万年挂科,请前往条目2 ②平面向量学霸或者痛恨三角函数,请前往条目3 1.1.先确定自己和鼠标的位置吧~ 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); (这个函数是反正切,又不是反正切,因为它的对边和斜边随便哪个取0都是可以输出结果的;而且它的值域是2π,也就是一圈!) 接下来,Vector2 v=new Vector2((float)Math.Cos(r),(float)Math.Sin(r)); 这就是单位长度,方向从玩家中心指向鼠标的速度向量 3.Vector2.Distance(向量1,向量2) 这个语句是用来求两个向量距离的,同样的效果也可以用求向量长度的语句((向量1-向量2).Length())来实现 Q:没事求向量长度干啥? A:向量除以长度等于单位向量 也就是:Vector2 v=(mc-pc)/Vector2.Distance(mc,pc); 一发♂入魂的单位向量~ 下面就可以组装起来了: 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,无击退的磁球激光 直接写进去?不不不那样会鬼畜的,激光还好,如果写的是雷♂管之类的和谐物品的话,想象一下每秒60个雷♂管不受控制地射出去的景象…… (编辑:173173游戏网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |