论加框 减框 异形框(一.加框)
首先,框是很常见的。以最简单的角色框来说,框一般具有一下两种特征:
1. 长
(资料图片)
这个不难理解,框就是一个近似意义上的长方形,而说到长方形就不得不联想到对角线,距离等等(没学好初中知识的自己滚去学)
再抽象一点可以说成是“两点一线,四线一框”
说白了一个框由四个边组成,当然长边也算
2. 宽
理解了长那么宽也好说了
只不过别把框完全当作框了,当四边形旋转之后的极高与极低是完全不一样的
最后,我们还有一点要注意,方向是最重要也是最让人头大的地方,问题不在绘制而是在于判定,因此抽象的看做一个“平面直角坐标系”,利用公式两点确立一线便可求得每条直线的函数解析式了,因此便可直接带入了。以图形编程的画笔为例可以近似理解为:
绘制框(向编译器声明并做好主函数)
设置画笔粗细(大小)-------函数1
设置画笔颜色
移到原点O 面向角度1 //函数2
重复执行(距离)次 //函数3
{ 将面向角度1
行动(距离)步
输出返回值
结束
}
以上便是一个边绘制的例子(如果是软件或结束方面的差异就用自己熟悉的来吧,此处只是Xuncha的个人构思)
再打个比方以GMS2为例
绘制的脚本为
Draw_sprite(sgr_pixel,0,x,y)
script_exists(scr);检查脚本是否存在
script_get_name(scr);获取脚本名
script_execute(scr, arg0, arg1, arg2..., etc...);调用脚本
script_execute(scr, array_args, [offset], [num_args]); 使用数组参数调用脚本
注:本人是GMS2新手
学会绘制以后第一步便要学会纯画笔
1. 为什么使用纯画笔
A. 以为软件差异使用纯画笔是为了更好的区分图层,谁也不想整个画面杂乱无章
B. 角色过多反而到后面自己都看不过来了
C. 克隆对内存和计算的要求过大例如:
我要10000个苹果,克隆会单独计算出10000个苹果
而画笔却省略了这一步
2. 图形编程或其他编程语言(C++ java GMS等)
还是强调 此处只是Xuncha的个人构思
回归正题
画笔总之就是可以多层绘制
那么加框减框是如何实现的呢
这很好理解
加框可以理解成加上一个框,例如1个框加1个框等于2个框,我们可以用数据列表来表示:
1. 左上x
2. 左下y
3.右下x
4.右下y
5.方向
这时可能有人要问了,如何让编译器自动识别框的个数呢
难道要设一个框的个数的变量?
不,我们只需要用最简单的除法就可以啊!
但这就要用到一个(框值)了
同上
设置主函数
设置画笔粗细(大小)-------函数1
设置画笔颜色
将框值设为1
重复执行(框)列表的项目数 / 5 ) 5为框的项目个数
{
移到(A,B)落笔
移到(C,B)
移到(C,D)
移到(A,D)
移到(A,B)----原点
抬笔
}
备注:此处过于麻烦边简略一些
此时列表信息因该为:
1.左上x 列表的第(框值)+ 1 项 A
2.左上y 列表的第(框值)+ 2 项 B
3.右下x 列表的第(框值)+ 3 项 C
4.右下y 列表的第(框值)+ 4 项 D
5.方向 列表的第(框值)+ 5 项 E
这样,当你的列表里有10个 15个及以上个项时
编译器便会自动识别框的个数,便可完成加框运算
以上仅为我个人观点不喜勿喷