Project1

标题: 怎样在地图界面显示窗口? [打印本页]

作者: xcqxhb2011    时间: 2011-8-18 22:24
标题: 怎样在地图界面显示窗口?
比如说:我新建一个组,class了一个Window_AAA < Window_Base,现在我想在地图界面(有个小人在走动的界面)左上角显示这个框,要怎么改脚本?dsu_plus_rewardpost_czw
作者: 龙腾天下    时间: 2011-8-18 23:02
推荐个教程:http://rpg.blue/thread-63807-1-1.html
作者: tyrpg    时间: 2011-8-18 23:08
地图上调用Window_AAA的脚本 插入到Main前即可:
  1. class Scene_Map
  2.   #--------------------------------------------------------------------------
  3.   # ● 主处理
  4.   #--------------------------------------------------------------------------
  5.   def main
  6.     # 生成活动块
  7.     @spriteset = Spriteset_Map.new
  8.     # 生成信息窗口
  9.     @message_window = Window_Message.new
  10.     # 生成AAA窗口
  11.     @aaa_window = Window_AAA.new
  12.     @aaa_window.x = 0
  13.     @aaa_window.y = 0
  14.     @aaa_window.z = 9999
  15.     @aaa_window.visible = true
  16.     # 执行过渡
  17.     Graphics.transition
  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.     Graphics.freeze
  33.     # 释放活动块
  34.     @spriteset.dispose
  35.     # 释放信息窗口
  36.     @message_window.dispose
  37.     # 释放AAA窗口
  38.     @aaa_window.dispose
  39.     # 标题画面切换中的情况下
  40.     if $scene.is_a?(Scene_Title)
  41.       # 淡入淡出画面
  42.       Graphics.transition
  43.       Graphics.freeze
  44.     end
  45.   end
  46.   #--------------------------------------------------------------------------
  47.   # ● 刷新画面
  48.   #--------------------------------------------------------------------------
  49.   def update
  50.     # 循环
  51.     loop do
  52.       # 按照地图、实例、主角的顺序刷新
  53.       # (本更新顺序不会在满足事件的执行条件下成为给予角色瞬间移动
  54.       #  的机会的重要因素)
  55.       $game_map.update
  56.       $game_system.map_interpreter.update
  57.       $game_player.update
  58.       # 系统 (计时器)、画面刷新
  59.       $game_system.update
  60.       $game_screen.update
  61.       # 如果主角在场所移动中就中断循环
  62.       unless $game_temp.player_transferring
  63.         break
  64.       end
  65.       # 执行场所移动
  66.       transfer_player
  67.       # 处理过渡中的情况下、中断循环
  68.       if $game_temp.transition_processing
  69.         break
  70.       end
  71.     end
  72.     # 刷新活动块
  73.     @spriteset.update
  74.     # 刷新信息窗口
  75.     @message_window.update
  76.     # 刷新AAA窗口
  77.     @aaa_window.update
  78.     # 游戏结束的情况下
  79.     if $game_temp.gameover
  80.       # 切换的游戏结束画面
  81.       $scene = Scene_Gameover.new
  82.       return
  83.     end
  84.     # 返回标题画面的情况下
  85.     if $game_temp.to_title
  86.       # 切换到标题画面
  87.       $scene = Scene_Title.new
  88.       return
  89.     end
  90.     # 处理过渡中的情况下
  91.     if $game_temp.transition_processing
  92.       # 清除过渡处理中标志
  93.       $game_temp.transition_processing = false
  94.       # 执行过渡
  95.       if $game_temp.transition_name == ""
  96.         Graphics.transition(20)
  97.       else
  98.         Graphics.transition(40, "Graphics/Transitions/" +
  99.           $game_temp.transition_name)
  100.       end
  101.     end
  102.     # 显示信息窗口中的情况下
  103.     if $game_temp.message_window_showing
  104.       return
  105.     end
  106.     # 遇敌计数为 0 且、且遇敌列表不为空的情况下
  107.     if $game_player.encounter_count == 0 and $game_map.encounter_list != []
  108.       # 不是在事件执行中或者禁止遇敌中
  109.       unless $game_system.map_interpreter.running? or
  110.              $game_system.encounter_disabled
  111.         # 确定队伍
  112.         n = rand($game_map.encounter_list.size)
  113.         troop_id = $game_map.encounter_list[n]
  114.         # 队伍有效的话
  115.         if $data_troops[troop_id] != nil
  116.           # 设置调用战斗标志
  117.           $game_temp.battle_calling = true
  118.           $game_temp.battle_troop_id = troop_id
  119.           $game_temp.battle_can_escape = true
  120.           $game_temp.battle_can_lose = false
  121.           $game_temp.battle_proc = nil
  122.         end
  123.       end
  124.     end
  125.     # 按下 B 键的情况下
  126.     if Input.trigger?(Input::B)
  127.       # 不是在事件执行中或菜单禁止中
  128.       unless $game_system.map_interpreter.running? or
  129.              $game_system.menu_disabled
  130.         # 设置菜单调用标志以及 SE 演奏
  131.         $game_temp.menu_calling = true
  132.         $game_temp.menu_beep = true
  133.       end
  134.     end
  135.     # 调试模式为 ON 并且按下 F9 键的情况下
  136.     if $DEBUG and Input.press?(Input::F9)
  137.       # 设置调用调试标志
  138.       $game_temp.debug_calling = true
  139.     end
  140.     # 不在主角移动中的情况下
  141.     unless $game_player.moving?
  142.       # 执行各种画面的调用
  143.       if $game_temp.battle_calling
  144.         call_battle
  145.       elsif $game_temp.shop_calling
  146.         call_shop
  147.       elsif $game_temp.name_calling
  148.         call_name
  149.       elsif $game_temp.menu_calling
  150.         call_menu
  151.       elsif $game_temp.save_calling
  152.         call_save
  153.       elsif $game_temp.debug_calling
  154.         call_debug
  155.       end
  156.     end
  157.   end
  158. end
复制代码

作者: xcqxhb2011    时间: 2011-8-19 09:49
龙腾天下 发表于 2011-8-18 23:02
推荐个教程:http://rpg.blue/thread-63807-1-1.html

是RMXP的吗?


xcqxhb2011于2011-8-19 21:37补充以下内容:
你们都很好,我不知道给谁分了……纠结中……
作者: tyrpg    时间: 2011-8-20 09:30
LZ真邪恶,我早猜到了……
作者: 龙腾天下    时间: 2011-8-20 11:20
tyrpg 发表于 2011-8-20 09:30
LZ真邪恶,我早猜到了……

不要这样子啦。。。LZ学习RGSS是好事。。。那些分倒是其次。。。。我也在学习中。。
作者: whf623    时间: 2011-8-20 12:31
问题只有一个 但是方法有很多   我最近也在做这个




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