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

Project1

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

[已经解决] 如何在地圖畫面上顯示金錢視窗?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2638
在线时间
365 小时
注册时间
2015-12-8
帖子
104
跳转到指定楼层
1
发表于 2016-5-10 01:21:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
如何在地圖畫面(一般畫面)上顯示金錢視窗?
並且能隨時依據金錢的增減而更新數值
謝謝!

Lv3.寻梦者

梦石
0
星屑
1358
在线时间
1295 小时
注册时间
2012-8-4
帖子
749
2
发表于 2016-5-10 13:40:47 | 只看该作者
本帖最后由 夜狠简单 于 2016-5-10 13:42 编辑

仿计时器效果弄一个吧,还有就是文章好像可以直接引出金钱窗口,让里面刷新和时间一样就好
回复 支持 反对

使用道具 举报

Lv4.逐梦者

送快递的水表员

梦石
10
星屑
4857
在线时间
3303 小时
注册时间
2012-6-27
帖子
7160

开拓者贵宾

3
发表于 2016-5-10 17:39:59 | 只看该作者
用这个脚本完全替换原 Scene_Map 即可。
默认1号开关控制显示与否。如果需要游戏开始就显示的话请在游戏刚开始就打开1号开关。
先上范例: 测试工程.rar (241.39 KB, 下载次数: 59)

