Project1

标题: 200分吧,如何自制一个飞入窗口? [打印本页]

作者: 玄月    时间: 2008-9-14 01:58
标题: 200分吧,如何自制一个飞入窗口?
黑剑那种~~~
魔兽式窗口脚本死开~~~ [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 黑鏻    时间: 2008-9-14 02:09
用自制的图片菜单~~
作者: 玄月    时间: 2008-9-14 03:11
~~~~~等于没说
作者: 黑鏻    时间: 2008-9-14 03:17
以下引用玄月于2008-9-13 19:11:30的发言:

~~~~~等于没说

至少还说了~~
直接去下载黑暗圣剑传说 解密试玩版http://rpg.blue/web/htm/down19.htm
把里面挖过来不就行吗?

作者: havealook    时间: 2008-9-14 03:24
这个录象中不提到了?
而且就是拿黑暗圣剑传说的菜单作为的例子~~
http://rpg.blue/web/htm/news129.htm
作者: lhbadsl    时间: 2008-9-14 03:34
我倒下了。。。魔兽菜单是最好的。。。。。。。基本不用美工,还是你介绍给我用的。。{/tp}路过,顺便帮你顶下。。。。
作者: 忧伤的小猫    时间: 2008-9-14 03:57
举一个例子给你 其他的楼主可以举一反三
在Scene Menu里 把
    # 生成游戏时间窗口
    @playtime_window = Window_PlayTime.new
    @playtime_window.x = 0
    @playtime_window.y = 224
改成
    # 生成游戏时间窗口
    @playtime_window = Window_PlayTime.new
    @playtime_window.x = -100
    @playtime_window.y = 224
然后在释放后面加上
def window_fly
if   @playtime_window.x  < 0
@playtime_window.x += 20
end
end
然后在刷新update
里添加一个
window_fly
就可以了
作者: 玄月    时间: 2008-9-14 07:39
出错
作者: lhbadsl    时间: 2008-9-14 07:47
其实这个东西非常简单。。。。就是菜单场景刷新时动态改变坐标,脚本原理几乎和魔兽式菜单没有任何的区别,在我给你的那个魔兽式菜单修改版中有这些句子。。。。。

  1.    for i in 1 .. $speed
  2.      @command_window.x += 160 / $speed
  3.      @playtime_window.x -= 480 / $speed
  4.      @steps_window.x -= 480 / $speed
  5.      @gold_window.x -= 480 / $speed
  6.      @status_window.x -= 480 / $speed
  7.      Graphics.update
  8.    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方法里面(就是主处理)这样写。。。

  1. class Scene_Menu
  2. def main
  3. @picture = "..."(这个很难讲清楚。。。就是图片类,不要写个名字上去就以为可以了,具体定义可以参照rm图片类的说明书)

  4. @window= Window_Base.new(随便乱写的,具体可以参照代码)
  5. @spriteset = Sprite_Picture.new(@viewport2,@picture)
  6. 下面两句是为了给图片和一个初始值,让它在开始时看不见
  7. @picture.x = 某一常数
  8. @window.x= 某一常数
  9. .....
  10. # 执行过渡
  11. Graphics.transition
  12. for i in 1 .. 20
  13.      @picture.x += 10
  14.      @window.x += 10
  15.      @spriteset.update
  16.      Graphics.update
  17. end
  18.    # 主循环
  19.    loop do
  20.      # 刷新游戏画面
  21.      Graphics.update
  22.      # 刷新输入信息
  23.      Input.update
  24.      # 刷新画面
  25.      update
  26.      # 如果切换画面就中断循环
  27.      if $scene != self
  28.        break
  29.      end
  30.    end
  31. ......(上面是“飞入”,下面就要“飞出”了,具体写法请参照魔兽菜单工程)
  32. end
  33. end
复制代码


其中@window为“装载”这个图片的窗口,上面这个写法,图片精灵和窗体都是分开的。。只不过看起来好像是装着的。。。。
[LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1