Project1

标题: 如何制作像仙剑4那样多命令的窗口 [打印本页]

作者: zxc3824    时间: 2011-8-4 22:02
标题: 如何制作像仙剑4那样多命令的窗口
仙剑4不少人玩过,废话我就不说了,我提供一个脚本,希望大家能够利用该脚本做个类似于标题菜单那样的菜单,我有个工程,除了基本的三个命令以外,还有一个游戏讯息的命令
看图吧


而我想进去后希望再弄个类似于这个标题菜单的菜单,但是只有一个命令,怕要求难,把素材打包上来吧
Titles.zip (374.47 KB, 下载次数: 100)

这是脚本
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================

  4. #==============================================================================
  5. # ■ 图片标题菜单1.0
  6. # Scene_Title
  7. #------------------------------------------------------------------------------
  8. # 作者:chaochao
  9. # http://zhuchao.go1.icpcn.com
  10. #==============================================================================
  11. class Scene_Title
  12.   def main
  13.     if $BTEST
  14.       battle_test
  15.       return
  16.     end
  17.     $data_mapinfos  = load_data("Data/MapInfos.rxdata")
  18.     $data_actors = load_data("Data/Actors.rxdata")
  19.     $data_classes = load_data("Data/Classes.rxdata")
  20.     $data_skills = load_data("Data/Skills.rxdata")
  21.     $data_items = load_data("Data/Items.rxdata")
  22.     $data_weapons = load_data("Data/Weapons.rxdata")
  23.     $data_armors = load_data("Data/Armors.rxdata")
  24.     $data_enemies = load_data("Data/Enemies.rxdata")
  25.     $data_troops = load_data("Data/Troops.rxdata")
  26.     $data_states = load_data("Data/States.rxdata")
  27.     $data_animations = load_data("Data/Animations.rxdata")
  28.     $data_tilesets = load_data("Data/Tilesets.rxdata")
  29.     $data_common_events = load_data("Data/CommonEvents.rxdata")
  30.     $data_system = load_data("Data/System.rxdata")
  31.     $game_system = Game_System.new
  32.     # 生成标题图形
  33.     @sprite = [Sprite.new]
  34.     for i in 0..8
  35.       @sprite[i] = Sprite.new
  36.       @sprite[i].opacity = 0
  37.     end
  38.     @sprite[0].bitmap = RPG::Cache.title($data_system.title_name)
  39.     @sprite[0].opacity = 0
  40.     #开始游戏的图片
  41.     @sprite[1].bitmap = Bitmap.new("Graphics/Titles/新的开始-2.png")
  42.     @sprite[2].bitmap = Bitmap.new("Graphics/Titles/新的开始-1.png")
  43.     #继续游戏的图片
  44.     @sprite[3].bitmap = Bitmap.new("Graphics/Titles/旧的回忆-2.png")
  45.     @sprite[4].bitmap = Bitmap.new("Graphics/Titles/旧的回忆-1.png")
  46.     #结束游戏的图片
  47.     @sprite[5].bitmap = Bitmap.new("Graphics/Titles/离开游戏-2.png")
  48.     @sprite[6].bitmap = Bitmap.new("Graphics/Titles/离开游戏-1.png")
  49.     #游戏讯息的图片
  50.     @sprite[7].bitmap = Bitmap.new("Graphics/Titles/游戏讯息-2.png")
  51.     @sprite[8].bitmap = Bitmap.new("Graphics/Titles/游戏讯息-1.png")
  52.     #图片位置
  53.     for i in 1..8
  54.       case i
  55.            
  56.          when 1
  57.            x=0
  58.            y=240
  59.            @sprite[i].x =x
  60.            @sprite[i].y =y
  61.          when 2
  62.             x=0
  63.             y=240
  64.             @sprite[i].x =x
  65.             @sprite[i].y =y
  66.       
  67.          when 3
  68.             x=0
  69.             y=360
  70.             @sprite[i].x =x
  71.             @sprite[i].y =y
  72.             
  73.          when 4
  74.             x=0
  75.             y=360
  76.             @sprite[i].x =x
  77.             @sprite[i].y =y   
  78.          when 5
  79.             x=0
  80.             y=420
  81.             @sprite[i].x =x
  82.             @sprite[i].y =y   
  83.               
  84.          when 6
  85.             x=0
  86.             y=420
  87.             @sprite[i].x =x
  88.             @sprite[i].y =y   
  89.           when 7
  90.             x=427
  91.             y=40
  92.             @sprite[i].x =x
  93.             @sprite[i].y =y   
  94.               
  95.          when 8
  96.             x=427
  97.             y=40
  98.             @sprite[i].x =x
  99.             @sprite[i].y =y   

  100.        end     
  101.            
  102.            
  103.       
  104.     end
  105.     @continue_enabled = false
  106.     for i in 0..35
  107.       if FileTest.exist?("Save#{i}.rxdata")
  108.         @continue_enabled = true
  109.       end
  110.     end
  111.     if @continue_enabled
  112.       @command_index = 1
  113.     else
  114.       @command_index = 0
  115.       #@sprite[3].tone = Tone.new(0, 0, 0, 255)
  116.      # @sprite[4].tone = Tone.new(0, 0, 0, 255)
  117.     end
  118.     $game_system.bgm_play($data_system.title_bgm)
  119.     Audio.me_stop
  120.     Audio.bgs_stop
  121.     Graphics.transition
  122.     loop do
  123.       Graphics.update
  124.       #淡出背景圖形
  125.       if @sprite[0].opacity <= 255
  126.         @sprite[0].opacity += 15
  127.       end
  128.       Input.update
  129.       update
  130.       if $scene != self
  131.         break
  132.       end
  133.     end
  134.     Graphics.freeze
  135.     # 釋放圖形
  136.     for i in 0..8
  137.       @sprite[i].bitmap.dispose
  138.       @sprite[i].dispose
  139.     end
  140.   end
  141.   def update
  142.   chaochaocommandchaochao
  143.   if Input.trigger?(Input::C)
  144.     case @command_index
  145.       when 0
  146.         command_new_game
  147.       when 1
  148.         command_continue
  149.       when 2
  150.         command_shutdown
  151.       when 3
  152.         command_yxxx
  153.       end
  154.     end
  155.   end
  156.   def chaochaocommandchaochao
  157.     if Input.trigger?(Input::UP)
  158.       @command_index -= 1
  159.       if @command_index < 0
  160.         @command_index = 3
  161.       end
  162.       $game_system.se_play($data_system.cursor_se)
  163.     end
  164.     if Input.trigger?(Input::DOWN)
  165.       @command_index += 1
  166.       if @command_index > 3
  167.         @command_index = 0
  168.       end
  169.       $game_system.se_play($data_system.cursor_se)
  170.     end
  171.   #修改………………
  172.     mouse_x, mouse_y = Mouse.get_mouse_pos
  173.     if (mouse_x>53) and (mouse_x<147)and(mouse_y>307)and(mouse_y<342)
  174.      if @command_index != 0
  175.      $game_system.se_play($data_system.cursor_se)
  176.      end
  177.      @command_index = 0
  178.     end
  179.     if (mouse_x>41) and (mouse_x<135)and(mouse_y>384)and(mouse_y<418)
  180.      if @command_index != 1
  181.       $game_system.se_play($data_system.cursor_se)
  182.      end
  183.      @command_index = 1
  184.     end
  185.     if (mouse_x>91) and (mouse_x<186)and(mouse_y>444)and(mouse_y<477)
  186.      if @command_index != 2
  187.       $game_system.se_play($data_system.cursor_se)
  188.      end
  189.      @command_index = 2
  190.    end
  191.     if (mouse_x>535) and (mouse_x<630)and(mouse_y>39)and(mouse_y<78)
  192.      if @command_index != 3
  193.      $game_system.se_play($data_system.cursor_se)
  194.      end
  195.      @command_index = 3
  196.    end
  197.   #--------------------------------------------------------------------------
  198.   # ● 命令 : 游戏讯息
  199.   #--------------------------------------------------------------------------
  200.   def command_yxxx
  201.     # 演奏确定 SE
  202.     $game_system.se_play($data_system.decision_se)
  203.     # 切换到游戏讯息画面
  204.     $scene = Scene_Yxxx.new
  205.   end
  206.   #修改………………
  207.     case @command_index
  208.     when 0
  209.       if @sprite[1].opacity >= 0
  210.         @sprite[1].opacity -= 30
  211.       end
  212.       if @sprite[2].opacity <= 240
  213.         @sprite[2].opacity += 30
  214.       end
  215.       if @sprite[3].opacity <= 210
  216.         @sprite[3].opacity += 30
  217.       end
  218.       if @sprite[4].opacity >= 0
  219.         @sprite[4].opacity -= 30
  220.       end
  221.       if @sprite[5].opacity <= 210
  222.         @sprite[5].opacity += 30
  223.       end
  224.       if @sprite[6].opacity >= 0
  225.         @sprite[6].opacity -= 30
  226.       end
  227.       if @sprite[7].opacity <= 210
  228.         @sprite[7].opacity += 30
  229.       end
  230.       if @sprite[8].opacity >= 0
  231.         @sprite[8].opacity -= 30
  232.       end

  233.     when 1
  234.       if @sprite[1].opacity <= 210
  235.         @sprite[1].opacity += 30
  236.       end
  237.       if @sprite[2].opacity >= 0
  238.         @sprite[2].opacity -= 30
  239.       end
  240.       if @sprite[3].opacity >= 0
  241.         @sprite[3].opacity -= 30
  242.       end
  243.       if @sprite[4].opacity <= 240
  244.         @sprite[4].opacity += 30
  245.       end
  246.       if @sprite[5].opacity <= 210
  247.         @sprite[5].opacity += 30
  248.       end
  249.       if @sprite[6].opacity >= 0
  250.         @sprite[6].opacity -= 30
  251.       end
  252.       if @sprite[7].opacity <= 210
  253.         @sprite[7].opacity += 30
  254.       end
  255.       if @sprite[8].opacity >= 0
  256.         @sprite[8].opacity -= 30
  257.       end
  258.     when 2
  259.       if @sprite[1].opacity <= 210
  260.         @sprite[1].opacity += 30
  261.       end
  262.       if @sprite[2].opacity >= 0
  263.         @sprite[2].opacity -= 30
  264.       end
  265.       if @sprite[3].opacity <= 210
  266.         @sprite[3].opacity += 30
  267.       end
  268.       if @sprite[4].opacity >= 0
  269.         @sprite[4].opacity -= 30
  270.       end
  271.       if @sprite[5].opacity >= 0
  272.         @sprite[5].opacity -= 30
  273.       end
  274.       if @sprite[6].opacity <= 240
  275.         @sprite[6].opacity += 30
  276.       end
  277.       if @sprite[7].opacity <= 210
  278.         @sprite[7].opacity += 30
  279.       end
  280.       if @sprite[8].opacity >= 0
  281.         @sprite[8].opacity -= 30
  282.       end
  283.     when 3
  284.       if @sprite[1].opacity <= 210
  285.         @sprite[1].opacity += 30
  286.       end
  287.       if @sprite[2].opacity >= 0
  288.         @sprite[2].opacity -= 30
  289.       end
  290.       if @sprite[3].opacity <= 210
  291.         @sprite[3].opacity += 30
  292.       end
  293.       if @sprite[4].opacity >= 0
  294.         @sprite[4].opacity -= 30
  295.       end
  296.       if @sprite[5].opacity >= 210
  297.         @sprite[5].opacity += 30
  298.       end
  299.       if @sprite[6].opacity >= 0
  300.         @sprite[6].opacity -= 30
  301.       end
  302.       if @sprite[7].opacity >= 0
  303.         @sprite[7].opacity -= 30
  304.       end
  305.       if @sprite[8].opacity <= 240
  306.         @sprite[8].opacity += 30
  307.       end
  308.     end
  309.   end
  310. end
复制代码
我自己照着这个脚本做个了另一个菜单,不过不管用

希望有高手做个想这个标题脚本那样的单个命令的菜单dsu_plus_rewardpost_czw
作者: 海老三    时间: 2011-8-4 23:51
{:2_30:}图片标题菜单?
兰州可以说清楚点么?什么叫单个命令?
作者: 2719358    时间: 2011-8-5 06:35
http://rpg.blue/forum.php?mod=vi ... 7%E4%BE%A0%E4%BC%A0




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