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

Project1

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

[原创发布] 矩形位图转换梯形

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
154 小时
注册时间
2011-7-9
帖子
423
跳转到指定楼层
1
发表于 2011-8-20 08:19:54 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
其实很烂的算法,以Y坐标建立X个精灵类的分割图片,2张时FPS:25(内存:128MB)

下载地址: 11.rar (3.58 MB, 下载次数: 85)
  1. #==============================================================================
  2. # ■ Sprite_Draw_3D
  3. #    中文名:梯形(扭曲)位图
  4. #    作者:END66RPG
  5. #    原理:以X坐标分成WIDTH个精灵位图,每个精灵进行Y轴缩小.
  6. #         因此,图片太大会较卡.可以改成1个SPRITE这样不卡,不过大概不行.
  7. #------------------------------------------------------------------------------
  8. #    mirror = 左(false)右(true)
  9. #    name   = 图片名字
  10. #==============================================================================

  11. class Sprite_Draw_3D < Sprite
  12.   #--------------------------------------------------------------------------
  13.   # ● 初始化对像
  14.   #     viewport : 显示端口
  15.   #--------------------------------------------------------------------------
  16.   def initialize(viewport,mirror=false,name="法帝斯回忆2")
  17.     super(viewport)
  18.     # 将活动块设置为可见
  19.     @draw_name = name
  20.     self.visible = false
  21.     # 设置活动块的坐标
  22.     self.x = 0
  23.     self.y = 40
  24.     self.z = 99
  25.     self.bitmap = RPG::Cache.picture(@draw_name)
  26.     self.mirror = mirror
  27.     if mirror == false
  28.     for i in 0..self.bitmap.width
  29.       i = i
  30.       eval(
  31.       "
  32.       @p#{i} = Sprite.new(viewport);
  33.       @p#{i}.bitmap = RPG::Cache.picture(@draw_name);
  34.       @p#{i}.x = self.x+i;
  35.       @p#{i}.z = self.z;
  36.       @p#{i}.y = self.y-(i.to_f/5);
  37.       @p#{i}.src_rect.set(i, 0, 1, self.bitmap.height);
  38.       @p#{i}.zoom_y = i.to_f / self.bitmap.width.to_f + 0.2
  39.       "
  40.       )
  41.       #p""
  42.     end
  43.     else
  44.     i = -1
  45.     while i != self.bitmap.width
  46.       i += 1
  47.       eval(
  48.       "
  49.       @p#{i} = Sprite.new(viewport);
  50.       @p#{i}.bitmap = RPG::Cache.picture(@draw_name);
  51.       @p#{i}.x = self.x+i+220;
  52.       @p#{i}.z = self.z;
  53.       @p#{i}.y = self.y+(i.to_f/5)-22;
  54.       @p#{i}.src_rect.set(i, 0, 1, self.bitmap.height);
  55.       @p#{i}.zoom_y = (self.bitmap.width-i).to_f / self.bitmap.width.to_f + 0.2
  56.       "
  57.       )
  58.     end
  59.     end
  60.    # update
  61.   end
  62.   #--------------------------------------------------------------------------
  63.   # ● 释放
  64.   #--------------------------------------------------------------------------
  65.   def dispose
  66.     if self.bitmap != nil
  67.       for i in 0..self.bitmap.width
  68.       eval(
  69.       "
  70.       @p#{i}.bitmap.dispose
  71.       "
  72.       )
  73.       end
  74.     self.bitmap.dispose
  75.     end
  76.     super
  77.   end
  78.   #--------------------------------------------------------------------------
  79.   # ● 更新图片
  80.   #--------------------------------------------------------------------------
  81.   def update(name)
  82.     @draw_name = name
  83.     for i in 0..self.bitmap.width
  84.       eval(
  85.       "
  86.       @p#{i}.bitmap = RPG::Cache.picture(@draw_name)
  87.       "
  88.       )
  89.     end
  90.   end
  91. end
复制代码

评分

参与人数 1星屑 +20 收起 理由
R-零 + 20 超级支持

查看全部评分

New Game:  【QQ堂4.6单机版】(9月新版!【点此】)个人提供快速网盘http://ad.jlweb.tk/upload/ --- 密码:abcdefg
激零工作室孵化中.....网游make中。。招收游戏监督一名,上线时间:5~12 小时 招收脚本员,美工数位。。
本人Q:330639889 验证:zs    ----广:愿意帮我宣传签名的,站内PM
下面的东西是什么?!请进:http://tieba.baidu.com/p/1453289014【2012最新炸弹型ARPG游戏,历时2年间断坚持制作!】
[img=646,262]http://ftp.66rpg.com/WEB_PLUS/attachment/forum/201203/28/1655578kbk8bqkfazk2

Lv2.观梦者

梦石
0
星屑
381
在线时间
1398 小时
注册时间
2010-9-23
帖子
557
2
发表于 2011-8-20 09:21:27 | 只看该作者
好神奇的脚本,可以用来做时空扭曲的场景啊...

点评

嗯  发表于 2011-8-20 09:24
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-31 08:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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