前排感谢大家的支持~国服加油!~大家游戏愉快
目前已知的信息:
阿尔法之前尝试的是直线跑位,佶天鸿尝试的是120度圆心角的弧线跑位
阿尔法已经靠此 及应变 成功 艰难苟活 度过P1进入P2
因此,在几家公会已经达成共识的情况下,本文不再作路线规划的建议,只会尝试作一些对他们这种选择的解释和补充
重要的问题:
圈每轮转动10度这个条件,其转动方向是以人物前进方向(动坐标系)为参考还是以场地本身(静坐标系)为参考的?
前者意味着可以通过转身控制球的发射方向,后者意味着人物只是提供落点。
PS.个人更倾向于后者,因为目前没有任何一个BOSS的技能会依据人物前进方向而改变,更多的只是判定人物位置;
而唯一个最接近鸡蛋技能的就是扎昆的种子,该技能同样不会被面向影响。
目前看来,实际使用的是静坐标系,所以想通过转身把圈放成直线的可以歇啦。~
前排编辑1:
目前看到的一个 没什么用的 结论:(感谢#108楼帮助,进一步思考了这个问题)
安全区的方位=球10度旋转轴(垂直屏幕向外)叉乘人物移动方向。矢量叉乘哟~
应要求加入了改进版带轨迹的图片,更加直观~
静止放
直线放(横向)
直线放(纵向)
#96楼朋友提出,弧线跑位时起点位置会影响安全区,并且自己做了个插件,有需要可以移步
下两图是刚开始随意设置数值的弧线放圈效果,更详细的分析可以见“前排编辑2”
120度圆心角放(-180度起点)
120度圆心角放(-150度起点)
前排编辑2:
做个简单的计算:人物移动速度是7码每秒,圈0.5秒一轮,如果想使球的每轮路径均为某个圆的切线(效果图在下面),使得安全区成为一个标准圆
则需要使3.5码弧对应10度的角度,人物的速度限制了这一距离。
那么代码代入R=20的条件,圈的起始角为0度,从-150度开始跑,共转过90度,效果如下:
90度圆心角放(-150度起点,半径20)
嗯,看似很美好,然而实际上,安全区只是一个10码半径的圆。
而我们再来看看起始位置如果差了20度的效果(从-130起跑):
90度圆心角放(-130度起点,半径20)
可以看到,安全区的空间被大大压缩了,这还是建立在已知起始角是0度的情况,如果起始角不是0度,或者半径20码控制得不严格,都会对结果造成很大的影响(详情可见后文图)。
那么现在看来,形成你所说的理想圆形安全区需要的条件如下:
一、知道圈的起始角
二、根据起始角定下的严格跑圈路线
三、严格执行跑圈的路线
然后最终只能得到一个10码半径的安全区。
所以这么看来,几家公会的放弃这种看似最规整的跑法,选择离大团30码 参杂灵性跑位 是很有道理的
作为一个 闲的没事的 圣光数学家,昨晚也观摩了下M鸡蛋的炫酷技能,引用早上看到一篇帖子的模型,用Matlab画了个动图版本,可以随意感受一下
下图是静止放完圈的效果,其轮廓形成阿基米德螺线:
下图是正常速度直线移动放圈的效果:
圈的移动速度和人的移动速度都是可以调的,有兴趣的胖友可以找我要下源代码。
本来想试试3个圈一起跑结果计算量太大直接卡死了。。
另外还作了一个人物移动速度爆表的放圈效果, 化身追风少年
因为初始每60度会有一轮圈,每轮圈转动10度,共转动9次,从这几个图可以得到初步结论:
如果静止不动放圈,场地上的每一个位置都会至少有一个球的轨迹经过(除非相邻两线间距过大产生缝隙,实际很难出现这种情况)
如果正常速度放圈,移动方向圈会变得密集,从而导致其前进方向的圈扫过的角度比其身后的圈扫过的角度要大,因此身后方向只需少许横移即可躲过。 多普勒效应?
如果加速技能放圈,理想情况为紧紧跟着第一轮产生的圈,那么每个方向的球经过的轨迹都会很接近一条直线,只要严格放出第N与N+1轮圈的位置,那么这两轮圈之间将会有很大的空隙。 音障?
放圈的人的速度受两个制约条件:
一、若跟随前一轮圈,则必须慢于前一轮圈(上限)
二、必须在下一轮圈落地前离开爆炸范围(下限)
之前帖子中有人提出的弧线跑位效果(静坐标系)完成
动坐标系一想就可以知道效果,而程序上实现比较困难就不作模拟了。
静坐标系,正向转动90度放圈
静坐标系,反向转动90度放圈
可以看到效果并不理想
静坐标系,反向转动180度放圈
场地右侧同样出现了类似直线放圈的空隙,但跑位难度增加很多,显然不如直线跑位
效果同样没有想象中理想
附Matlab源代码,长慎点。
通过改变x1,y1至xt,yt的值即可改变 每一轮圈的位置,也侧面反映的人物移动速度和方向。
改变注释“球速”那一行中间的数字可以改变球的移动速度。
按需修改~
clear
axis([-40,60,-40,60])
hold on
% r=10;
% 想要弧线放圈则使用参数r*cosd(角度)为x赋值,使用r*sind(角度)为y赋值即可
x1=-20;
y1=0;
x2=-15;
y2=0;
x3=-10;
y3=0;
x4=-5;
y4=0;
x5=0;
y5=0;
x6=5;
y6=0;
x7=10;
y7=0;
x8=15;
y8=0;
x9=20;
y9=0;
xt=25;
yt=0;
% 直线轨迹部分,有需要可以取消注释
% plot([x1,x1+100*cosd(60)],[y1,y1+100*sind(60)],'b')
% plot([x2,x2+100*cosd(70)],[y2,y2+100*sind(70)],'b')
% plot([x3,x3+100*cosd(80)],[y3,y3+100*sind(80)],'b')
% plot([x4,x4+100*cosd(90)],[y4,y4+100*sind(90)],'b')
% plot([x5,x5+100*cosd(100)],[y5,y5+100*sind(100)],'b')
% plot([x6,x6+100*cosd(110)],[y6,y6+100*sind(110)],'b')
% plot([x7,x7+100*cosd(120)],[y7,y7+100*sind(120)],'b')
% plot([x8,x8+100*cosd(130)],[y8,y8+100*sind(130)],'b')
% plot([x9,x9+100*cosd(140)],[y9,y9+100*sind(140)],'b')
% plot([xt,xt+100*cosd(150)],[yt,yt+100*sind(150)],'b')
% plot([x1,x1+50*cosd(0)],[y1,y1+50*sind(0)],'b')
% plot([x2,x2+50*cosd(10)],[y2,y2+50*sind(10)],'b')
% plot([x3,x3+50*cosd(20)],[y3,y3+50*sind(20)],'b')
% plot([x4,x4+50*cosd(30)],[y4,y4+50*sind(30)],'b')
% plot([x5,x5+50*cosd(40)],[y5,y5+50*sind(40)],'b')
% plot([x6,x6+50*cosd(50)],[y6,y6+50*sind(50)],'b')
% plot([x7,x7+50*cosd(60)],[y7,y7+50*sind(60)],'b')
% plot([x8,x8+100*cosd(70)],[y8,y8+100*sind(70)],'b')
% plot([x9,x9+100*cosd(80)],[y9,y9+100*sind(80)],'b')
% plot([xt,xt+100*cosd(90)],[yt,yt+100*sind(90)],'b')
h11 = plot(x1,y1,'or');
h21 = plot(x1,y1,'or');
h31 = plot(x1,y1,'or');
h41 = plot(x1,y1,'or');
h51 = plot(x1,y1,'or');
h61 = plot(x1,y1,'or');
h12 = plot(x2,y2,'or');
h22 = plot(x2,y2,'or');
h32 = plot(x2,y2,'or');
h42 = plot(x2,y2,'or');
h52 = plot(x2,y2,'or');
h62 = plot(x2,y2,'or');
h13 = plot(x3,y3,'or');
h23 = plot(x3,y3,'or');
h33 = plot(x3,y3,'or');
h43 = plot(x3,y3,'or');
h53 = plot(x3,y3,'or');
h63 = plot(x3,y3,'or');
h14 = plot(x4,y4,'or');
h24 = plot(x4,y4,'or');
h34 = plot(x4,y4,'or');
h44 = plot(x4,y4,'or');
h54 = plot(x4,y4,'or');
h64 = plot(x4,y4,'or');
h15 = plot(x5,y5,'or');
h25 = plot(x5,y5,'or');
h35 = plot(x5,y5,'or');
h45 = plot(x5,y5,'or');
h55 = plot(x5,y5,'or');
h65 = plot(x5,y5,'or');
h16 = plot(x6,y6,'or');
h26 = plot(x6,y6,'or');
h36 = plot(x6,y6,'or');
h46 = plot(x6,y6,'or');
h56 = plot(x6,y6,'or');
h66 = plot(x6,y6,'or');
h17 = plot(x7,y7,'or');
h27 = plot(x7,y7,'or');
h37 = plot(x7,y7,'or');
h47 = plot(x7,y7,'or');
h57 = plot(x7,y7,'or');
h67 = plot(x7,y7,'or');
h18 = plot(x8,y8,'or');
h28 = plot(x8,y8,'or');
h38 = plot(x8,y8,'or');
h48 = plot(x8,y8,'or');
h58 = plot(x8,y8,'or');
h68 = plot(x8,y8,'or');
h19 = plot(x9,y9,'or');
h29 = plot(x9,y9,'or');
h39 = plot(x9,y9,'or');
h49 = plot(x9,y9,'or');
h59 = plot(x9,y9,'or');
h69 = plot(x9,y9,'or');
h1t = plot(xt,yt,'or');
h2t = plot(xt,yt,'or');
h3t = plot(xt,yt,'or');
h4t = plot(xt,yt,'or');
h5t = plot(xt,yt,'or');
h6t = plot(xt,yt,'or');
z=0:0.2:500;%球速,改变中间的数字即可改变球速
a=35:35:340;
for i = 1:500
set(h11,'Xdata',z(i)+x1,'Ydata',0+y1);
set(h21,'Xdata',z(i)*cosd(60)+x1,'Ydata',z(i)*sind(60)+y1);
set(h31,'Xdata',z(i)*cosd(120)+x1,'Ydata',z(i)*sind(120)+y1);
set(h41,'Xdata',z(i)*cosd(180)+x1,'Ydata',z(i)*sind(180)+y1);
set(h51,'Xdata',z(i)*cosd(240)+x1,'Ydata',z(i)*sind(240)+y1);
set(h61,'Xdata',z(i)*cosd(300)+x1,'Ydata',z(i)*sind(300)+y1);
if i>=a(1)
set(h12,'Xdata',z(i-a(1)+1)*cosd(10)+x2,'Ydata',z(i-a(1)+1)*sind(10)+y2);
set(h22,'Xdata',z(i-a(1)+1)*cosd(60+10)+x2,'Ydata',z(i-a(1)+1)*sind(60+10)+y2);
set(h32,'Xdata',z(i-a(1)+1)*cosd(120+10)+x2,'Ydata',z(i-a(1)+1)*sind(120+10)+y2);
set(h42,'Xdata',z(i-a(1)+1)*cosd(180+10)+x2,'Ydata',z(i-a(1)+1)*sind(180+10)+y2);
set(h52,'Xdata',z(i-a(1)+1)*cosd(240+10)+x2,'Ydata',z(i-a(1)+1)*sind(240+10)+y2);
set(h62,'Xdata',z(i-a(1)+1)*cosd(300+10)+x2,'Ydata',z(i-a(1)+1)*sind(300+10)+y2);
end
if i>=a(2)
set(h13,'Xdata',z(i-a(2)+1)*cosd(20)+x3,'Ydata',z(i-a(2)+1)*sind(20)+y3);
set(h23,'Xdata',z(i-a(2)+1)*cosd(60+20)+x3,'Ydata',z(i-a(2)+1)*sind(60+20)+y3);
set(h33,'Xdata',z(i-a(2)+1)*cosd(120+20)+x3,'Ydata',z(i-a(2)+1)*sind(120+20)+y3);
set(h43,'Xdata',z(i-a(2)+1)*cosd(180+20)+x3,'Ydata',z(i-a(2)+1)*sind(180+20)+y3);
set(h53,'Xdata',z(i-a(2)+1)*cosd(240+20)+x3,'Ydata',z(i-a(2)+1)*sind(240+20)+y3);
set(h63,'Xdata',z(i-a(2)+1)*cosd(300+20)+x3,'Ydata',z(i-a(2)+1)*sind(300+20)+y3);
end
if i>=a(3)
set(h14,'Xdata',z(i-a(3)+1)*cosd(30)+x4,'Ydata',z(i-a(3)+1)*sind(30)+y4);
set(h24,'Xdata',z(i-a(3)+1)*cosd(60+30)+x4,'Ydata',z(i-a(3)+1)*sind(60+30)+y4);
set(h34,'Xdata',z(i-a(3)+1)*cosd(120+30)+x4,'Ydata',z(i-a(3)+1)*sind(120+30)+y4);
set(h44,'Xdata',z(i-a(3)+1)*cosd(180+30)+x4,'Ydata',z(i-a(3)+1)*sind(180+30)+y4);
set(h54,'Xdata',z(i-a(3)+1)*cosd(240+30)+x4,'Ydata',z(i-a(3)+1)*sind(240+30)+y4);
set(h64,'Xdata',z(i-a(3)+1)*cosd(300+30)+x4,'Ydata',z(i-a(3)+1)*sind(300+30)+y4);
end
if i>=a(4)
set(h15,'Xdata',z(i-a(4)+1)*cosd(40)+x5,'Ydata',z(i-a(4)+1)*sind(40)+y5);
set(h25,'Xdata',z(i-a(4)+1)*cosd(60+40)+x5,'Ydata',z(i-a(4)+1)*sind(60+40)+y5);
set(h35,'Xdata',z(i-a(4)+1)*cosd(120+40)+x5,'Ydata',z(i-a(4)+1)*sind(120+40)+y5);
set(h45,'Xdata',z(i-a(4)+1)*cosd(180+40)+x5,'Ydata',z(i-a(4)+1)*sind(180+40)+y5);
set(h55,'Xdata',z(i-a(4)+1)*cosd(240+40)+x5,'Ydata',z(i-a(4)+1)*sind(240+40)+y5);
set(h65,'Xdata',z(i-a(4)+1)*cosd(300+40)+x5,'Ydata',z(i-a(4)+1)*sind(300+40)+y5);
end
if i>=a(5)
set(h16,'Xdata',z(i-a(5)+1)*cosd(50)+x6,'Ydata',z(i-a(5)+1)*sind(50)+y6);
set(h26,'Xdata',z(i-a(5)+1)*cosd(60+50)+x6,'Ydata',z(i-a(5)+1)*sind(60+50)+y6);
set(h36,'Xdata',z(i-a(5)+1)*cosd(120+50)+x6,'Ydata',z(i-a(5)+1)*sind(120+50)+y6);
set(h46,'Xdata',z(i-a(5)+1)*cosd(180+50)+x6,'Ydata',z(i-a(5)+1)*sind(180+50)+y6);
set(h56,'Xdata',z(i-a(5)+1)*cosd(240+50)+x6,'Ydata',z(i-a(5)+1)*sind(240+50)+y6);
set(h66,'Xdata',z(i-a(5)+1)*cosd(300+50)+x6,'Ydata',z(i-a(5)+1)*sind(300+50)+y6);
end
if i>=a(6)
set(h17,'Xdata',z(i-a(6)+1)*cosd(60)+x7,'Ydata',z(i-a(6)+1)*sind(60)+y7);
set(h27,'Xdata',z(i-a(6)+1)*cosd(60+60)+x7,'Ydata',z(i-a(6)+1)*sind(60+60)+y7);
set(h37,'Xdata',z(i-a(6)+1)*cosd(120+60)+x7,'Ydata',z(i-a(6)+1)*sind(120+60)+y7);
set(h47,'Xdata',z(i-a(6)+1)*cosd(180+60)+x7,'Ydata',z(i-a(6)+1)*sind(180+60)+y7);
set(h57,'Xdata',z(i-a(6)+1)*cosd(240+60)+x7,'Ydata',z(i-a(6)+1)*sind(240+60)+y7);
set(h67,'Xdata',z(i-a(6)+1)*cosd(300+60)+x7,'Ydata',z(i-a(6)+1)*sind(300+60)+y7);
end
if i>=a(7)
set(h18,'Xdata',z(i-a(7)+1)*cosd(70)+x8,'Ydata',z(i-a(7)+1)*sind(70)+y8);
set(h28,'Xdata',z(i-a(7)+1)*cosd(60+70)+x8,'Ydata',z(i-a(7)+1)*sind(60+70)+y8);
set(h38,'Xdata',z(i-a(7)+1)*cosd(120+70)+x8,'Ydata',z(i-a(7)+1)*sind(120+70)+y8);
set(h48,'Xdata',z(i-a(7)+1)*cosd(180+70)+x8,'Ydata',z(i-a(7)+1)*sind(180+70)+y8);
set(h58,'Xdata',z(i-a(7)+1)*cosd(240+70)+x8,'Ydata',z(i-a(7)+1)*sind(240+70)+y8);
set(h68,'Xdata',z(i-a(7)+1)*cosd(300+70)+x8,'Ydata',z(i-a(7)+1)*sind(300+70)+y8);
end
if i>=a(8)
set(h19,'Xdata',z(i-a(8)+1)*cosd(80)+x9,'Ydata',z(i-a(8)+1)*sind(80)+y9);
set(h29,'Xdata',z(i-a(8)+1)*cosd(60+80)+x9,'Ydata',z(i-a(8)+1)*sind(60+80)+y9);
set(h39,'Xdata',z(i-a(8)+1)*cosd(120+80)+x9,'Ydata',z(i-a(8)+1)*sind(120+80)+y9);
set(h49,'Xdata',z(i-a(8)+1)*cosd(180+80)+x9,'Ydata',z(i-a(8)+1)*sind(180+80)+y9);
set(h59,'Xdata',z(i-a(8)+1)*cosd(240+80)+x9,'Ydata',z(i-a(8)+1)*sind(240+80)+y9);
set(h69,'Xdata',z(i-a(8)+1)*cosd(300+80)+x9,'Ydata',z(i-a(8)+1)*sind(300+80)+y9);
end
if i>=a(9)
set(h1t,'Xdata',z(i-a(9)+1)*cosd(90)+xt,'Ydata',z(i-a(9)+1)*sind(90)+yt);
set(h2t,'Xdata',z(i-a(9)+1)*cosd(60+90)+xt,'Ydata',z(i-a(9)+1)*sind(60+90)+yt);
set(h3t,'Xdata',z(i-a(9)+1)*cosd(120+90)+xt,'Ydata',z(i-a(9)+1)*sind(120+90)+yt);
set(h4t,'Xdata',z(i-a(9)+1)*cosd(180+90)+xt,'Ydata',z(i-a(9)+1)*sind(180+90)+yt);
set(h5t,'Xdata',z(i-a(9)+1)*cosd(240+90)+xt,'Ydata',z(i-a(9)+1)*sind(240+90)+yt);
set(h6t,'Xdata',z(i-a(9)+1)*cosd(300+90)+xt,'Ydata',z(i-a(9)+1)*sind(300+90)+yt);
end
pause(0.01); % 调整速度
end
hold off
来自NGA 作者糖灬小熊