设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3726|回复: 5
打印 上一主题 下一主题

[原创发布] 波浪式图像扭曲

[复制链接]

Lv1.梦旅人

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
帖子
1316
跳转到指定楼层
1
发表于 2014-7-8 01:51:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 恐惧剑刃 于 2014-7-9 09:49 编辑



我记得玩过什么赞美诗那个游戏(请原谅我没记住名字),战斗背景是动态扭曲的,当时就感觉高大上!
不过总算是简单的实现了此功能~!欢迎测试。
百度盘下载范例工程
截图什么的真为难我(不会制GIF)。。

原图对比
  1. #==============================================================================
  2. # ■ 简谐波式图像扭曲
  3. #==============================================================================
  4. class Wave
  5.   #============================================================================
  6.   # ■ 参数
  7.   #============================================================================
  8.   # b 图像的完整路径及其名称
  9.   # o 质点的平衡位置及其坐标;用[x, y]表示。
  10.   # a 简谐运动的振幅
  11.   # f 简谐运动的频率
  12.   #============================================================================
  13.   def initialize(b, o, a, f)
  14.     @bitmap = Bitmap.new(b)
  15.     @sprite = []
  16.     for i in [email protected]
  17.       @sprite[i] = Sprite.new
  18.       @sprite[i].x = o[0]
  19.       @sprite[i].y = i + o[1]
  20.       @sprite[i].bitmap = @bitmap
  21.       @sprite[i].src_rect.set(0, i, @bitmap.width, 1)
  22.       r = (2 * Math::PI * f * i) / 180 / Math::PI
  23.       @sprite[i].x += a * Math.sin(r)
  24.     end
  25.     @amp = a
  26.     @x = {}
  27.   end
  28.   #============================================================================
  29.   # ■ 刷新
  30.   #============================================================================
  31.   def update
  32.     for i in [email protected]
  33.       @x[i] = @sprite[i].x
  34.     end
  35.     for i in [email protected]
  36.       if i + 1 == @sprite.size
  37.         @sprite[i].x = @x[0]
  38.         next
  39.       end
  40.       @sprite[i].x = @x[i + 1]
  41.     end
  42.   end
  43.   #============================================================================
  44.   # ■ 释放
  45.   #============================================================================
  46.   def dispose
  47.     for i in @sprite
  48.       i.bitmap.dispose
  49.       i.dispose
  50.       i = 0
  51.     end
  52.     @sprite = []
  53.     @bitmap.dispose
  54.     @bitmap = nil
  55.   end
  56. end

  57. w = Wave.new("Plain.png", [50, 0], 20, 15)
  58. loop do
  59.   Graphics.update
  60.   w.update
  61. end
复制代码

评分

参与人数 1星屑 +50 收起 理由
taroxd + 50 正弦才对嘛

查看全部评分

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

2
发表于 2014-7-8 06:44:06 | 只看该作者
喵~
其实我觉得,波浪果然还是用正弦比较好吧……
简谐振动啊~

点评

没办法我还是复习下公式吧~囧……其实我想过让后一个“质点”走前一个“质点”的轨迹类似“角色跟随”不知道会不会好一点  发表于 2014-7-8 06:56
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

3
发表于 2014-7-8 08:26:15 | 只看该作者
这个···被扭曲前是什么样子···不能发来做个对比吗
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

4
发表于 2014-7-9 17:43:06 | 只看该作者
不对啊,Sprite 不是自带 wave_amp 之类的东西吗?

点评

我试了下提示 NoMethodError 错误  发表于 2014-7-9 21:18
我用VA -。-  发表于 2014-7-9 21:12
我记得是ACE特有  发表于 2014-7-9 21:07
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
45 小时
注册时间
2010-8-21
帖子
53
5
发表于 2014-7-10 15:19:38 | 只看该作者
看上去效果不错啊值得借鉴,果断下载,但可惜了脚本能力实在鸡肋,还不知道可不可以用的了。谢谢大侠的范例!~~~~
只能继续做伸手党,泪奔飞过~~~~~~~~~
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3444
在线时间
3054 小时
注册时间
2011-11-17
帖子
980
6
发表于 2014-7-10 22:40:12 | 只看该作者
有点shader的赶脚了

点评

还差得远呢 其实就改了个X坐标  发表于 2014-7-11 11:19
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-15 00:26

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表