查看: 74|回复: 0

[转载发布] 波浪式图像扭曲

[复制链接]
  • TA的每日心情
    开心
    10 小时前
  • 签到天数: 37 天

    连续签到: 3 天

    [LV.5]常住居民I

    2028

    主题

    32

    回帖

    7260

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    0
    卡币
    5184
    OK点
    16
    积分
    7260
    发表于 同元一千年八月五日(秋) | 显示全部楼层 |阅读模式


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

    原图对比
    1. #==============================================================================# ■ 简谐波式图像扭曲#==============================================================================class Wave  #============================================================================  # ■ 参数  #============================================================================  # b 图像的完整路径及其名称  # o 质点的平衡位置及其坐标;用[x, y]表示。  # a 简谐运动的振幅  # f 简谐运动的频率  #============================================================================  def initialize(b, o, a, f)    @bitmap = Bitmap.new(b)    @sprite = []    for i in [email protected]      @sprite[i] = Sprite.new      @sprite[i].x = o[0]      @sprite[i].y = i + o[1]      @sprite[i].bitmap = @bitmap      @sprite[i].src_rect.set(0, i, @bitmap.width, 1)      r = (2 * Math::PI * f * i) / 180 / Math::PI      @sprite[i].x += a * Math.sin(r)    end    @amp = a    @x = {}  end  #============================================================================  # ■ 刷新  #============================================================================  def update    for i in [email protected]      @x[i] = @sprite[i].x    end    for i in [email protected]      if i + 1 == @sprite.size        @sprite[i].x = @x[0]        next      end      @sprite[i].x = @x[i + 1]    end  end  #============================================================================  # ■ 释放  #============================================================================  def dispose    for i in @sprite      i.bitmap.dispose      i.dispose      i = 0    end    @sprite = []    @bitmap.dispose    @bitmap = nil  endendw = Wave.new("Plain.png", [50, 0], 20, 15)loop do  Graphics.update  w.updateend复制代码
    复制代码
                本帖来自P1论坛作者恐惧剑刃,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=367816  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    天天去同能,天天有童年!
    回复 论坛版权

    使用道具 举报

    ahome_bigavatar:guest
    ahome_bigavatar:welcomelogin
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2024-5-10 20:33 , Processed in 0.053233 second(s), 47 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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