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

Project1

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

[已经解决] SceneManager.snapshot_for_background这有什么用?

[复制链接]

Lv1.梦旅人

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

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

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

x
RUBY 代码复制
  1. Scene_Title
  2. #--------------------------------------------------------------------------
  3.   # ● 结束处理
  4.   #--------------------------------------------------------------------------
  5.   def terminate
  6.     super
  7.     SceneManager.snapshot_for_background
  8.     dispose_background
  9.     dispose_foreground
  10.   end

RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 生成背景用的场景截图
  3.   #--------------------------------------------------------------------------
  4.   def self.snapshot_for_background
  5.     @background_bitmap.dispose if @background_bitmap
  6.     @background_bitmap = Graphics.snap_to_bitmap
  7.     @background_bitmap.blur
  8.   end



RUBY 代码复制
  1. F1
  2. Graphics.snap_to_bitmap
  3. 将当前游戏画面截图存为位图对象。
  4.  
  5. 所指向的是显现出来的图像,与调用 freeze 方法没有关联。
  6.  
  7. 所生成的位图在不使用时必须被释放掉。



生成背景用的场景截图然后用在哪?怎么用?

terminate后Graphics.freeze
然后SceneManager.snapshot_for_background到post_start的Graphics.transition
@background_bitmap的作用是什么?

"与调用 freeze 方法没有关联"是指?

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

2
发表于 2014-8-11 12:36:56 | 只看该作者
用在菜单背景里面。自己寻找方法调用的轨迹吧。

"与调用 freeze 方法没有关联" 就是指 Graphics.freeze 不影响截图

评分

参与人数 1星屑 +150 收起 理由
VIPArcher + 150 我很赞同

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
157 小时
注册时间
2013-8-14
帖子
203
3
 楼主| 发表于 2014-8-11 13:59:21 | 只看该作者
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啊...



回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

4
发表于 2014-8-11 14:04:08 | 只看该作者
本帖最后由 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的返回值
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
157 小时
注册时间
2013-8-14
帖子
203
5
 楼主| 发表于 2014-8-11 14:24:53 | 只看该作者
taroxd 发表于 2014-8-11 14:04
我在技术区刚刚发了一个有关 self 的简单介绍,希望对你有所启发,加深一下你对实例变量的理解
(说实话 ...

哦好我看看

另外我发现标题的那段是要在Scene_Load用的......

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-2-23 07:16

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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