Project1

标题: 如何在进入游戏标题前增加提示? [打印本页]

作者: 美丽晨露    时间: 2013-1-9 18:58
标题: 如何在进入游戏标题前增加提示?
本帖最后由 美丽晨露 于 2013-1-12 23:02 编辑

增加一个是否全屏的提示。
要怎么做?
作者: 美丽晨露    时间: 2013-1-10 19:12
没有人知道吗?
作者: 芯☆淡茹水    时间: 2013-1-11 14:44
  好像很麻烦的样子,首先要新建一个选择窗口,然后在Scene_Title增加选择项,比如“s1 = "是",s2 ="否"
然后是when0.........,when1.............。
因为本人不知道开启全屏的脚本怎么写,晕~~~。如果知道,肯定帮LZ写一个。
作者: 我爱吴悦淇    时间: 2013-1-11 15:31
在游戏脚本的最上面插入:
print"检查更新"
print"欢迎进入游戏"
print"正在连接默认服务器"


你试试看,以此类推!~
作者: 我爱吴悦淇    时间: 2013-1-11 15:32
。。。看错了,你等等啊!我发范例!
作者: 我爱吴悦淇    时间: 2013-1-11 15:46
芯☆淡茹水 发表于 2013-1-11 14:44
好像很麻烦的样子,首先要新建一个选择窗口,然后在Scene_Title增加选择项,比如“s1 = "是",s2 ="否"
然 ...

#unless $keybd
    $keybd = Win32API.new('user32', 'keybd_event', ['i', 'i', 'l', 'l'], 'v')
    $keybd.call(0xA4, 0, 0, 0)
    $keybd.call(13, 0, 0, 0)
    $keybd.call(13, 0, 2, 0)
    $keybd.call(0xA4, 0, 2, 0)



上面内位,我把全屏的脚本发给你,然后你去弄吧!(我可是冒着连贴的风险的哦!)
作者: 美丽晨露    时间: 2013-1-12 10:01
芯☆淡茹水 发表于 2013-1-11 14:44
好像很麻烦的样子,首先要新建一个选择窗口,然后在Scene_Title增加选择项,比如“s1 = "是",s2 ="否"
然 ...

不明白是什么意思啊
就是在标题脚本那再重写脚本吗
作者: tommay    时间: 2013-1-12 22:55
提供一个简单的范例(见 Project16.zip (202.67 KB, 下载次数: 243)
主要更改了Main脚本,并创建了一个自动执行显示选择项的事件。
注意点如下:
1.1号地图被用于显示是否全屏的选择项,不要安排别的用途(这里的地图序号可以调)
2.初始地图不要为1号地图,否则开始游戏会陷入死循环。
作者: 美丽晨露    时间: 2013-1-12 23:02
tommay 发表于 2013-1-12 22:55
提供一个简单的范例(见)
主要更改了Main脚本,并创建了一个自动执行显示选择项的事件。
注意点如下:

十分感谢
请问一下,是不是可以不用1号地图,用其他的地图
只要不把初始位置放入带有这个选项的地图就可以了?
作者: tommay    时间: 2013-1-12 23:06
美丽晨露 发表于 2013-1-12 23:02
十分感谢
请问一下,是不是可以不用1号地图,用其他的地图
只要不把初始位置放入带有这个选项的地图就可 ...

可以。我提供的范例中Main脚本第25行
  $game_map.setup(1)
括号里改成你的地图ID即可。
作者: 芯☆淡茹水    时间: 2013-1-13 13:00
本帖最后由 芯☆淡茹水 于 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
复制代码
截图:



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

十分感谢啊
这样也会方便其他朋友哦




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