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

Project1

 找回密码
 注册会员
搜索
查看: 3053|回复: 6
打印 上一主题 下一主题

[已经过期] 如何制作这样的loading读条界面

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1109
在线时间
110 小时
注册时间
2016-8-7
帖子
97
跳转到指定楼层
1
发表于 2018-3-30 17:29:11 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
如题....

01c32f554410990000019ae97da3d4.jpg@1280w_1l_2o_100sh.jpg (464.48 KB, 下载次数: 40)

01c32f554410990000019ae97da3d4.jpg@1280w_1l_2o_100sh.jpg

评分

参与人数 1+1 收起 理由
Vortur + 1 目测要被封,立贴为证

查看全部评分

Lv4.逐梦者

梦石
5
星屑
3038
在线时间
612 小时
注册时间
2012-11-12
帖子
482

开拓者

2
发表于 2018-3-30 20:07:34 | 只看该作者
第一步,画素材
第二部,可以用脚本,或者事件简单实现
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
39016
在线时间
5717 小时
注册时间
2006-11-10
帖子
6619
3
发表于 2018-3-31 12:37:38 | 只看该作者
本帖最后由 灯笼菜刀王 于 2018-3-31 12:46 编辑

显示图片... OVER...... 最多再加上描绘槽值

原本LODING图片是为了读取数据的这段不可避免时间 避免玩家无聊而诞生的, 而你却要为了让玩家无聊而故意加上根本不必要的LODING图片

恕我直言, 为LODING而LODING是最傻的........

--------------------------
看你头像, 有玩DNF吧,  如果玩的时间长了,你是否觉得, 切换地图的时候显示的那些LODE图片巨讨厌呢?  尤其是虚祖→月溪镇,  显示图片的时间咱都已经过第一图了~

