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

Project1

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

[已经解决] [Cache类问题]关于bitmap

[复制链接]

Lv1.梦旅人

梦石
0
星屑
49
在线时间
157 小时
注册时间
2013-8-14
帖子
203
跳转到指定楼层
1
发表于 2013-8-23 00:23:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 九靈 于 2013-8-23 00:26 编辑

源代码
RUBY 代码复制
  1. @Cache={}
  2.     def self.load_bitmap(folder_name, filename, hue = 0)
  3.       path = folder_name + filename
  4.       if not @cache.include?(path) or @cache[path].disposed?
  5.         if filename != ""
  6.           @cache[path] = Bitmap.new(path)
  7.         else
  8.           @cache[path] = Bitmap.new(32, 32)
  9.         end
  10.       end
  11.        if hue == 0
  12.         @cache[path]
  13.       else

问题:
第7、8行的
else
@cache[path] = Bitmap.new(32, 32)
用意何在?
如果 filename = "" 不理他不行吗?
非要加个 @cache[path] = Bitmap.new(32, 32)
而且 32*32 是......有特殊意义吗?
   

Lv1.梦旅人

路人党员

梦石
0
星屑
52
在线时间
2276 小时
注册时间
2010-12-30
帖子
3225
2
发表于 2013-8-23 00:43:26 | 只看该作者
本帖最后由 英顺的马甲 于 2013-8-23 00:44 编辑

来个假设吧
  1. s = Sprite.new
  2. s.bitmap = RPG::Cache.picture("")
复制代码
当filename为""的时候不去理会的话这段脚本就会出错,
因为它不会返回一个bitmap的类。
至于为啥是32*32没啥意义,别去纠结了==

评分

参与人数 1星屑 +100 收起 理由
︶ㄣ牛排ぶ + 100 认可答案

查看全部评分

本人擅长XP,如果有脚本或者Ruby方面的问题欢迎发电邮到[email protected]咨询,本人很少检查电邮所以不一定会及时回复,本人不会直接出手解决问题只会提供一个方向,所以谢绝伸手党
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
157 小时
注册时间
2013-8-14
帖子
203
3
 楼主| 发表于 2013-8-23 01:13:01 | 只看该作者
英顺的马甲 发表于 2013-8-23 00:43
来个假设吧当filename为""的时候不去理会的话这段脚本就会出错,
因为它不会返回一个bitmap的类。
至于为啥 ...

谢谢!
也就是说
else
          @cache[path] = Bitmap.new(32, 32)
是为了让 Scene_Title 类的 @sprite.bitmap 存在而设计的是吗?
因为后面有个 @sprite.bitmap.dispose
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
466 小时
注册时间
2013-2-8
帖子
424
4
发表于 2013-8-23 08:01:39 手机端发表。 | 只看该作者
地空图块引用的就是这个,用32*32好像是效率最高的

点评

地图块...  发表于 2013-8-23 13:46
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
157 小时
注册时间
2013-8-14
帖子
203
5
 楼主| 发表于 2013-8-23 13:22:45 | 只看该作者
那在这里@cache[path] = Bitmap.new(32, 32)的用意是为了防止异常发生
何不用 1*1 ?
好像 1*1 效率更高
至于地图块...不知道为什么会说到地图块= =
这里是 标题画面不是?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
76
在线时间
1379 小时
注册时间
2012-7-5
帖子
1698

开拓者

6
发表于 2013-8-23 13:58:34 | 只看该作者
32*32确实是一个图块的大小,某些窗口类里面也使用了Bitmap做一个没用的32*32的空图片然后可以使用Bitmap的一些功能比如绘制文字draw_text

  -fk: -azogi:
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
555
在线时间
1286 小时
注册时间
2011-6-14
帖子
4086
7
发表于 2013-8-23 14:20:26 | 只看该作者
九靈 发表于 2013-8-23 13:22
那在这里@cache = Bitmap.new(32, 32)的用意是为了防止异常发生
何不用 1*1 ?
好像 1*1 效率更高

用1×1的远景图(平铺)直接后果是卡死电脑不偿命,所以要32×32,节约大量的绘制时间:
32×32的远景图绘制次数为20×15=600次;1×1的远景图绘制次数为640×480=307200……

点评

原来如此  发表于 2013-8-23 15:14
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-21 13:57

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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