Project1

标题: 问个问题 [打印本页]

作者: 1965685904X    时间: 2013-8-15 15:09
标题: 问个问题
  在RPGXP中如何制作开头动画
作者: 1965685904X    时间: 2013-8-15 15:16
啊啊啊啊啊啊啊啊啊啊~求解啊
作者: 紫英晓狼1130    时间: 2013-8-15 15:40
在地图中设置并行处理事件
事件内容为你想要的
作者: 1965685904X    时间: 2013-8-15 15:52
听不懂啊
作者: 国产刘备    时间: 2013-8-15 15:59
在Title类用$game_map.setup(1)跳过游戏开头 在地图上用事件制作动画
相关脚本
作者: 1965685904X    时间: 2013-8-15 16:04
还是不会啊
作者: kuerlulu    时间: 2013-8-15 16:24
这种标题好像违规吧
柳柳以前做过一个游戏开头的制作,可搜。
开头≠标题,如果要做一个霸气的标题需要用到脚本了。
作者: 1965685904X    时间: 2013-8-15 16:27
柳柳是谁?
作者: jiahui5592986    时间: 2013-8-15 17:45
http://rpg.blue/forum.php?mod=viewthread&tid=148030   请LZ善用搜索
作者: 化螺耕    时间: 2013-8-15 20:12
对楼主表示很无语…………楼主可以先看一下新手教程
作者: 水木依    时间: 2013-8-15 20:34
额,连柳柳也不知道么……{:2_271:}
作者: 1059847607    时间: 2013-8-15 20:46
这个是在标题前插入图片的脚本,比较简单
  1. Graphics.freeze
  2. devil = Sprite.new
  3. devil.bitmap = Bitmap.new("Graphics/Pictures/神将.JPG") #这里显示图片的地址
  4. devil.ox = devil.bitmap.width / 2
  5. devil.oy = devil.bitmap.height / 2
  6. devil.x = 320#图片的X坐标,坐标越大图片越靠右
  7. devil.y = 240#图片的Y坐标,坐标越大图片越靠下

  8. $a = 0
  9. Graphics.transition(100)
  10. 100.times{Graphics.update}
  11. loop do
  12.   $a += 1
  13. Graphics.update
  14. devil.opacity -= 2
  15. if $a == 100 #这里设置图片的时常,每次刷新大概是0.05秒的样子,填100大概有5秒钟。
  16.   break
  17. end
  18. end
  19. devil.bitmap.dispose
  20. devil.dispose
  21. devil = nil
  22. Graphics.freeze
复制代码

作者: wangyongchao49    时间: 2013-8-24 07:47
片头制作教程:脚本版
在写场景之前先将场景加入到游戏里区,所以首先我们需要修改Main脚本段。
将原先的一句:
  1. $scene = Scene_Title.new
复制代码
修改为:
  1. $scene = Scene_Logo.new
复制代码
然后新建一个脚本段落GPRA_Scene_Logo,给出脚本段全部代码如下:
  1. #=================================================
  2. # ■ Scene_Logo
  3. #-------------------------------------------------
  4. #  处理片头的类。
  5. #=================================================

  6. class Scene_Logo
  7. #-----------------------------------------------
  8. # ● 主处理
  9. #-----------------------------------------------
  10. def main
  11.    # 如果您不想在每次测试游戏游戏的时候都显示LOGO,请加入以下注释语句
  12.    # if $DEBUG
  13.    #   $scene = Scene_Title.new
  14.    #   return
  15.    # end
  16.    
  17.    # 生成LOGO图形
  18.    [url=home.php?mod=space&uid=114926]@sprite[/url] = Sprite.new
  19.    @sprite.bitmap = RPG::Cache.picture("logo")
  20.    @sprite.x = 160
  21.    @sprite.y = 120
  22.    # 显示计时器
  23.    @show_time=60
  24.    # 执行过渡
  25.    Graphics.transition(20)
  26.    # 主循环
  27.    while @show_time>0 do
  28.      # 刷新游戏画面
  29.      Graphics.update
  30.      # 显示计时器减一
  31.      @show_time -= 1
  32.    end
  33.    # 准备过渡
  34.    Graphics.freeze
  35.    # 释放标题图形
  36.    @sprite.bitmap.dispose
  37.    @sprite.dispose
  38.    
  39.    # 执行过渡,过渡到全黑
  40.    Graphics.transition(20)
  41.    # 准备过渡,用于准备过渡到标题画面
  42.    Graphics.freeze
  43.    
  44.    # 进入标题画面
  45.    $scene = Scene_Title.new
  46. end
  47. end
复制代码
片头是为了显示图片~所以需要做的准备工作就是先把要显示的图片导入到工程里,或者直接Copy到"./Graphics/Pictures/"目录下。在脚本里显示图片一般是要使用到精灵(Sprite)的,在这里我们首先声明一个@sprite变量,然后用它的bitmap载入图片。例如:@sprite.bitmap = RPG::Cache.picture("logo"),载入的就是刚刚导入的名为"logo.*"的图片文件。然后如果图片不是全屏的,通过精灵的x和y属性指定一下显示的坐标。精灵是自动显示的,所以不用进行贴图等操作的。有关精灵的详细使用,可以参看F1或者66的其它相关教程,在此不再多说。

之后片头总要停止啊,所以在这里定义一个计时器@show_time,初始化它的值为60。在显示过程循环中将对它递减,最后达到定时的目的,将LOGO显示一个固定长的时间。代码中的while循环就是循环刷新画面的,其中就使用了@show_time变量作为循环继续条件。

关于Graphics.freeze和Graphics.transition函数,就是准备过渡和进行过渡,和事件中的功能是完全一样的,大家如果不清楚自己试试就明白了(在F1中可以搜索到)。
Graphics.freeze冻结当前的屏幕,不允许画面进行更新。
Graphics.transition就是从刚刚冻结时的画面过渡到当前绘制好的画面。
Graphics.transition第一个可选参数指定的是多少帧完成过渡。

@sprite.bitmap.dispose / @sprite.dispose
位图和精灵一定要释放的,这点不能忘记。

最后记得,还要显示标题画面的,不然怎么进入游戏呢,呵呵?
加一句$scene = Scene_Title.new,就回到标题画面了。

是不是实际上也很简单呢?不加注释一共也只有二三十行的代码。
最后请注意,如果您不想在每次测试的时候都会显示LOGO浪费时间的话,参看最前面几行注释,将它们前面的"#"去掉就可以啦~





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