游戏里这个图片存在是为了让配置不佳的电脑读取时地图不会导致长时间黑屏, 然而毕竟是10年前的设计, 如今的固态硬盘已经让这个过程大幅度缩短, 所以它就变成惹人讨厌的存在了.
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
8498
在线时间
775 小时
注册时间
2017-11-10
帖子
1231
4
发表于 2018-3-31 13:21:28 | 只看该作者
  1. #===============================================================================
  2. # +++ MOG - 存读档加载画面 (v1.1) +++
  3. #===============================================================================
  4. # By Moghunter
  5. # https://atelierrgss.wordpress.com/
  6. #===============================================================================
  7. # 可以在存档或读档时显示一个Loading画面.
  8. #
  9. # 目的是为了能在存档或读档时向玩家展示你想要展示的一些图片.
  10. #
  11. #===============================================================================
  12. # 可以使用脚本手动打开加载画面.
  13. #
  14. # SceneManager.call(Scene_Load_Bar)
  15. #
  16. #==============================================================================
  17. # ● Histórico (Version History)
  18. #==============================================================================
  19. # v 1.1 - Melhoria no sistema de dispose de imagens.
  20. #==============================================================================

  21. module MOG_LOAD_BAR
  22.    # 加载时间.(秒)
  23.    LOAD_DURATION = 2
  24.    # 是否在读档时显示加载画面.
  25.    ENABLE_LOAD_BAR_FOR_SCENE_LOAD = true
  26.    # 是否在存档时显示加载画面.
  27.    ENABLE_LOAD_BAR_FOR_SCENE_SAVE = true   
  28.    # 加载时显示的背景图片.
  29.    LOAD_BACKGROUND_PICTURES = [
  30.    "Background_1",
  31.    "Background_2",
  32.    "Background_3",
  33.    "Background_4",
  34.    #"Background_5",
  35.    #"Background_6"
  36.    #"Background_7",
  37.    #"Background_8",
  38.    #"Background_9",
  39.    #"Background_10",
  40.    # ...
  41.    ]
  42.    # 是否随机显示图片.
  43.    PICTURE_RANDOM_SELECTION = true   
  44.    # 加载条位置.
  45.    LOAD_BAR_POSITION = [30,350]
  46.    # 进度条位置.
  47.    LOAD_BAR_METER_POSITION = [11,27]
  48.    # 文字位置.
  49.    LOAD_BAR_TEXT_POSITION = [ 10, -3]
  50.    # 加载时播放的音效.
  51.    LOAD_SE = "Decision2"
  52.    # 进度条的动画速度.
  53.    LOAD_BAR_FLOW_SPEED = 25
  54.    # 设定存档完之后回到哪个画面。如果你的菜单中禁止存档,并且是在地图上存档的
  55.    # 应该修改为地图的场景
  56.    RETURN_TO_SCENE = Scene_Menu.new(4)
  57.    # 是否使用文本浮动效果.
  58.    ENABLE_FLOAT_TEXT_ANIMATION = true
  59.    # 是否使用角色精灵(?)
  60.    ENABLE_CHARACTER_SPRITE = true
  61.    # 是否显示侧边的加载条.
  62.    ENABLE_STRIPE_SPRITE = true
  63.    # 侧边加载条的滚动速度.
  64.    STRIPE_SPEED = 1
  65. end

  66. #=============================================================================
  67. # ■ Game_Temp
  68. #=============================================================================
  69. class Game_Temp
  70.   attr_accessor :load_bar_pre_index
  71.   attr_accessor :loadbar_type
  72.   attr_accessor :load_pre_bgm
  73.   attr_accessor :load_pre_bgs

  74. #--------------------------------------------------------------------------
  75. # ● Initialize
  76. #--------------------------------------------------------------------------              
  77. alias load_bar_initialize initialize
  78. def initialize
  79.      @load_bar_pre_index = -1
  80.      @loadbar_type = 0   
  81.      load_bar_initialize
  82. end
  83.    
  84. end

  85. #=============================================================================
  86. # ■ Game_System
  87. #=============================================================================
  88. class Game_System
  89.   attr_accessor :load_bar_pre_index
  90.   
  91. #--------------------------------------------------------------------------
  92. # ● Initialize
  93. #--------------------------------------------------------------------------              
  94. alias load_bar_initialize initialize
  95. def initialize
  96.      load_bar_initialize
  97.      @load_bar_pre_index = 0
  98. end

  99. #--------------------------------------------------------------------------
  100. # ● BGS Stop
  101. #--------------------------------------------------------------------------            
  102. def bgs_stop
  103.      Audio.bgs_stop
  104. end
  105. end

  106. #=============================================================================
  107. # ■ Scene Load Bar
  108. #=============================================================================
  109. class Scene_Load_Bar
  110. include MOG_LOAD_BAR
  111.   
  112. #--------------------------------------------------------------------------
  113. # ● Initialize
  114. #--------------------------------------------------------------------------            
  115. def initialize
  116.      execute_dispose
  117.      @bar_type = $game_temp.loadbar_type
  118.      @load_duration_max = 60 * LOAD_DURATION
  119.      @load_duration_max = 60 if @load_duration_max < 60  
  120.      @load_duration = 0
  121.      @pictures = LOAD_BACKGROUND_PICTURES
  122.      create_background
  123.      create_layout  
  124.      create_load_bar
  125.      create_text
  126.      create_side_strip
  127. end
  128.    
  129. #--------------------------------------------------------------------------
  130. # ● Create Background
  131. #--------------------------------------------------------------------------           
  132. def create_background  
  133.      @background = Sprite.new
  134.      if PICTURE_RANDOM_SELECTION
  135.         $game_system.load_bar_pre_index = rand(@pictures.size)
  136.         no_repeat_picture
  137.      end
  138.      image_name = @pictures[$game_system.load_bar_pre_index]   
  139.      image_name = "" if image_name == nil     
  140.      @background.bitmap = Cache.picture(image_name)
  141.      $game_temp.load_bar_pre_index = $game_system.load_bar_pre_index
  142.      unless PICTURE_RANDOM_SELECTION
  143.         $game_system.load_bar_pre_index += 1
  144.         $game_system.load_bar_pre_index = 0 if $game_system.load_bar_pre_index > @pictures.size - 1
  145.      end   
  146. end
  147.    
  148. #--------------------------------------------------------------------------
  149. # ● No Repeat Picture
  150. #--------------------------------------------------------------------------            
  151. def no_repeat_picture
  152.      if $game_system.load_bar_pre_index == $game_temp.load_bar_pre_index
  153.         $game_system.load_bar_pre_index += 1
  154.         $game_system.load_bar_pre_index = 0 if $game_system.load_bar_pre_index > @pictures.size - 1
  155.      end  
  156. end

  157. #--------------------------------------------------------------------------
  158. # ● Create Layout
  159. #--------------------------------------------------------------------------           
  160. def create_layout  
  161.      @hud = Sprite.new
  162.      @hud.bitmap = Cache.system("Load_Bar_Layout")
  163.      @hud.x = LOAD_BAR_POSITION[0]
  164.      @hud.y = LOAD_BAR_POSITION[1]
  165.      @hud.z = 10
  166. end

  167. #--------------------------------------------------------------------------
  168. # ● Create Side Strip
  169. #--------------------------------------------------------------------------           
  170. def create_side_strip
  171.      @stripe1 = Plane.new
  172.      @stripe2 = Plane.new     
  173.      if @bar_type == 0
  174.         @stripe1.bitmap = Cache.system("Load_Bar_Stripe1_L")
  175.         @stripe2.bitmap = Cache.system("Load_Bar_Stripe2_L")
  176.      else  
  177.         @stripe1.bitmap = Cache.system("Load_Bar_Stripe1_S")
  178.         @stripe2.bitmap = Cache.system("Load_Bar_Stripe2_S")
  179.      end  
  180.      @stripe1.z = 1
  181.      @stripe2.z = 1         
  182.      @stripe1.visible = ENABLE_STRIPE_SPRITE
  183.      @stripe2.visible = ENABLE_STRIPE_SPRITE
  184. end

  185. #--------------------------------------------------------------------------
  186. # ● Create Load Bar
  187. #--------------------------------------------------------------------------            
  188. def create_load_bar
  189.      @bar_flow = 0
  190.      @bar_image = Cache.system("Load_Bar_Meter")
  191.      @bar_bitmap = Bitmap.new(@bar_image.width,@bar_image.height)
  192.      @bar_range = @bar_image.width / 3
  193.      @bar_width = @bar_range  * @load_duration / @load_duration_max
  194.      @bar_height = @bar_image.height
  195.      @bar_width_old = @bar_width
  196.      @bar_src_rect = Rect.new(@bar_flow, 0, @bar_width, @bar_height)
  197.      @bar_bitmap.blt(0,0, @bar_image, @bar_src_rect)
  198.      @bar_sprite = Sprite.new
  199.      @bar_sprite.bitmap = @bar_bitmap
  200.      @bar_sprite.z = 11
  201.      @bar_sprite.x = LOAD_BAR_POSITION[0] + LOAD_BAR_METER_POSITION[0]
  202.      @bar_sprite.y = LOAD_BAR_POSITION[1] + LOAD_BAR_METER_POSITION[1]
  203.      update_bar_flow
  204. end

  205. #--------------------------------------------------------------------------
  206. # ● Create Text
  207. #--------------------------------------------------------------------------            
  208. def create_text
  209.      @text_float_time = 0
  210.      @text_float_y = 0
  211.      @text_image = Cache.system("Load_Bar_Text")
  212.      @text_bitmap = Bitmap.new(@text_image.width,@text_image.height)
  213.      @text_width = @text_image.width
  214.      @text_height = @text_image.height / 2
  215.      @text_src_rect = Rect.new(0, @text_height * @bar_type, @text_width, @text_height)
  216.      @text_bitmap.blt(0,0, @text_image, @text_src_rect)   
  217.      @text_sprite = Sprite.new
  218.      @text_sprite.bitmap = @text_bitmap   
  219.      @text_fy = LOAD_BAR_POSITION[1] + LOAD_BAR_TEXT_POSITION[1]
  220.      @text_sprite.x = LOAD_BAR_POSITION[0] + LOAD_BAR_TEXT_POSITION[0]
  221.      @text_sprite.y = @text_fy
  222.      @text_sprite.z = 12
  223. end

  224. #--------------------------------------------------------------------------
  225. # ● Main
  226. #--------------------------------------------------------------------------         
  227. def main
  228.      Graphics.transition
  229.      execute_loop
  230.      execute_dispose
  231. end   

  232. #--------------------------------------------------------------------------
  233. # ● Execute Loop
  234. #--------------------------------------------------------------------------           
  235. def execute_loop
  236.      loop do
  237.           update
  238.           Graphics.update         
  239.           if SceneManager.scene != self
  240.               break
  241.           end
  242.      end
  243. end

  244. #--------------------------------------------------------------------------
  245. # ● Execute Dispose
  246. #--------------------------------------------------------------------------            
  247. def execute_dispose
  248.      return if @hud == nil
  249.      @hud.bitmap.dispose
  250.      @hud.dispose
  251.      @stripe1.bitmap.dispose
  252.      @stripe1.dispose     
  253.      @stripe2.bitmap.dispose
  254.      @stripe2.dispose        
  255.      @bar_image.dispose
  256.      @bar_bitmap.dispose
  257.      @bar_sprite.bitmap.dispose
  258.      @bar_sprite.dispose     
  259.      @background.bitmap.dispose
  260.      @background.dispose
  261.      @text_image.dispose
  262.      @text_bitmap.dispose
  263.      @text_sprite.bitmap.dispose
  264.      @text_sprite.dispose
  265.      Graphics.transition
  266.      Graphics.freeze
  267. end  

  268. #--------------------------------------------------------------------------
  269. # ● Update
  270. #--------------------------------------------------------------------------            
  271. def update
  272.      update_bar_flow
  273.      update_bar_duration
  274.      update_float_text
  275.      update_slide_stripe
  276. end

  277. #--------------------------------------------------------------------------
  278. # ● Update Slide Stripe
  279. #--------------------------------------------------------------------------              
  280. def update_slide_stripe
  281.      @stripe1.oy += STRIPE_SPEED
  282.      @stripe2.ox += STRIPE_SPEED
  283. end   
  284.    
  285. #--------------------------------------------------------------------------
  286. # ● update_float_text
  287. #--------------------------------------------------------------------------            
  288. def update_float_text
  289.      return unless ENABLE_FLOAT_TEXT_ANIMATION
  290.      @text_float_time += 1
  291.      case @text_float_time
  292.         when 1..10
  293.            @text_float_y += 1
  294.         when 11..20
  295.            @text_float_y -= 1
  296.         else
  297.           @text_float_y = 0
  298.           @text_float_time = 0
  299.      end
  300.      @text_sprite.y = @text_fy + @text_float_y
  301. end

  302. #--------------------------------------------------------------------------
  303. # ● Update Bar Flow
  304. #--------------------------------------------------------------------------            
  305. def update_bar_flow
  306.      @bar_sprite.bitmap.clear
  307.      @bar_width = @bar_range  * @load_duration / @load_duration_max
  308.      @bar_width = @bar_range if @load_duration > @load_duration_max
  309.      @bar_src_rect = Rect.new(@bar_flow, 0,@bar_width, @bar_height)
  310.      @bar_bitmap.blt(0,0, @bar_image, @bar_src_rect)
  311.      @bar_flow += LOAD_BAR_FLOW_SPEED
  312.      if @bar_flow >= @bar_image.width - @bar_range
  313.         @bar_flow = 0     
  314.      end
  315. end   
  316.    
  317. #--------------------------------------------------------------------------
  318. # ● Update Bar Duration
  319. #--------------------------------------------------------------------------              
  320. def update_bar_duration
  321.      @load_duration += 1
  322.      if @load_duration == @load_duration_max
  323.         Audio.se_play("Audio/SE/" + LOAD_SE,100,100) rescue nil
  324.      elsif @load_duration == @load_duration_max + 10
  325.         if @bar_type == 0
  326.             SceneManager.return
  327.             $game_system.replay_bgm
  328.          else   
  329.             SceneManager.return   
  330.         end  
  331.         $game_temp.loadbar_type = false
  332.      end
  333. end  

  334. end

  335. #=============================================================================
  336. # ■ Scene Save
  337. #=============================================================================
  338. class Scene_Save < Scene_File
  339.   
  340. #--------------------------------------------------------------------------
  341. # ● On Save Sucess
  342. #--------------------------------------------------------------------------               
  343.   alias mog_advloadbar_on_save_success on_save_success
  344.   def on_save_success
  345.       mog_advloadbar_on_save_success
  346.       $game_temp.loadbar_type = 1
  347.       SceneManager.call(Scene_Load_Bar)   
  348.   end
  349.   
  350. end

  351. #=============================================================================
  352. # ■ Scene Load
  353. #=============================================================================
  354. class Scene_Load < Scene_File
  355.   
  356.   #--------------------------------------------------------------------------
  357.   # ● On Load Success
  358.   #--------------------------------------------------------------------------
  359.   alias mog_advloadbar_on_load_success on_load_success
  360.   def on_load_success
  361.       mog_advloadbar_on_load_success
  362.       $game_system.save_bgm      
  363.       RPG::BGM.stop
  364.       $game_temp.loadbar_type = 0
  365.       SceneManager.call(Scene_Load_Bar)              
  366.   end
  367. end

  368. $mog_rgss3_advanced_load_bar = true
