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

Project1

 找回密码
 注册会员
搜索
查看: 1801|回复: 8

[已经解决] Scene代码卡死

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3670
在线时间
357 小时
注册时间
2018-9-4
帖子
272
发表于 2018-11-18 12:18:14 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 Mono_kyrin 于 2018-11-19 03:50 编辑

想做一个樱花飘飘落下的天气效果,又不想用动画做(毕竟整个素材300多帧……),于是想直接用脚本更新精灵实例解决。
问题解决了,那就作为一个实例分享吧,调用方法在五楼
帧动画图片存放在Graphics/sakura下,命名为emm_3990-0.png 到 emm_3990-306.png
RUBY 代码复制
  1. class Scene_Sakura
  2.  
  3.   def initialize()
  4.     @count = 0
  5.     @sprite = nil
  6.     @viewport = Viewport.new(0,0,640,480)
  7.     @sprite = Sprite.new(@viewport)
  8.     @viewport.z = 1000
  9.     @sprite.x = 0
  10.     @sprite.y = 0
  11.     @sprite.zoom_x = 1.5
  12.     @sprite.zoom_y = 1.5
  13.     @sprite.blend_type = 1
  14.     @sprite.visible = true
  15.     @sprite.mirror = true
  16.     @bitmaps = []
  17.     for i in 0..306
  18.       @bitmaps.push(Bitmap.new("Graphics/sakura/emm_3990-#{i}.png"))
  19.     end
  20.     @sprite.bitmap = @bitmaps[@count]
  21.   end
  22.  
  23.   def update
  24.     @count += 0.5
  25.     @sprite.bitmap = @bitmaps[@count.round]
  26.     if @count == 306
  27.       @count = 0
  28.     end
  29.   end
  30.  
  31. end

Lv4.逐梦者

梦石
2
星屑
13088
在线时间
2273 小时
注册时间
2011-6-4
帖子
613
发表于 2018-11-18 12:51:31 | 显示全部楼层
def main下面加一句 Graphics.transition 试试
  1. def main
  2. Graphics.transition
  3. ......
复制代码
BUG反馈请加QQ 529283039
水友群 917854767

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3670
在线时间
357 小时
注册时间
2018-9-4
帖子
272
 楼主| 发表于 2018-11-18 13:17:59 | 显示全部楼层
真·可乐 发表于 2018-11-18 12:51
def main下面加一句 Graphics.transition 试试

优化了一下代码,跑是能跑了,但是背景是黑的啊

我还想在战斗中调用呢
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
37626
在线时间
5307 小时
注册时间
2006-11-10
帖子
6539
发表于 2018-11-18 13:41:31 | 显示全部楼层
本帖最后由 灯笼菜刀王 于 2018-11-18 13:48 编辑
Mono_kyrin 发表于 2018-11-18 13:17
优化了一下代码,跑是能跑了,但是背景是黑的啊

我还想在战斗中调用呢 ...


你占用了$scene 当然其他的场景就没了, 要想套在别的场景里, 就不要自己mian, 让它在别的场景里刷新就好了

做法: 去掉第一段def main,  然后在战斗场景(或者地图场景或者道具场景什么什么的地方)用个变量赋予该实例, update它就好啦
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3670
在线时间
357 小时
注册时间
2018-9-4
帖子
272
 楼主| 发表于 2018-11-18 14:07:18 | 显示全部楼层
灯笼菜刀王 发表于 2018-11-18 13:41
你占用了$scene 当然其他的场景就没了, 要想套在别的场景里, 就不要自己mian, 让它在别的场景里刷新就好 ...

好像没有用啊这回是完全不加载了
  1. #===========================================================
  2. # ■ Scene_Map
  3. #===============================================================
  4. class Scene_Map
  5.   alias my_main main
  6.   def main
  7.     @sakura = Scene_Sakura.new
  8.     my_main
  9.   end
  10.   
  11.   alias my_update update
  12.   def update
  13.     @sakura.update
  14.     my_update
  15.   end
  16. end
复制代码
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
1
星屑
23963
在线时间
3338 小时
注册时间
2011-7-8
帖子
3925

开拓者

发表于 2018-11-18 14:22:50 | 显示全部楼层
在update方法里每帧调用 Graphics.update
不过想在战斗、地图画面中添加这些东西,正确的写法应该参照RGSS里面的Spriteset_Map和Spriteset_Battle。

评分

参与人数 1星屑 +50 收起 理由
RyanBern + 50 认可答案

查看全部评分

熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3670
在线时间
357 小时
注册时间
2018-9-4
帖子
272
 楼主| 发表于 2018-11-18 14:42:02 | 显示全部楼层
本帖最后由 Mono_kyrin 于 2018-11-18 14:49 编辑
guoxiaomi 发表于 2018-11-18 14:22
在update方法里每帧调用 Graphics.update
不过想在战斗、地图画面中添加这些东西,正确的写法应该参照RGSS ...


现在好了,我把视口的z设在1000就好了,但是不设定的话应该不会和weather冲突的吧…………

就是动画忽然变得非常快,感觉可以用隔帧更新的方式解决

不过有什么更好的实现方法吗

点评

成功了,蟹蟹大佬  发表于 2018-11-19 03:47
你的25行改成 [@count / 2] 就好了嘛  发表于 2018-11-18 18:02
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-3-29 00:52

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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