Project1

标题: 简单的画面变换 12.24更新:优化旋转算法 [打印本页]

作者: 浮云半仙    时间: 2016-12-23 20:53
标题: 简单的画面变换 12.24更新:优化旋转算法
本帖最后由 浮云半仙 于 2016-12-24 08:35 编辑

就是一个位图进行变换(可以是整个游戏画面)
目前做了:反色,倒转,旋转(逆时针反向)。缩放,模糊什么的没写0,0

特点:很快。在我的奔腾E5500上,整个画面每等待3帧旋转3度也能流畅完成。

原理:
手动实现了一个C语言指针库,直接读写Bitmap对象的像素内存。旋转操作使用c语言实现(范例工程里面给了一个SceneRotate.c和SceneRotate.dll)(之前用ruby是在惨不忍睹..还是要向兰兰姐姐学习学习)

12.24更新:优化了旋转算法,解决了出现昨天旋转出现黑点的问题。

放图:




优化前:


优化后:



涉及的脚本比较多,还有个dll,就全都放到范例工程好了。

范例工程12.24更新: RotateTest.zip (1.45 MB, 下载次数: 126)

如有其余bug请联系作者0.0
作者: asdxjp233    时间: 2016-12-23 21:42
请问? 这个有什么用呢.....
作者: mxymxy    时间: 2016-12-23 22:10
图像旋转和缩放,要想没黑点的话建议用插值算法。
常用的双线性插值,取目标点周围四点,根据距离远近定为权值直接平均。
作者: imsy    时间: 2016-12-23 22:24
如果能写一个高效率的旋转图片的方法就很棒
作者: asdxjp233    时间: 2016-12-23 23:05
可以做恐怖游戏吗.........

作者: 浮云半仙    时间: 2016-12-24 08:37
UDP:12.24更新,解决旋转出现黑点的问题。已编辑1L。
作者: 雾影药师    时间: 2016-12-24 11:29
图片似乎会糊?
作者: Im剑侠客    时间: 2016-12-25 19:58
画面旋转之后,操作按键是保存原状?还是跟着变换?这种效果挺不错的,我觉得为了颠倒世界的代入感,就需要这功能,话说楼主会有XP版本吗?
作者: 浮云半仙    时间: 2016-12-25 21:42
Im剑侠客 发表于 2016-12-25 19:58
画面旋转之后,操作按键是保存原状?还是跟着变换?这种效果挺不错的,我觉得为了颠倒世界的代入感,就需要 ...

应该还会有更新的,旋转之后能够按旋转后的地图行走这个已经能做到了(几乎就是个伪3d脚本了)但是在我的电脑上很卡.....还要优化
在xp上...应该只需要实现个Graphics.snap_to_bitmap就好了》。。
作者: fux2    时间: 2016-12-25 22:56
直接矩阵旋转的吗,全是黑点……这样旋转根本不可能用啊。

----------------------------
原来今天解决了黑点问题,但感觉算法似乎还没有sprite自带的旋转优?
总之反色和倒转比较有用,相比之下旋转就鸡肋了。
作者: Im剑侠客    时间: 2016-12-29 00:16
浮云半仙 发表于 2016-12-25 21:42  应该还会有更新的,旋转之后能够按旋转后的地图行走这个已经能做到了(几乎就是个伪3d脚本了)但是在我的 ...

或许是在下奢望了~刚刚测试了一下,原来是静态的画面啊。不能够在保持效果的同时进行游戏么?〒_〒
作者: 浮云半仙    时间: 2016-12-29 06:49
Im剑侠客 发表于 2016-12-29 00:16
或许是在下奢望了~刚刚测试了一下,原来是静态的画面啊。不能够在保持效果的同时进行游戏么?〒_〒 ...

可以的呀,我本地已经做到了但是没有发到这里,因为很卡。在旋转之后的地图上走的时候明显慢了许多...




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1