Project1
标题: SceneManager.snapshot_for_background这有什么用? [打印本页]
作者: 九靈 时间: 2014-8-11 12:34
标题: SceneManager.snapshot_for_background这有什么用?
Scene_Title
#--------------------------------------------------------------------------
# ● 结束处理
#--------------------------------------------------------------------------
def terminate
super
SceneManager.snapshot_for_background
dispose_background
dispose_foreground
end
Scene_Title
#--------------------------------------------------------------------------
# ● 结束处理
#--------------------------------------------------------------------------
def terminate
super
SceneManager.snapshot_for_background
dispose_background
dispose_foreground
end
#--------------------------------------------------------------------------
# ● 生成背景用的场景截图
#--------------------------------------------------------------------------
def self.snapshot_for_background
@background_bitmap.dispose if @background_bitmap
@background_bitmap = Graphics.snap_to_bitmap
@background_bitmap.blur
end
#--------------------------------------------------------------------------
# ● 生成背景用的场景截图
#--------------------------------------------------------------------------
def self.snapshot_for_background
@background_bitmap.dispose if @background_bitmap
@background_bitmap = Graphics.snap_to_bitmap
@background_bitmap.blur
end
F1
Graphics.snap_to_bitmap
将当前游戏画面截图存为位图对象。
所指向的是显现出来的图像,与调用 freeze 方法没有关联。
所生成的位图在不使用时必须被释放掉。
F1
Graphics.snap_to_bitmap
将当前游戏画面截图存为位图对象。
所指向的是显现出来的图像,与调用 freeze 方法没有关联。
所生成的位图在不使用时必须被释放掉。
生成背景用的场景截图然后用在哪?怎么用?
terminate后Graphics.freeze
然后SceneManager.snapshot_for_background到post_start的Graphics.transition
@background_bitmap的作用是什么?
"与调用 freeze 方法没有关联"是指?
作者: taroxd 时间: 2014-8-11 12:36
用在菜单背景里面。自己寻找方法调用的轨迹吧。
"与调用 freeze 方法没有关联" 就是指 Graphics.freeze 不影响截图
作者: 九靈 时间: 2014-8-11 13:59
taroxd 发表于 2014-8-11 12:36 
用在菜单背景里面。自己寻找方法调用的轨迹吧。
"与调用 freeze 方法没有关联" 就是指 Graphics.freeze 不 ...
我懂了
是菜单画面后面的暗色背景吧
但那是菜单啊
标题terminate后
只是把截图存到@background_bitmap
然后 地图.main
并不是存到@background_sprite.bitmap
所以也不会显示
我怀疑这段代码摆在标题没有用处
摆在地图才有用
另外@background_bitmap = Graphics.snap_to_bitmap它半路就赋值了...
显示用的图却有(似乎有)模糊...这是为什么?...
也就是说blur是破坏性的("!")?
还有p @background_bitmap.blur的结果是nil啊...
作者: taroxd 时间: 2014-8-11 14:04
本帖最后由 taroxd 于 2014-8-11 14:14 编辑
九靈 发表于 2014-8-11 13:59 
我懂了
是菜单画面后面的暗色背景吧
我在技术区刚刚发了一个有关 self 的简单介绍,希望对你有所启发,加深一下你对实例变量的理解
(说实话,你的这些提问是我写那篇文章的原因之一)
先看 Scene_Map#terminate
super 下面的第一行就是 SceneManager.snapshot_for_background
他将这一个对象存入了SceneManager的实例变量里(参考那篇self的文章)
然后我们进入菜单画面时,我们看 Scene_MenuBase#create_background
@background_sprite.bitmap = SceneManager.background_bitmap
这一句话获取了SceneManager的实例变量(见background_bitmap的定义)
--------------------------------
blur确实是破坏性的,你不需要利用blur的返回值
作者: 九靈 时间: 2014-8-11 14:24
taroxd 发表于 2014-8-11 14:04 
我在技术区刚刚发了一个有关 self 的简单介绍,希望对你有所启发,加深一下你对实例变量的理解
(说实话 ...
哦好我看看
另外我发现标题的那段是要在Scene_Load用的......
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |