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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: 美丽晨露
打印 上一主题 下一主题

[已经解决] 如何在进入游戏标题前增加提示?

[复制链接]

Lv5.捕梦者

梦石
0
星屑
31847
在线时间
5079 小时
注册时间
2012-11-19
帖子
4877

开拓者

11
发表于 2013-1-13 13:00:48 | 只看该作者
本帖最后由 芯☆淡茹水 于 2013-1-13 13:36 编辑

  哎~,看来来迟了啊,虽然楼主的问题解决了,但答应过楼主的,还是把自己的脚本附上。
顺便该脚本也发地球村,方便需要的人。


脚本:
  1. #============================================================================
  2. #★标题画面前选择是否全屏游戏
  3. #============================================================================
  4. #  by:芯☆淡茹水
  5. #============================================================================
  6. #◆此脚本在原有的标题画面前添加了一个选择是否全屏游戏的选择场景,一些必要的东
  7. #◆西如:战斗测试,还是挪到了这个场景里面。
  8. #----------------------------------------------------------------------------
  9. #◆使用方法:1.复制该脚本,插入到 Main 前。
  10. #            2.脚本 Main 第13行,原句:$scene = Scene_Scene_Title.new
  11. #                                改为:$scene = Scene_Xuanze.new
  12. #----------------------------------------------------------------------------
  13. #◆感谢“我爱吴悦淇”提供全屏的脚本代码。                                                
  14. #============================================================================
  15. # ■ Scene_Title
  16. #----------------------------------------------------------------------------
  17. #  处理标题前选择的类。
  18. #============================================================================

  19. class Scene_Xuanze
  20.   #--------------------------------------------------------------------------
  21.   # ● 主处理
  22.   #--------------------------------------------------------------------------
  23.   def main
  24.     # 战斗测试的情况下
  25.     if $BTEST
  26.       battle_test
  27.       return
  28.     end
  29.     # 载入数据库
  30.     $data_actors        = load_data("Data/Actors.rxdata")
  31.     $data_classes       = load_data("Data/Classes.rxdata")
  32.     $data_skills        = load_data("Data/Skills.rxdata")
  33.     $data_items         = load_data("Data/Items.rxdata")
  34.     $data_weapons       = load_data("Data/Weapons.rxdata")
  35.     $data_armors        = load_data("Data/Armors.rxdata")
  36.     $data_enemies       = load_data("Data/Enemies.rxdata")
  37.     $data_troops        = load_data("Data/Troops.rxdata")
  38.     $data_states        = load_data("Data/States.rxdata")
  39.     $data_animations    = load_data("Data/Animations.rxdata")
  40.     $data_tilesets      = load_data("Data/Tilesets.rxdata")
  41.     $data_common_events = load_data("Data/CommonEvents.rxdata")
  42.     $data_system        = load_data("Data/System.rxdata")
  43.     # 生成系统对像
  44.     $game_system = Game_System.new
  45.     # 生成命令窗口
  46.     s1 = "是"
  47.     s2 = "否"
  48.     @command_window = Window_Command.new(192, [s1, s2])
  49.     @command_window.back_opacity = 160
  50.     @command_window.x = 320 - @command_window.width / 2
  51.     @command_window.y = 220
  52.     # 生成提示窗口
  53.     @tishi_window = Window_Tishi.new
  54.     @tishi_window.back_opacity = 160
  55.     @tishi_window.x = 320 - @tishi_window.width / 2
  56.     @tishi_window.y = 162
  57.     # 执行过渡
  58.     Graphics.transition
  59.     # 主循环
  60.     loop do
  61.       # 刷新游戏画面
  62.       Graphics.update
  63.       # 刷新输入信息
  64.       Input.update
  65.       # 刷新画面
  66.       update
  67.       # 如果画面被切换就中断循环
  68.       if $scene != self
  69.         break
  70.       end
  71.     end
  72.     # 准备过渡
  73.     Graphics.freeze
  74.     # 释放窗口
  75.     @tishi_window.dispose
  76.     @command_window.dispose
  77.   end
  78.   #--------------------------------------------------------------------------
  79.   # ● 刷新画面
  80.   #--------------------------------------------------------------------------
  81.   def update
  82.     # 刷新命令窗口
  83.     @command_window.update
  84.     # 按下 C 键的情况下
  85.     if Input.trigger?(Input::C)
  86.       # 命令窗口的光标位置的分支
  87.       case @command_window.index
  88.       when 0  # 是
  89.         # 全屏化
  90.         $keybd = Win32API.new('user32', 'keybd_event', ['i', 'i', 'l', 'l'], 'v')
  91.         $keybd.call(0xA4, 0, 0, 0)
  92.         $keybd.call(13, 0, 0, 0)
  93.         $keybd.call(13, 0, 2, 0)
  94.         $keybd.call(0xA4, 0, 2, 0)
  95.         # 切换到标题画面
  96.         $scene = Scene_Title.new
  97.       when 1  # 否
  98.         # 切换到标题画面
  99.         $scene = Scene_Title.new
  100.       end
  101.     end
  102.   end
  103.   #--------------------------------------------------------------------------
  104.   # ● 战斗测试
  105.   #--------------------------------------------------------------------------
  106.   def battle_test
  107.     # 载入数据库 (战斗测试用)
  108.     $data_actors        = load_data("Data/BT_Actors.rxdata")
  109.     $data_classes       = load_data("Data/BT_Classes.rxdata")
  110.     $data_skills        = load_data("Data/BT_Skills.rxdata")
  111.     $data_items         = load_data("Data/BT_Items.rxdata")
  112.     $data_weapons       = load_data("Data/BT_Weapons.rxdata")
  113.     $data_armors        = load_data("Data/BT_Armors.rxdata")
  114.     $data_enemies       = load_data("Data/BT_Enemies.rxdata")
  115.     $data_troops        = load_data("Data/BT_Troops.rxdata")
  116.     $data_states        = load_data("Data/BT_States.rxdata")
  117.     $data_animations    = load_data("Data/BT_Animations.rxdata")
  118.     $data_tilesets      = load_data("Data/BT_Tilesets.rxdata")
  119.     $data_common_events = load_data("Data/BT_CommonEvents.rxdata")
  120.     $data_system        = load_data("Data/BT_System.rxdata")
  121.     # 重置测量游戏时间用的画面计数器
  122.     Graphics.frame_count = 0
  123.     # 生成各种游戏对像
  124.     $game_temp          = Game_Temp.new
  125.     $game_system        = Game_System.new
  126.     $game_switches      = Game_Switches.new
  127.     $game_variables     = Game_Variables.new
  128.     $game_self_switches = Game_SelfSwitches.new
  129.     $game_screen        = Game_Screen.new
  130.     $game_actors        = Game_Actors.new
  131.     $game_party         = Game_Party.new
  132.     $game_troop         = Game_Troop.new
  133.     $game_map           = Game_Map.new
  134.     $game_player        = Game_Player.new
  135.     # 设置战斗测试用同伴
  136.     $game_party.setup_battle_test_members
  137.     # 设置队伍 ID、可以逃走标志、战斗背景
  138.     $game_temp.battle_troop_id = $data_system.test_troop_id
  139.     $game_temp.battle_can_escape = true
  140.     $game_map.battleback_name = $data_system.battleback_name
  141.     # 演奏战斗开始 BGM
  142.     $game_system.se_play($data_system.battle_start_se)
  143.     # 演奏战斗 BGM
  144.     $game_system.bgm_play($game_system.battle_bgm)
  145.     # 切换到战斗画面
  146.     $scene = Scene_Battle.new
  147.   end
  148. end
  149. #==============================================================================
  150. # ■ Scene_Title
  151. #------------------------------------------------------------------------------
  152. #  处理标题画面的类。
  153. #==============================================================================

  154. class Scene_Title
  155.   #--------------------------------------------------------------------------
  156.   # ● 主处理
  157.   #--------------------------------------------------------------------------
  158.   def main
  159.     # 生成标题图形
  160.     @sprite = Sprite.new
  161.     @sprite.bitmap = RPG::Cache.title($data_system.title_name)
  162.     # 生成命令窗口
  163.     s1 = "新游戏"
  164.     s2 = "继续"
  165.     s3 = "退出"
  166.     @command_window = Window_Command.new(192, [s1, s2, s3])
  167.     @command_window.back_opacity = 160
  168.     @command_window.x = 320 - @command_window.width / 2
  169.     @command_window.y = 288
  170.     # 判定继续的有效性
  171.     # 存档文件一个也不存在的时候也调查
  172.     # 有効为 @continue_enabled 为 true、无效为 false
  173.     @continue_enabled = false
  174.     for i in 0..3
  175.       if FileTest.exist?("Save#{i+1}.rxdata")
  176.         @continue_enabled = true
  177.       end
  178.     end
  179.     # 继续为有效的情况下、光标停止在继续上
  180.     # 无效的情况下、继续的文字显示为灰色
  181.     if @continue_enabled
  182.       @command_window.index = 1
  183.     else
  184.       @command_window.disable_item(1)
  185.     end
  186.     # 演奏标题 BGM
  187.     $game_system.bgm_play($data_system.title_bgm)
  188.     # 停止演奏 ME、BGS
  189.     Audio.me_stop
  190.     Audio.bgs_stop
  191.     # 执行过渡
  192.     Graphics.transition
  193.     # 主循环
  194.     loop do
  195.       # 刷新游戏画面
  196.       Graphics.update
  197.       # 刷新输入信息
  198.       Input.update
  199.       # 刷新画面
  200.       update
  201.       # 如果画面被切换就中断循环
  202.       if $scene != self
  203.         break
  204.       end
  205.     end
  206.     # 装备过渡
  207.     Graphics.freeze
  208.     # 释放命令窗口
  209.     @command_window.dispose
  210.     # 释放标题图形
  211.     @sprite.bitmap.dispose
  212.     @sprite.dispose
  213.   end
  214.   #--------------------------------------------------------------------------
  215.   # ● 刷新画面
  216.   #--------------------------------------------------------------------------
  217.   def update
  218.     # 刷新命令窗口
  219.     @command_window.update
  220.     # 按下 C 键的情况下
  221.     if Input.trigger?(Input::C)
  222.       # 命令窗口的光标位置的分支
  223.       case @command_window.index
  224.       when 0  # 新游戏
  225.         command_new_game
  226.       when 1  # 继续
  227.         command_continue
  228.       when 2  # 退出
  229.         command_shutdown
  230.       end
  231.     end
  232.   end
  233.   #--------------------------------------------------------------------------
  234.   # ● 命令 : 新游戏
  235.   #--------------------------------------------------------------------------
  236.   def command_new_game
  237.     # 演奏确定 SE
  238.     $game_system.se_play($data_system.decision_se)
  239.     # 停止 BGM
  240.     Audio.bgm_stop
  241.     # 重置测量游戏时间用的画面计数器
  242.     Graphics.frame_count = 0
  243.     # 生成各种游戏对像
  244.     $game_temp          = Game_Temp.new
  245.     $game_system        = Game_System.new
  246.     $game_switches      = Game_Switches.new
  247.     $game_variables     = Game_Variables.new
  248.     $game_self_switches = Game_SelfSwitches.new
  249.     $game_screen        = Game_Screen.new
  250.     $game_actors        = Game_Actors.new
  251.     $game_party         = Game_Party.new
  252.     $game_troop         = Game_Troop.new
  253.     $game_map           = Game_Map.new
  254.     $game_player        = Game_Player.new
  255.     # 设置初期同伴位置
  256.     $game_party.setup_starting_members
  257.     # 设置初期位置的地图
  258.     $game_map.setup($data_system.start_map_id)
  259.     # 主角向初期位置移动
  260.     $game_player.moveto($data_system.start_x, $data_system.start_y)
  261.     # 刷新主角
  262.     $game_player.refresh
  263.     # 执行地图设置的 BGM 与 BGS 的自动切换
  264.     $game_map.autoplay
  265.     # 刷新地图 (执行并行事件)
  266.     $game_map.update
  267.     # 切换地图画面
  268.     $scene = Scene_Map.new
  269.   end
  270.   #--------------------------------------------------------------------------
  271.   # ● 命令 : 继续
  272.   #--------------------------------------------------------------------------
  273.   def command_continue
  274.     # 继续无效的情况下
  275.     unless @continue_enabled
  276.       # 演奏无效 SE
  277.       $game_system.se_play($data_system.buzzer_se)
  278.       return
  279.     end
  280.     # 演奏确定 SE
  281.     $game_system.se_play($data_system.decision_se)
  282.     # 切换到读档画面
  283.     $scene = Scene_Load.new
  284.   end
  285.   #--------------------------------------------------------------------------
  286.   # ● 命令 : 退出
  287.   #--------------------------------------------------------------------------
  288.   def command_shutdown
  289.     # 演奏确定 SE
  290.     $game_system.se_play($data_system.decision_se)
  291.     # BGM、BGS、ME 的淡入淡出
  292.     Audio.bgm_fade(800)
  293.     Audio.bgs_fade(800)
  294.     Audio.me_fade(800)
  295.     # 退出
  296.     $scene = nil
  297.   end
  298. end
  299. #==============================================================================
  300. # ■ Window_Tishi
  301. #------------------------------------------------------------------------------
  302. #  显示提示的窗口。
  303. #==============================================================================

  304. class Window_Tishi < Window_Base
  305.   #--------------------------------------------------------------------------
  306.   # ● 初始化窗口
  307.   #--------------------------------------------------------------------------
  308.   def initialize
  309.     super(0, 0, 192, 58)
  310.     self.contents = Bitmap.new(width - 32, height - 32)
  311.     refresh
  312.   end
  313.   #--------------------------------------------------------------------------
  314.   # ● 刷新
  315.   #--------------------------------------------------------------------------
  316.   def refresh
  317.     self.contents.clear
  318.     self.contents.font.color = normal_color
  319.     self.contents.draw_text(0,-12, 172, 52, "是否全屏进入游戏?")
  320.   end
  321. end
复制代码
截图:


评分

参与人数 1星屑 +90 收起 理由
hcm + 90 认可答案

查看全部评分

xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
20
星屑
1840
在线时间
6925 小时
注册时间
2012-12-14
帖子
11485

短篇十战斗者组别冠军开拓者贵宾短篇九勇士组亚军

12
 楼主| 发表于 2013-1-13 14:27:05 | 只看该作者
芯☆淡茹水 发表于 2013-1-13 13:00
哎~,看来来迟了啊,虽然楼主的问题解决了,但答应过楼主的,还是把自己的脚本附上。
顺便该脚本也发地球 ...

十分感谢啊
这样也会方便其他朋友哦
大家好,这里是晨露的说。请多多指教。
刚入门RM软件制作,请大家多多帮助我哦。
落雪君的欢乐像素教程,欢迎查阅。

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-19 13:13

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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