脚本:
  1. #==============================================================================
  2. # ■ Scene_Map
  3. #------------------------------------------------------------------------------
  4. #  处理地图画面的类。
  5. #==============================================================================

  6. class Scene_Map < Scene_Base
  7.   #--------------------------------------------------------------------------
  8.   # ● 开始处理
  9.   #--------------------------------------------------------------------------
  10.   def start
  11.     super
  12.     $game_map.refresh
  13.     @spriteset = Spriteset_Map.new
  14.     @message_window = Window_Message.new
  15.     @gold_window = Window_Gold.new(0, 360) #修改
  16.   end
  17.   #--------------------------------------------------------------------------
  18.   # ● 执行渐变
  19.   #--------------------------------------------------------------------------
  20.   def perform_transition
  21.     if Graphics.brightness == 0       # 战斗後或载入後等
  22.       fadein(30)
  23.     else                              # 从菜单中回来等
  24.       Graphics.transition(15)
  25.     end
  26.   end
  27.   #--------------------------------------------------------------------------
  28.   # ● 结束处理
  29.   #--------------------------------------------------------------------------
  30.   def terminate
  31.     super
  32.     if $scene.is_a?(Scene_Battle)     # 切换至战斗场景的场合
  33.       @spriteset.dispose_characters   # 隐藏角色来生成战斗背景
  34.     end
  35.     snapshot_for_background
  36.     @spriteset.dispose
  37.     @message_window.dispose
  38.     if $scene.is_a?(Scene_Battle)     # 切换至战斗场景的场合
  39.       perform_battle_transition       # 执行战斗渐变
  40.     end
  41.     @gold_window.dispose #修改
  42.   end
  43.   #--------------------------------------------------------------------------
  44.   # ● 基本更新处理
  45.   #--------------------------------------------------------------------------
  46.   def update_basic
  47.     Graphics.update                   # 更新游戏画面
  48.     Input.update                      # 更新输入信息
  49.     $game_map.update                  # 更新地图
  50.     @spriteset.update                 # 更新活动块组
  51.   end
  52.   #--------------------------------------------------------------------------
  53.   # ● 更新画面
  54.   #--------------------------------------------------------------------------
  55.   def update
  56.     super
  57.     $game_map.interpreter.update      # 更新解释器
  58.     $game_map.update                  # 更新地图
  59.     $game_player.update               # 更新主角
  60.     $game_system.update               # 更新计时器
  61.     @spriteset.update                 # 更新活动块组
  62.     @message_window.update            # 更新信息窗口
  63.     unless $game_message.visible      # 信息窗口显示中除外
  64.       update_transfer_player
  65.       update_encounter
  66.       update_call_menu
  67.       update_call_debug
  68.       update_scene_change
  69.     end
  70.     @gold_window.refresh #修改
  71.     if $game_switches[1] == false   # 在这里可以修改控制开关ID
  72.       @gold_window.opacity = 0
  73.       @gold_window.contents_opacity = 0
  74.     else
  75.       @gold_window.opacity = 255
  76.       @gold_window.contents_opacity = 255
  77.     end
  78.   end
  79.   #--------------------------------------------------------------------------
  80.   # ● 淡入画面
  81.   #     duration : 时间
  82.   #    如果直接使用 Graphics.fadeout 的话会出现一些状况,如天候效果和远景
  83.   #    滚动都会被强迫停止,所以用动态的 fade-in 效果会好些。
  84.   #--------------------------------------------------------------------------
  85.   def fadein(duration)
  86.     Graphics.transition(0)
  87.     for i in 0..duration-1
  88.       Graphics.brightness = 255 * i / duration
  89.       update_basic
  90.     end
  91.     Graphics.brightness = 255
  92.   end
  93.   #--------------------------------------------------------------------------
  94.   # ● 淡出画面
  95.   #     duration : 时间
  96.   #    与上面的 fadein 一样,不是直接调用 Graphics.fadein。
  97.   #--------------------------------------------------------------------------
  98.   def fadeout(duration)
  99.     Graphics.transition(0)
  100.     for i in 0..duration-1
  101.       Graphics.brightness = 255 - 255 * i / duration
  102.       update_basic
  103.     end
  104.     Graphics.brightness = 0
  105.   end
  106.   #--------------------------------------------------------------------------
  107.   # ● 场所移动处理
  108.   #--------------------------------------------------------------------------
  109.   def update_transfer_player
  110.     return unless $game_player.transfer?
  111.     fade = (Graphics.brightness > 0)
  112.     fadeout(30) if fade
  113.     @spriteset.dispose              # 释放活动块组
  114.     $game_player.perform_transfer   # 执行场所移动
  115.     $game_map.autoplay              # 自动更改 BGM 和 BGS
  116.     $game_map.update
  117.     Graphics.wait(15)
  118.     @spriteset = Spriteset_Map.new  # 重新生成活动块组
  119.     fadein(30) if fade
  120.     Input.update
  121.   end
  122.   #--------------------------------------------------------------------------
  123.   # ● 遇敌处理
  124.   #--------------------------------------------------------------------------
  125.   def update_encounter
  126.     return if $game_player.encounter_count > 0        # 检查步数
  127.     return if $game_map.interpreter.running?          # 判断是否有事件正在执行
  128.     return if $game_system.encounter_disabled         # 判断是否禁止遇敌
  129.     troop_id = $game_player.make_encounter_troop_id   # 判断敌人队伍
  130.     return if $data_troops[troop_id] == nil           # 判断队伍是否无效
  131.     $game_troop.setup(troop_id)
  132.     $game_troop.can_escape = true
  133.     $game_temp.battle_proc = nil
  134.     $game_temp.next_scene = "battle"
  135.     preemptive_or_surprise
  136.   end
  137.   #--------------------------------------------------------------------------
  138.   # ● 判断先下手或被偷袭
  139.   #--------------------------------------------------------------------------
  140.   def preemptive_or_surprise
  141.     actors_agi = $game_party.average_agi
  142.     enemies_agi = $game_troop.average_agi
  143.     if actors_agi >= enemies_agi
  144.       percent_preemptive = 5
  145.       percent_surprise = 3
  146.     else
  147.       percent_preemptive = 3
  148.       percent_surprise = 5
  149.     end
  150.     if rand(100) < percent_preemptive
  151.       $game_troop.preemptive = true
  152.     elsif rand(100) < percent_surprise
  153.       $game_troop.surprise = true
  154.     end
  155.   end
  156.   #--------------------------------------------------------------------------
  157.   # ● 判断是否呼叫菜单(按下B键)
  158.   #--------------------------------------------------------------------------
  159.   def update_call_menu
  160.     if Input.trigger?(Input::B)
  161.       return if $game_map.interpreter.running?        # 判断是否有事件正在执行
  162.       return if $game_system.menu_disabled            # 判断是否禁止菜单呼叫
  163.       $game_temp.menu_beep = true                     # 设置音效标志
  164.       $game_temp.next_scene = "menu"
  165.     end
  166.   end
  167.   #--------------------------------------------------------------------------
  168.   # ● 判断是否呼叫DEBUG场景(按下F9键)
  169.   #--------------------------------------------------------------------------
  170.   def update_call_debug
  171.     if $TEST and Input.press?(Input::F9)    # 游戏测试并按下F9
  172.       $game_temp.next_scene = "debug"
  173.     end
  174.   end
  175.   #--------------------------------------------------------------------------
  176.   # ● 执行场景交替
  177.   #--------------------------------------------------------------------------
  178.   def update_scene_change
  179.     return if $game_player.moving?    # 判断主角是否移动中
  180.     case $game_temp.next_scene
  181.     when "battle"
  182.       call_battle
  183.     when "shop"
  184.       call_shop
  185.     when "name"
  186.       call_name
  187.     when "menu"
  188.       call_menu
  189.     when "save"
  190.       call_save
  191.     when "debug"
  192.       call_debug
  193.     when "gameover"
  194.       call_gameover
  195.     when "title"
  196.       call_title
  197.     else
  198.       $game_temp.next_scene = nil
  199.     end
  200.   end
  201.   #--------------------------------------------------------------------------
  202.   # ● 切换至战斗画面
  203.   #--------------------------------------------------------------------------
  204.   def call_battle
  205.     @spriteset.update
  206.     Graphics.update
  207.     $game_player.make_encounter_count
  208.     $game_player.straighten
  209.     $game_temp.map_bgm = RPG::BGM.last
  210.     $game_temp.map_bgs = RPG::BGS.last
  211.     RPG::BGM.stop
  212.     RPG::BGS.stop
  213.     Sound.play_battle_start
  214.     $game_system.battle_bgm.play
  215.     $game_temp.next_scene = nil
  216.     $scene = Scene_Battle.new
  217.   end
  218.   #--------------------------------------------------------------------------
  219.   # ● 切换至商店画面
  220.   #--------------------------------------------------------------------------
  221.   def call_shop
  222.     $game_temp.next_scene = nil
  223.     $scene = Scene_Shop.new
  224.   end
  225.   #--------------------------------------------------------------------------
  226.   # ● 切换至名称输入画面
  227.   #--------------------------------------------------------------------------
  228.   def call_name
  229.     $game_temp.next_scene = nil
  230.     $scene = Scene_Name.new
  231.   end
  232.   #--------------------------------------------------------------------------
  233.   # ● 切换至菜单画面
  234.   #--------------------------------------------------------------------------
  235.   def call_menu
  236.     if $game_temp.menu_beep
  237.       Sound.play_decision
  238.       $game_temp.menu_beep = false
  239.     end
  240.     $game_temp.next_scene = nil
  241.     $scene = Scene_Menu.new
  242.   end
  243.   #--------------------------------------------------------------------------
  244.   # ● 切换至存档画面
  245.   #--------------------------------------------------------------------------
  246.   def call_save
  247.     $game_temp.next_scene = nil
  248.     $scene = Scene_File.new(true, false, true)
  249.   end
  250.   #--------------------------------------------------------------------------
  251.   # ● 切换至DEBUG画面
  252.   #--------------------------------------------------------------------------
  253.   def call_debug
  254.     Sound.play_decision
  255.     $game_temp.next_scene = nil
  256.     $scene = Scene_Debug.new
  257.   end
  258.   #--------------------------------------------------------------------------
  259.   # ● 切换至游戏结束画面
  260.   #--------------------------------------------------------------------------
  261.   def call_gameover
  262.     $game_temp.next_scene = nil
  263.     $scene = Scene_Gameover.new
  264.   end
  265.   #--------------------------------------------------------------------------
  266.   # ● 切换至标题画面
  267.   #--------------------------------------------------------------------------
  268.   def call_title
  269.     $game_temp.next_scene = nil
  270.     $scene = Scene_Title.new
  271.     fadeout(60)
  272.   end
  273.   #--------------------------------------------------------------------------
  274.   # ● 执行战斗渐变
  275.   #--------------------------------------------------------------------------
  276.   def perform_battle_transition
  277.     Graphics.transition(80, "Graphics/System/BattleStart", 80)
  278.     Graphics.freeze
  279.   end
  280. end
复制代码

点评

@gold_window.opacity = 0 和 @gold_window.contents_opacity = 0用@gold_window.visible = $game_switches[1]一句代替就好了...  发表于 2016-11-7 09:12

评分

参与人数 1梦石 +1 收起 理由
正太君 + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-22 07:09

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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