赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 2977 |
最后登录 | 2020-5-5 |
在线时间 | 5 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 60
- 在线时间
- 5 小时
- 注册时间
- 2008-6-28
- 帖子
- 292
|
其实这个东西非常简单。。。。就是菜单场景刷新时动态改变坐标,脚本原理几乎和魔兽式菜单没有任何的区别,在我给你的那个魔兽式菜单修改版中有这些句子。。。。。
- for i in 1 .. $speed
- @command_window.x += 160 / $speed
- @playtime_window.x -= 480 / $speed
- @steps_window.x -= 480 / $speed
- @gold_window.x -= 480 / $speed
- @status_window.x -= 480 / $speed
- Graphics.update
- end
复制代码
这个就是用for循环动态刷新窗口的x坐标,其中Graphics.update这句是在菜单场景中直接用Graphics刷新的办法让窗口随x坐标的动态改变显示出来。。。。好好研究一下魔兽是菜单就会做这个所谓“飞入”效果了。。。。不过不是像魔兽式菜单那样修改窗口坐标,而是动态修改图片精灵块的坐标并用Graphics.update,@spriteset.update把动态修改的坐标在实质的显示中表现出来,其中的@spriteset为你想要“飞入”的图片的精灵载体,可以用@spriteset = Sprite_Picture.new(@viewport2,@picture)在菜单场景的main方法最先几行那里定义,@picture为你想要“飞入”的图片。。。具体用法可以参考rm的Sprite_Picture类说明书。。。{/hx}.也可以参照我给你的那个工程里的写法。。。。比如:在某一菜单场景的main方法里面(就是主处理)这样写。。。
- class Scene_Menu
- def main
- @picture = "..."(这个很难讲清楚。。。就是图片类,不要写个名字上去就以为可以了,具体定义可以参照rm图片类的说明书)
- @window= Window_Base.new(随便乱写的,具体可以参照代码)
- @spriteset = Sprite_Picture.new(@viewport2,@picture)
- 下面两句是为了给图片和一个初始值,让它在开始时看不见
- @picture.x = 某一常数
- @window.x= 某一常数
- .....
- # 执行过渡
- Graphics.transition
- for i in 1 .. 20
- @picture.x += 10
- @window.x += 10
- @spriteset.update
- Graphics.update
- end
- # 主循环
- loop do
- # 刷新游戏画面
- Graphics.update
- # 刷新输入信息
- Input.update
- # 刷新画面
- update
- # 如果切换画面就中断循环
- if $scene != self
- break
- end
- end
- ......(上面是“飞入”,下面就要“飞出”了,具体写法请参照魔兽菜单工程)
- end
- end
复制代码
其中@window为“装载”这个图片的窗口,上面这个写法,图片精灵和窗体都是分开的。。只不过看起来好像是装着的。。。。
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~ |
|