复制代码

不是有现成的么...直接修改一下使用就可以了。
一个只会简单事件的Rm新人,脚本完全不懂。只求做个简单的游戏完成自己的游戏之梦而已。
第一个游戏已经完成,等待各素材的完成和测试。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1109
在线时间
110 小时
注册时间
2016-8-7
帖子
97
5
 楼主| 发表于 2018-3-31 16:45:30 | 只看该作者
灯笼菜刀王 发表于 2018-3-31 12:37
显示图片... OVER...... 最多再加上描绘槽值

原本LODING图片是为了读取数据的这段不可避免时间 避免玩家无 ...

确实
但是我画了一张城镇地图,城门和城池内部是在一张地图上  从城门进去后在出来发现城门是显示未关上的
我就想用LODING来掩盖来调换一下  一开始用事件做感觉有点不自然
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
8498
在线时间
775 小时
注册时间
2017-11-10
帖子
1231
6
发表于 2018-3-31 18:27:18 | 只看该作者
本帖最后由 文雅夕露 于 2018-3-31 18:38 编辑

嗯...做好了。虽然意义并不大的脚本...
复刻了练习好了。
素材请自行准备。
  1. module Line
  2. Pic_rand = true
  3. No_rand_pic = "Wall1"
  4. Pictrues = 3
  5. Speed = 1
  6. end
  7. #==============================================================================
  8. # ■ Scene_Map
  9. #------------------------------------------------------------------------------
  10. #  地图画面
  11. #==============================================================================
  12. class Scene_Map < Scene_Base
  13.   include Line
  14.   #--------------------------------------------------------------------------
  15.   # ● 处理场所移动
  16.   #--------------------------------------------------------------------------
  17.   def perform_transfer
  18.     pre_transfer
  19.     $game_player.perform_transfer
  20.     post_transfer
  21.   end
  22.   #--------------------------------------------------------------------------
  23.   # ● 场所移动前的处理
  24.   #--------------------------------------------------------------------------
  25.   def pre_transfer
  26.     @map_name_window.close
  27.     case $game_temp.fade_type
  28.     when 0
  29.       loadline_up
  30.       fadeout(fadeout_speed)
  31.     when 1
  32.         loadline_up
  33.       white_fadeout(fadeout_speed)
  34.     end
  35.   end
  36.   #--------------------------------------------------------------------------
  37.   # ● 场所移动后的处理
  38.   #--------------------------------------------------------------------------
  39.   def post_transfer
  40.     case $game_temp.fade_type
  41.     when 0
  42.       Graphics.wait(fadein_speed / 2)
  43.       loadline_down
  44.       fadein(fadein_speed)
  45.     when 1
  46.       Graphics.wait(fadein_speed / 2)
  47.       loadline_down
  48.       white_fadein(fadein_speed)
  49.     end
  50.     @map_name_window.open
  51.   end
  52.   #--------------------------------------------------------------------------
  53.   # ● 读条的操作
  54.   #--------------------------------------------------------------------------
  55.   def loadline_up
  56.   #精灵生成
  57.   @background = Sprite.new
  58.   if Pic_rand
  59.   $line = rand(Pictrues)
  60.   @background.bitmap = Cache.picture("Wall#{$line}")
  61. else
  62.   @background.bitmap = Cache.picture(No_rand_pic)
  63. end
  64.   @background.z = 500
  65.   #精灵生成
  66.   @line = Sprite.new
  67.   @line.bitmap = Cache.picture("line_back")
  68.   @line.x = 150
  69.   @line.y = 400
  70.   @line.z = 501
  71.   #精灵生成
  72.   @line_actor = Sprite.new
  73.   $time = 1
  74.   while $time <= 60 do
  75.   @viewport = Viewport.new(155, 416, 43 + 5 * $time, 10)
  76.   @viewport.z = 999
  77.   #精灵端口的生成
  78.   @line_go = Sprite.new(@viewport)
  79.   @line_go.bitmap = Cache.picture("line")
  80.   $time += Speed
  81.   if $time % 24 <= 11
  82.   @line_actor.bitmap = Cache.picture("actor1")
  83.   else
  84.   @line_actor.bitmap = Cache.picture("actor2")
  85.   end
  86.   @line_actor.x = 176 + 5 * $time
  87.   @line_actor.y = 360
  88.   @line_actor.z = 502
  89.   Graphics.update
  90. end
  91.     Audio.se_play("Audio/SE/Bell1")
  92.     15.times{Graphics.update}
  93.   end
  94.   #--------------------------------------------------------------------------
  95.   # ● 读条结束的操作
  96.   #--------------------------------------------------------------------------
  97.   def loadline_down
  98.     @background.dispose
  99.     @background.bitmap.dispose
  100.     @line.dispose
  101.     @line.bitmap.dispose
  102.     @line_go.dispose
  103.     @line_go.bitmap.dispose
  104.     @line_actor.dispose
  105.     @line_actor.bitmap.dispose
  106.     @viewport.dispose
  107.   end
  108. end
  109.   
复制代码

效果:

点评

不能再赞  发表于 2018-3-31 18:52

评分

参与人数 1+1 收起 理由
余音·魔眼 + 1 刚刚点错了,本来是想评分的

查看全部评分

一个只会简单事件的Rm新人,脚本完全不懂。只求做个简单的游戏完成自己的游戏之梦而已。
第一个游戏已经完成,等待各素材的完成和测试。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 07:49

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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