查看: 2384|回复: 5

[有事请教] 【对手指】只是来请教一下某个脚本的原理的

[复制链接]
梦石
0
星屑
108
在线时间
1006 小时
注册时间
2008-11-9
回帖
1633
发表于 2012-3-31 17:54:33 | 显示全部楼层 |阅读模式

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

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

×
最近在疯狂研究改菜单的方法~
数据显示、窗口关联显示都差不多弄懂了到底怎么回事,也都成功实现~
唯独在窗口背景这一块卡住了~
我不怎么希望调用事件来辅助菜单运行,既然学了脚本就不允许自己偷懒的(PIA
于是想求教一下~
我在竖版ESC菜单脚本里加了下面这一个函数:
[pre lang="rgss" line="1"]  #--------------------------------------------------------------------------
  # ● 显示菜单背景
  #--------------------------------------------------------------------------
  def window_backgrounds
    menuback = Sprite.new
    menuback.bitmap = Bitmap.new("Graphics/Menu/background.png")
    menuback.x = 0
    menuback.y = 0
    menuback.z = 0
    loop do
      Graphics.update
    end
  end[/pre]
当然我确定我已经在执行序列中添加了这个函数~
可是改完之后,报错倒是没报错,游戏始终黑屏了= =

检查了一下,觉得可能是类似于按键扫描中没有加等待5帧这样的错误~
把这一段删了下去:
[pre lang="rgss" line="1"]    loop do
      Graphics.update
    end[/pre]

但是打开菜单之后,背景图像只是闪动一下就消失了·····
我泪奔了,在F1里不知道是不是我没仔细看,没找出等待的语句啊= =
或者根本是我的思路错了,调用窗口之后再载入图像才行?
可是那样的话,又要重新写一大段关于选择框的语句啊= =

老黄鸡

梦石
4
星屑
45800
在线时间
7957 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

发表于 2012-3-31 17:57:41 | 显示全部楼层
是不是画面冻结忘了过度了。

点评

画面冻结和画面过度?我修改的脚本里貌似没有这些东西······莫非使用冻结功能可以让画面一直显示?可是选择框和资料页关联貌似就有点难实现了~   发表于 2012-3-31 18:00
RGDirect - DirectX驱动的RGSS,点我了解.
(排满,暂停)RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

Mr.Gandum

梦石
0
星屑
226
在线时间
2070 小时
注册时间
2007-1-31
回帖
2982

贵宾

发表于 2012-3-31 18:00:47 | 显示全部楼层
注意变量的类型。
开头什么都没有的普通变量只可以在一个方法内存在。
  1. @menuback
复制代码
用这个试试

点评

囧,抱歉是我机器抽了= =,重启了一下RMVA,在刷新函数里添加了@menuback.update之后问题解决T T  发表于 2012-3-31 18:07
····囧,改完了以后反而报错,才想起那不是变量,那是精灵······  发表于 2012-3-31 18:03
谢谢^_^,我去试一下嗯····  发表于 2012-3-31 18:01
回复

使用道具 举报

梦石
0
星屑
1002
在线时间
1270 小时
注册时间
2011-2-14
回帖
5388
发表于 2012-3-31 18:03:14 | 显示全部楼层
本帖最后由 R-零 于 2012-3-31 18:05 编辑

我想你知道的




原文:                                                                                   译文:                    
def window_backgrounds                                                         定义 这个方法

    menuback = Sprite.new                                                        变量menuback,作为一个精灵对象创建

    menuback.bitmap =
Bitmap.new("Graphics/Menu/background.png")                      menuback这个精灵所拥有的位图是***

    menuback.x = 0                                                                  它的x坐标是 0

    menuback.y = 0                                                                 它的y坐标是 0

    menuback.z = 0                                                                   它的z坐标也是 0

    loop do                                                                             ·循环

      Graphics.update                                                                  更新画面

    end                                                                                   ·完毕

  end                                                                                         结束定义






menuback这个变量只对当前定义的方法内部有效,而这个方法明显只被调用了一次
回复

使用道具 举报

梦石
0
星屑
108
在线时间
1006 小时
注册时间
2008-11-9
回帖
1633
 楼主| 发表于 2012-3-31 18:10:46 | 显示全部楼层
R-零 发表于 2012-3-31 18:03
我想你知道的

谢谢~
明白问题所在了,果然我还是经验太少,忘记检查变量/精灵的应用范围了······

点评

经验什么的()  发表于 2012-3-31 18:13
回复

使用道具 举报

老黄鸡

梦石
4
星屑
45800
在线时间
7957 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

发表于 2012-3-31 18:28:02 | 显示全部楼层
原来是临时变量啊,老眼昏花……
RGDirect - DirectX驱动的RGSS,点我了解.
(排满,暂停)RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部