Project1

标题: 如何才能扭曲图片 [打印本页]

作者: 认真的学    时间: 2012-3-17 13:14
标题: 如何才能扭曲图片
本帖最后由 认真的学 于 2012-3-17 13:15 编辑


原图↑

目的:将上图扭曲成上窄下宽的等腰梯形。

第一想法:使用set_pixel。
但是上图是用来做STG游戏的背景的,需要移动及动态拼接,用set_pixel的话效率很低下。

所以,有什么更好的方法让这张图片扭曲呢?

(更详细的问题也可见:http://rpg.blue/thread-221113-1-1.html)dsu_plus_rewardpost_czw
作者: hcm    时间: 2012-3-17 14:51
1.总觉得这个用PS更简单,用选框工具选中路面(如果路面站全图不选也行);
2.点键盘Ctrl+T变形工具,再按住Ctrl,用鼠标拖拽变形选框四个角的顶点(对准到鼠标箭头由黑色变为灰色时)
   可实现。
作者: TheRebirth    时间: 2012-3-18 22:15
可以参考否?(以下不完全脚本和过程)
先按照沙发说的做出一个静态图,然后↓
def initialize(??)
  略
  self.zoom_x = 0.01
  self.zoom_y = 0.01
end
def update
  super
  self.zoom_x += 0.01
  self.zoom_y += 0.01
  然后再在原位置添加一个这个地板,循环创建,移动,再创建,消失的过程.
end
这个是最简单易行的方法.
但如果要消灭锯齿和细节丢失的话,建议你学一下API,研究一下D3DX9.
作者: 各种压力的猫君    时间: 2012-3-19 04:38
本帖最后由 各种压力的猫君 于 2012-3-19 04:38 编辑

原始版本的RM不可能做到,RGSS脚本也不可能做到。
像你说的用set_pixel理论可行,实际上效率绝对惨死 ╮(╯_╰)╭
RGSS的Sprite不支持扭曲,很遗憾的Sprite不是Ruby来写的。
我们也没办法搞到这部分的源码除非eb!公开它。

想做非RPG类型的,横版格斗可以用2DFM。
还是老老实实用GAME MAKER,要么就自己写 ╮(╯_╰)╭

当然如果你坚持要用RM的话,也仅仅是把它当做一个壳子了。
写一堆DLL来扩充你需要的功能 ╮(╯_╰)╭ 是可行的。
将纯RGSS实现的双线性插值移植到C++之后通过RM调用DLL,
效率完全可以实时应用(一般配置上通常的缩放<0.02s就能搞定)

但扭曲精灵,而且内容还是动态的……即使实现了也需要主流配置才带的起来了。
作者: 冰舞蝶恋    时间: 2012-3-19 21:10
快使用PHOTOSHOP,哼哼哈嘿!
作者: end55rpg    时间: 2012-4-3 18:38
我做过一次,fps虽不是40但也只有20多了。
就是建立宽个等高的矩形然后依次改变zoom即可。
这是我最初的想法了
作者: 忧雪の伤    时间: 2012-4-3 18:40
本帖最后由 忧雪の伤 于 2012-4-3 18:40 编辑

RGE 欢迎您。
作者: imy2012    时间: 2012-4-14 15:02
看看~~~




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