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

Project1

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

[已经过期] 怎么设置脚本才可以在游戏界面显示时间

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
17 小时
注册时间
2016-5-7
帖子
18
跳转到指定楼层
1
发表于 2016-5-27 22:39:22 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
怎么设置脚本才可以在游戏界面显示时间

Lv2.观梦者

梦石
0
星屑
491
在线时间
339 小时
注册时间
2010-12-15
帖子
926

开拓者

2
发表于 2016-5-28 16:32:51 | 只看该作者
请把问题描述的清楚一些:
  • 是要显示系统时间还是游戏里指定的时间?
  • 游戏界面说的是什么界面?
  • 你想要怎么显示?有没有什么参考?
回复 支持 反对

使用道具 举报

Lv4.逐梦者

送快递的水表员

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

开拓者贵宾

3
发表于 2016-5-28 18:57:04 | 只看该作者
本帖最后由 Password 于 2016-5-28 18:59 编辑

用这个脚本完全替换原 Scene_Map 即可。然后就可以愉快地+1s了
默认1号开关控制显示与否。如果需要游戏开始就显示的话请在游戏刚开始就打开1号开关。【我先默认显示左下角好了
范例: 测试工程.rar (241.78 KB, 下载次数: 125)

脚本:
  1. #==============================================================================
  2. # ■ Window_Time
  3. #------------------------------------------------------------------------------
  4. #  显示时间的窗口。
  5. #==============================================================================

  6. class Window_Time < Window_Base
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化对像
  9.   #     x      : 窗口 X 座标    w : 窗口宽度,默认160
  10.   #     y      : 窗口 Y 座标    h : 窗口高度,默认是2行文字宽度
  11.   #--------------------------------------------------------------------------
  12.   def initialize(x, y, w=160, h=WLH*2+32)
  13.     super(x, y, w, h)
  14.     refresh
  15.   end
  16.   #--------------------------------------------------------------------------
  17.   # ● 刷新
  18.   #--------------------------------------------------------------------------
  19.   def refresh
  20.     self.contents.clear
  21.     @total_sec = Graphics.frame_count / Graphics.frame_rate
  22.     draw_playtime
  23.   end
  24.   #--------------------------------------------------------------------------
  25.   # ● 描绘游戏时间
  26.   #--------------------------------------------------------------------------
  27.   def draw_playtime
  28.     hour = @total_sec / 60 / 60
  29.     min = @total_sec / 60 % 60
  30.     sec = @total_sec % 60
  31.     time_string = sprintf("%02d时%02d分%02d秒", hour, min, sec)
  32.    
  33.     self.contents.font.color = normal_color
  34.     self.contents.draw_text(0, 0,   self.width, WLH, "游戏时间:")
  35.     self.contents.draw_text(0, WLH, 160, WLH, time_string)
  36.   end
  37. end

  38. #==============================================================================
  39. # ■ Scene_Map
  40. #------------------------------------------------------------------------------
  41. #  处理地图画面的类。
  42. #==============================================================================

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

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
17 小时
注册时间
2016-5-7
帖子
18
4
 楼主| 发表于 2016-5-29 15:47:15 | 只看该作者
tamashii 发表于 2016-5-28 16:32
请把问题描述的清楚一些:
  • 是要显示系统时间还是游戏里指定的时间?

  • 是游戏的时候,一直都会显示的时间,就像模拟经营游戏里面的一样,
    就是地图界面,
    回复 支持 反对

    使用道具 举报

    Lv1.梦旅人

    梦石
    0
    星屑
    50
    在线时间
    17 小时
    注册时间
    2016-5-7
    帖子
    18
    5
     楼主| 发表于 2016-5-29 15:58:15 | 只看该作者
    Password 发表于 2016-5-28 18:57
    用这个脚本完全替换原 Scene_Map 即可。然后就可以愉快地+1s了
    默认1号开关控制显示与否。如果需要 ...

    哦哦,谢谢,
    回复 支持 反对

    使用道具 举报

    Lv1.梦旅人

    梦石
    0
    星屑
    50
    在线时间
    17 小时
    注册时间
    2016-5-7
    帖子
    18
    6
     楼主| 发表于 2016-5-29 15:58:43 | 只看该作者
    Password 发表于 2016-5-28 18:57
    用这个脚本完全替换原 Scene_Map 即可。然后就可以愉快地+1s了
    默认1号开关控制显示与否。如果需要 ...

    哦哦,谢谢,
    回复 支持 反对

    使用道具 举报

    Lv1.梦旅人

    梦石
    0
    星屑
    50
    在线时间
    17 小时
    注册时间
    2016-5-7
    帖子
    18
    7
     楼主| 发表于 2016-5-29 16:30:00 | 只看该作者
    Password 发表于 2016-5-28 18:57
    用这个脚本完全替换原 Scene_Map 即可。然后就可以愉快地+1s了
    默认1号开关控制显示与否。如果需要 ...

    这是怎么回事啊?
    回复 支持 反对

    使用道具 举报

    Lv4.逐梦者

    送快递的水表员

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

    开拓者贵宾

    8
    发表于 2016-5-29 21:06:52 | 只看该作者
    把测试工程下了下来运行了一遍并没有出现报错,
    能详细描述一下是运行了多久报错的吗?是在什么情况下报错的?或者使用了什么其他的脚本?
    另外在此之前麻烦帮我看一下110行是否是@time_window,如果不是的话改成@time_window.refresh就行了,
    虽然记得第一次测试的时候那里忘改了,但是发的时候应该已经改好了啊=。=

    实在不行的话就把那行改成@time_window.refresh unless  @time_window == nil

    点评

    可以再帮我加上日期的显示吗 是自己设置的游戏里面的日期  发表于 2016-6-3 17:25
    回复 支持 反对

    使用道具 举报

    Lv1.梦旅人

    梦石
    0
    星屑
    50
    在线时间
    17 小时
    注册时间
    2016-5-7
    帖子
    18
    9
     楼主| 发表于 2016-5-29 22:03:59 | 只看该作者
    Password 发表于 2016-5-29 21:06
    把测试工程下了下来运行了一遍并没有出现报错,
    能详细描述一下是运行了多久报错的吗?是在什么情况下报错 ...

    哦哦   谢谢了   我好像是用了其他的脚本了,
    回复 支持 反对

    使用道具 举报

    Lv1.梦旅人

    梦石
    0
    星屑
    50
    在线时间
    17 小时
    注册时间
    2016-5-7
    帖子
    18
    10
     楼主| 发表于 2016-5-29 22:04:28 | 只看该作者
    Password 发表于 2016-5-29 21:06
    把测试工程下了下来运行了一遍并没有出现报错,
    能详细描述一下是运行了多久报错的吗?是在什么情况下报错 ...

    哦哦   谢谢了   我好像是用了其他的脚本了,
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

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

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

    GMT+8, 2024-11-22 06:27

    Powered by Discuz! X3.1

    © 2001-2013 Comsenz Inc.

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