下载 App

[抛砖引玉]基于绝对值+扫描函数的轨迹通解

修改于07/29179 浏览攻略
前情提要:
在掌握了分段函数之后,我们可以设计一种设计方案,既保证通过复杂路径的准确度,又保证打击时的容错,这就是基于绝对值+扫描函数的设计方案,话不多说,开始教学。
1.设计路径函数
我们使用绝对值函数最擅长处理的折线作为路径,写下函数:
f(x)=0.5(A*2x+B1(abs(x-x1)+x-x1)+B2…+B3…)
为了得到正确的函数,我们需要:
a.预先设计一个折线
b.找出所有拐点
c.将拐点相对横坐标依次填入x1,x2…
d.计算斜率
e.计算斜率差,填入A,B1,B2…
关于突变
如果有地方不好走,可以在后面插入一个突变函数,不交给不擅长处理突变的绝对值处理,由于绝对值函数主要计算量斜率和统一的Δy无关,这一操作并不会增加运算量。
2.补充突变函数
事实上这和3往往是同时完成的,根据你希望插入突变的坐标t和突变量A,写下:
f(x)=A/(1+10^(10(t-x)))即可
3.设计扫描函数
当点移动到能看到敌人的时候,就该进行打击了,打击函数是形如(f(x)+g(x)sin(10x))*[ε(x-t1)-ε(x-t2)]的函数(如果只希望单侧扫描,则需要给sin加abs),对于f和g比较实用的组合有如下几种:
3.1水平扫描
f(x)=A,g(x)=B (A+Bsin(10x))
TapTap
3.2垂直扫描
f(x)=0,g(x)=A  (Aabs(sin(10x)))
TapTap
3.3直线扫描
如果水平和垂直角度都很刁钻,可以采用直线
f(x)=k(x-x1+x0)+y1-y0 g=A
TapTap
3.4三角扫描/梯形扫描
适用于入口狭窄但后续开阔的地形,可以产生一个三角形扫描区域:
f(x)=A g(x)=B(x-t1)
以及梯形区域
f(x)=A g(x)=B(x-t1)+C
TapTap
三角扫描
TapTap
半三角扫描
TapTap
梯形扫描
TapTap
半梯形扫描
当然以上函数需要限制作用区间
扫描函数的双作用域实现
如果出现多个可以使用相同扫描函数打击的区域,可以将他们合并:
TapTap
TapTap
*注意观察分母结构
双作用域进阶~击杀不处于相同y值的敌人
实现方案1:直线近似
好处是敲起来相对简单,但是计算量比较大
TapTap
方案二:阶跃函数
好处是比较好计算,坏处是敲起来慢一点
TapTap
猜你想搜
公式对决 轨迹通解
[重置版]公式对决PVP从入门到完结截图
[重置版]公式对决PVP从入门到完结
是的没错,看完这篇教程之后你将完全不需要任何其他攻略。本文预计阅读时间超过2小时,建议分段多次阅读。作为半教程半说明书性质的文章,欢迎反复温习与参考,话不多说,我们出发! 大纲 在这篇教程中,我们会讨论以下内容: 0. 游戏基本性质扫盲 什么样的函数是好函数?我们需要什么样的函数(第一章) 这些函数具体长什么样?如何使用简单的参数控制函数的变化(第二、三、四、五章) 在实战中,我们如何快速写出这
精华
40 赞
8 回复
一阶导数的基础应用截图
一阶导数的基础应用
简单了解导数的定义 d/dxf(x)=lim_(△x→0)(f(x0+△x)-f(x0))/△x 运用导数首先要记住一些基础函数的求导 在学习了之后,就可以开始运用导数了 一,基础,dy/dx=f(x)形式 f(x)不包含y 这种形式最简单,直接对原函数F(x)求导,忽略不必要常数 以下给出几种常用形式 d/dx(a^(x-b))=a^(x-b)*lna a为足够大的正数,b为打击点位
8 赞
5 回复
这类游戏的进阶技巧截图
这类游戏的进阶技巧
依旧是理论推导+实战指导,主要是三种 (前两个可以当做作者当时的脑瘫,不建议使用) ( 1.(注:这种打法局限性太大了,而且不可控,而且有更简单的方法解决,推荐看公式化打法,建议不要使用)指数函数进阶,主要是两点,首先是图一的向右拐弯,不用管右边的向上拐弯,先说函数y = n^(a-x),上期说过指数函数在指数大于0时会爆炸性增长,我们看一下这个函数的指数变化,当x≥0,且x<a时a-x是大于0的
6 赞
1 回复
【新手必看教程】数格子读取目标坐标截图
【新手必看教程】数格子读取目标坐标
正文:很多新人卡在第一步:不会正确读出目标、障碍物坐标,算出的函数永远打不准! 这篇讲清楚游戏画布网格规则,学会之后可以自主读取任意点位,自己列式推导弹道。 一、游戏画布基础参数(重点!90%新人踩坑) 1. 画布坐标轴范围 X轴:-25 ~ 25 Y轴:-14.6 ~ 14.6 2. 网格关键规则:1个格子 = 2.5单位距离 不要误以为一格=1!这是绝大多数人坐标出错的根源! 3. 坐标系
6 赞
2 回复
顶级理解分段,给看得懂的高手的高阶玩法:
0.5[2f0(x) + (f1(x-x1)-f1(0)-f0(x)+f0(x1))*(abs(x-x1)/(x-x1)+1) + (f2(x-x2)-f2(0)-f1(x-x1)+f1(x2-x1))*(abs(x-x2)/(x-x2)+1) + (f3(x-x3)-f3(0)-f2(x-x2)+f2(x3-x2))*(abs(x-x3)/(x-x3)+截图
顶级理解分段,给看得懂的高手的高阶玩法: 0.5[2f0(x) + (f1(x-x1)-f1(0)-f0(x)+f0(x1))*(abs(x-x1)/(x-x1)+1) + (f2(x-x2)-f2(0)-f1(x-x1)+f1(x2-x1))*(abs(x-x2)/(x-x2)+1) + (f3(x-x3)-f3(0)-f2(x-x2)+f2(x3-x2))*(abs(x-x3)/(x-x3)+
3 赞
6 回复
真拿大家没办法截图
真拿大家没办法
官方
19 赞
9 回复
一些简单公式和想法及思考过程截图
一些简单公式和想法及思考过程
(注:常数项忽略不计,结尾附上公式) 1.y=kx 玩此类游戏必须掌握的一个公式,也是最简单的,y=±kx,此处k为斜率 2.y=ax^2+bx 也是一个基本函数,但其实不常用 当遇到需要使用的时候,通过初中的知识可以得到一些技巧和方法 明确你与目标的横坐标距离,a=n/x^2,那么b=n/x,无需计算,直接输入即可 3.±a^(x-b) 指数函数的实用性就比二次函数大很多了,以下举几个简单例子 这
12 赞
93 回复
公式化打法截图
公式化打法
(注:玩家群里的大佬已经有更优秀的函数,本攻略只讲两种)这回讲讲公式化打法,在我和这个游戏的一位玩家@fw聊了一晚后,经过我的实战,总结出了更好用的公式。 先说公式: 1.y=a^(x-b) 2.y=a/(1+n^(b-x)) 第一个函数我在上一个攻略讲了,效果如图二。 这回重点讲第二个式子(效果如图一):关于这个公式的推导我写在图三上了,证明很简单,各个参数意义:a表示上升/下降的数量,n大一点
3 赞
145 回复
二次函数精讲截图
二次函数精讲
(祝贺公式对决一万热度)依旧入门帖,大佬帖其他人写,这次讲二次函数。 二次函数分一般式,交点式,顶点式。 一般式:y=ax^2+bx+c,抛去无能的常数项,丢去不可控的一次项,因为一次项管对称轴和最值,两个变量,不可控,最后剩下ax^2,怎么求a我在之前的攻略讲过,可以跳过,整理可得a=y/x^2,即只要知道二次函数经过的点就可以求a,由于局部坐标系原点在角色上,所以很轻松的搞定a,a=(y敌/x
8 赞
3 回复
二次函数基础+进阶截图
二次函数基础+进阶
二次函数的标准形式是 y=ax^2+bx+c 因为游戏中常数项没有用,所以简化成这样 y=ax^2+bx 要想使用二次函数击败敌人,必须先了解a,b的作用 首先,a的正负号控制开口方向,正为上,负为下 a的大小控制开口大小,a越接近0开口越大 -b/2a控制对称轴,b与对称轴有关系 一,基础运用,y=ax^2的形式 假设敌方坐标为(x0,y0) 方程为y0=ax0^2 a的解为y_0/x_0^2 所
1 赞
11 回复