赞 | 0 |
VIP | 36 |
好人卡 | 18 |
积分 | 1 |
经验 | 7201 |
最后登录 | 2012-7-7 |
在线时间 | 154 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 154 小时
- 注册时间
- 2011-7-9
- 帖子
- 423
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
其实很烂的算法,以Y坐标建立X个精灵类的分割图片,2张时FPS:25(内存:128MB)
下载地址:
11.rar
(3.58 MB, 下载次数: 85)
- #==============================================================================
- # ■ Sprite_Draw_3D
- # 中文名:梯形(扭曲)位图
- # 作者:END66RPG
- # 原理:以X坐标分成WIDTH个精灵位图,每个精灵进行Y轴缩小.
- # 因此,图片太大会较卡.可以改成1个SPRITE这样不卡,不过大概不行.
- #------------------------------------------------------------------------------
- # mirror = 左(false)右(true)
- # name = 图片名字
- #==============================================================================
- class Sprite_Draw_3D < Sprite
- #--------------------------------------------------------------------------
- # ● 初始化对像
- # viewport : 显示端口
- #--------------------------------------------------------------------------
- def initialize(viewport,mirror=false,name="法帝斯回忆2")
- super(viewport)
- # 将活动块设置为可见
- @draw_name = name
- self.visible = false
- # 设置活动块的坐标
- self.x = 0
- self.y = 40
- self.z = 99
- self.bitmap = RPG::Cache.picture(@draw_name)
- self.mirror = mirror
- if mirror == false
- for i in 0..self.bitmap.width
- i = i
- eval(
- "
- @p#{i} = Sprite.new(viewport);
- @p#{i}.bitmap = RPG::Cache.picture(@draw_name);
- @p#{i}.x = self.x+i;
- @p#{i}.z = self.z;
- @p#{i}.y = self.y-(i.to_f/5);
- @p#{i}.src_rect.set(i, 0, 1, self.bitmap.height);
- @p#{i}.zoom_y = i.to_f / self.bitmap.width.to_f + 0.2
- "
- )
- #p""
- end
- else
- i = -1
- while i != self.bitmap.width
- i += 1
- eval(
- "
- @p#{i} = Sprite.new(viewport);
- @p#{i}.bitmap = RPG::Cache.picture(@draw_name);
- @p#{i}.x = self.x+i+220;
- @p#{i}.z = self.z;
- @p#{i}.y = self.y+(i.to_f/5)-22;
- @p#{i}.src_rect.set(i, 0, 1, self.bitmap.height);
- @p#{i}.zoom_y = (self.bitmap.width-i).to_f / self.bitmap.width.to_f + 0.2
- "
- )
- end
- end
- # update
- end
- #--------------------------------------------------------------------------
- # ● 释放
- #--------------------------------------------------------------------------
- def dispose
- if self.bitmap != nil
- for i in 0..self.bitmap.width
- eval(
- "
- @p#{i}.bitmap.dispose
- "
- )
- end
- self.bitmap.dispose
- end
- super
- end
- #--------------------------------------------------------------------------
- # ● 更新图片
- #--------------------------------------------------------------------------
- def update(name)
- @draw_name = name
- for i in 0..self.bitmap.width
- eval(
- "
- @p#{i}.bitmap = RPG::Cache.picture(@draw_name)
- "
- )
- end
- end
- end
复制代码 |
评分
-
查看全部评分
|