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

Project1

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

怎么增加没用的菜单框?

 关闭 [复制链接]

Lv2.观梦者

梦石
0
星屑
253
在线时间
574 小时
注册时间
2006-8-25
帖子
969
跳转到指定楼层
1
发表于 2007-8-23 17:16:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我想在黑色的部分显示一张(0, 314, 160, 100)位置的图片(或框也行)
其实显示就可以-.-位置我随便改,因为本来就是符合要求的160 x 100图片.

版务信息:本贴由楼主自主结贴~

Lv2.观梦者

梦石
0
星屑
253
在线时间
574 小时
注册时间
2006-8-25
帖子
969
2
 楼主| 发表于 2007-8-23 17:16:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我想在黑色的部分显示一张(0, 314, 160, 100)位置的图片(或框也行)
其实显示就可以-.-位置我随便改,因为本来就是符合要求的160 x 100图片.

版务信息:本贴由楼主自主结贴~

Lv2.观梦者

梦石
0
星屑
253
在线时间
574 小时
注册时间
2006-8-25
帖子
969
3
 楼主| 发表于 2007-8-24 01:54:54 | 只看该作者
或当打开菜单里面的"物品"时,启用事件,关闭时再启用事件,在哪里改?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
100
在线时间
11 小时
注册时间
2007-7-1
帖子
327
4
发表于 2007-8-24 02:05:59 | 只看该作者
仔细看看这个教程,写的很详细的。
http://rpg.blue/viewthread.php?tid=60574&ntime=2007%2D8%2D22+14%3A11%3A33
我看来也回来吧~
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
253
在线时间
574 小时
注册时间
2006-8-25
帖子
969
5
 楼主| 发表于 2007-8-24 02:23:24 | 只看该作者
bitmap = RPG::cache.picture("图片框")
self.contents.blt(x坐标,y坐标,bitmap,Rect.new(0,0,bitmap.width,height))

就两句脚本?一进游戏就出错...请问这两句应该放在哪里?
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-7-29
帖子
453
6
发表于 2007-8-24 02:32:06 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
253
在线时间
574 小时
注册时间
2006-8-25
帖子
969
7
 楼主| 发表于 2007-8-24 02:57:11 | 只看该作者
我要显示的地方不是菜单...是物品拦.....
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
253
在线时间
574 小时
注册时间
2006-8-25
帖子
969
8
 楼主| 发表于 2007-8-24 02:58:53 | 只看该作者
.....果然是在这个脚本里改才行的.....
感谢上面的朋友~
我的工程快完成了!
谢谢




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


  4. #==============================================================================
  5. # ■ Harts_Window_ItemTitle
  6. #------------------------------------------------------------------------------
  7. #  アイテム画面で、タイトルを表示するウィンドウ。
  8. #==============================================================================

  9. class Harts_Window_ItemTitle < Window_Base
  10.   #--------------------------------------------------------------------------
  11.   # ● オブジェクト初期化
  12.   #--------------------------------------------------------------------------
  13.   def initialize
  14.     super(0, 0, 160, 58)
  15.     self.contents = Bitmap.new(width - 32, height - 32)
  16.     self.contents.clear
  17.     self.contents.font.color = normal_color
  18.     self.contents.draw_text(4, 0, 120, 32, $data_system.words.item, 1)
  19.   end
  20. end

  21. #==============================================================================
  22. # ■ Harts_Window_ItemCommand
  23. #------------------------------------------------------------------------------
  24. #  アイテムの种别选择を行うウィンドウです。
  25. #==============================================================================

  26. class Harts_Window_ItemCommand < Window_Selectable
  27.   #--------------------------------------------------------------------------
  28.   # ● オブジェクト初期化
  29.   #--------------------------------------------------------------------------
  30.   def initialize
  31.     super(0, 58, 160, 256)
  32.     self.contents = Bitmap.new(width - 32, height - 32)
  33.     @item_max = 7
  34.     @commands = ["物品", "精灵", "特殊物品", "材料", "树果", "精灵装备", "精灵球"]
  35.     refresh
  36.     self.index = 0
  37.   end
  38.   #--------------------------------------------------------------------------
  39.   # ● リフレッシュ
  40.   #--------------------------------------------------------------------------
  41.   def refresh
  42.     self.contents.clear
  43.     for i in 0...@item_max
  44.     draw_item(i, normal_color)
  45.     end
  46.   end
  47.   #--------------------------------------------------------------------------
  48.   # ● 项目の描画
  49.   # index : 项目番号
  50.   # color : 文字色
  51.   #--------------------------------------------------------------------------
  52.   def draw_item(index, color)
  53.     self.contents.font.color = color
  54.     y = index * 32
  55.     self.contents.draw_text(4, y, 128, 32, @commands[index])
  56.   end
  57.   #--------------------------------------------------------------------------
  58.   # ● ヘルプテキスト更新
  59.   #--------------------------------------------------------------------------
  60.   def update_help
  61.     case self.index
  62.     when 0
  63.       @text = @commands[0]
  64.     when 1
  65.       @text = @commands[1]
  66.     when 2
  67.       @text = @commands[2]
  68.     when 3
  69.       @text = @commands[3]
  70.     when 4
  71.       @text = @commands[4]
  72.     when 5
  73.       @text = @commands[5]
  74.     when 6
  75.       @text = @commands[6]
  76.     #when 7
  77.       #@text = @commands[7]
  78.     end
  79.     @help_window.set_text(@text)
  80.   end
  81. end

  82. #==============================================================================
  83. # ■ Window_Item
  84. #------------------------------------------------------------------------------
  85. #  アイテム画面で、所持アイテムの一览を表示するウィンドウです。
  86. #==============================================================================

  87. class Harts_Window_ItemList < Window_Selectable
  88.   #--------------------------------------------------------------------------
  89.   # ● オブジェクト初期化
  90.   #--------------------------------------------------------------------------
  91.   def initialize
  92.     super(160, 0, 480, 416)
  93.     refresh
  94.     self.index = 0
  95.   end
  96.   #--------------------------------------------------------------------------
  97.   # ● アイテムの取得
  98.   #--------------------------------------------------------------------------
  99.   def item
  100.     return @data[self.index]
  101.   end
  102.   #--------------------------------------------------------------------------
  103.   # ● リフレッシュ
  104.   #--------------------------------------------------------------------------
  105.   def refresh
  106.     if self.contents != nil
  107.       self.contents.dispose
  108.       self.contents = nil
  109.     end
  110.     @data = []
  111.   end
  112.   #--------------------------------------------------------------------------
  113.   # ● アイテム一览设定
  114.   # command : 选择中のコマンド
  115.   #--------------------------------------------------------------------------
  116.   #0=平时/1=战斗时/2=菜单时/3=不可使用时
  117.   def set_item(command)
  118.     refresh
  119.     case command
  120.     when 0
  121.       for i in 1...$data_items.size
  122.         if ($data_items[i].occasion == 0 or $data_items[i].occasion == 3) and $game_party.item_number(i) > 0
  123.           @data.push($data_items[i])
  124.         end
  125.       end
  126.     when 1
  127.       for i in 1...$data_items.size
  128.         if ($data_items[i].occasion == 2 and $game_party.item_number(i) > 0)
  129.           @data.push($data_items[i])
  130.         end
  131.       end
  132.     when 2
  133.       for i in 1...$data_weapons.size
  134.         if $game_party.weapon_number(i) > 0
  135.           @data.push($data_weapons[i])
  136.         end
  137.       end
  138.     when 3
  139.       for i in 1...$data_armors.size
  140.         if $data_armors[i].kind == 0 and $game_party.armor_number(i) > 0
  141.           @data.push($data_armors[i])
  142.         end
  143.       end
  144.     when 4
  145.       for i in 1...$data_armors.size
  146.         if $data_armors[i].kind == 1 and $game_party.armor_number(i) > 0
  147.           @data.push($data_armors[i])
  148.         end
  149.       end
  150.     when 5
  151.       for i in 1...$data_armors.size
  152.         if $data_armors[i].kind == 2 and $game_party.armor_number(i) > 0
  153.           @data.push($data_armors[i])
  154.         end
  155.       end
  156.     when 6
  157.       for i in 1...$data_items.size
  158.         if ($data_items[i].occasion == 1 and $game_party.item_number(i) > 0)
  159.           @data.push($data_items[i])
  160.         end
  161.       end
  162.     #when 7
  163.     #  for i in 1...$data_items.size
  164.     #    if $data_items[i].occasion == 3 and $game_party.item_number(i) > 0
  165.     #      @data.push($data_items[i])
  166.     #    end
  167.     #  end
  168.     end
  169.     # 项目数が 0 でなければビットマップを作成し、全项目を描画
  170.     @item_max = @data.size
  171.     if @item_max > 0
  172.       self.contents = Bitmap.new(width - 32, row_max * 32)
  173.       self.contents.clear
  174.       for i in 0...@item_max
  175.         draw_item(i)
  176.       end
  177.     end
  178.   end
  179.   #--------------------------------------------------------------------------
  180.   # ● 种类别アイテム数の取得
  181.   #--------------------------------------------------------------------------
  182.   def item_number
  183.     return @item_max
  184.   end
  185.   #--------------------------------------------------------------------------
  186.   # ● 项目の描画
  187.   # index : 项目番号
  188.   #--------------------------------------------------------------------------
  189.   def draw_item(index)
  190.     item = @data[index]
  191.     case item
  192.     when RPG::Item
  193.       number = $game_party.item_number(item.id)
  194.     when RPG::Weapon
  195.       number = $game_party.weapon_number(item.id)
  196.     when RPG::Armor
  197.       number = $game_party.armor_number(item.id)
  198.     end
  199.     if item.is_a?(RPG::Item) and
  200.       $game_party.item_can_use?(item.id)
  201.       self.contents.font.color = normal_color
  202.     else
  203.       self.contents.font.color = disabled_color
  204.     end
  205.     x = 4
  206.     y = index * 32
  207.     bitmap = RPG::Cache.icon(item.icon_name)
  208.     opacity = self.contents.font.color == normal_color ? 255 : 128
  209.     self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
  210.     self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
  211.     self.contents.draw_text(x + 400, y, 16, 32, ":", 1)
  212.     self.contents.draw_text(x + 416, y, 24, 32, number.to_s, 2)
  213.   end
  214.   #--------------------------------------------------------------------------
  215.   # ● ヘルプテキスト更新
  216.   #--------------------------------------------------------------------------
  217.   def update_help
  218.     @help_window.set_text(self.item == nil ? "" : self.item.description)
  219.   end
  220. end

  221. #==============================================================================
  222. # ■ Harts_Scene_Item
  223. #------------------------------------------------------------------------------
  224. #  アイテム画面の处理を行うクラスです。再定义
  225. #==============================================================================

  226. class Scene_Item
  227.   #--------------------------------------------------------------------------
  228.   # ● メイン处理
  229.   #--------------------------------------------------------------------------
  230.   def main
  231.     # タイトルウィンドウを作成
  232.     @itemtitle_window = Harts_Window_ItemTitle.new
  233.     #コマンドウィンドウを作成
  234.     @itemcommand_window = Harts_Window_ItemCommand.new
  235.     @command_index = @itemcommand_window.index
  236.     #アイテムウィンドウを作成
  237.    
  238.     @itemlist_window = Harts_Window_ItemList.new
  239.     @itemlist_window.active = false
  240.     #ヘルプウィンドウを作成
  241.     @help_window = Window_Help.new
  242.     @help_window.x = 0
  243.     @help_window.y = 416
  244.     # ヘルプウィンドウを关连付け
  245.     @itemcommand_window.help_window = @help_window
  246.     @itemlist_window.help_window = @help_window
  247.     # ターゲットウィンドウを作成 (不可视?非アクティブに设定)
  248.     @target_window = Window_Target.new
  249.     @target_window.visible = false
  250.     @target_window.active = false
  251.     @equip_window = Window_Equip.new
  252.     # アイテムウィンドウ内容表示
  253.     @itemlist_window.set_item(@command_index)
  254.     # トランジション实行
  255.     Graphics.transition
  256.     # メインループ
  257.     loop do
  258.       # ゲーム画面を更新
  259.       Graphics.update
  260.       # 入力情报を更新
  261.       Input.update
  262.       # フレーム更新
  263.       update
  264.       # 画面が切り替わったらループを中断
  265.       if $scene != self
  266.         break
  267.       end
  268.     end
  269.     # トランジション准备
  270.     Graphics.freeze
  271.     # ウィンドウを解放
  272.     @itemtitle_window.dispose
  273.     @itemcommand_window.dispose
  274.     @itemlist_window.dispose
  275.     @help_window.dispose
  276.     @target_window.dispose
  277.     @equip_window.dispose
  278.   end
  279.   #--------------------------------------------------------------------------
  280.   # ● フレーム更新
  281.   #--------------------------------------------------------------------------
  282.   def update
  283.     # ウィンドウを更新
  284.     @itemtitle_window.update
  285.     @itemcommand_window.update
  286.     @itemlist_window.update
  287.     @help_window.update
  288.     @target_window.update
  289.     @equip_window.refresh
  290.     @equip_window.set_item(@itemlist_window.item)
  291.     if @command_index != @itemcommand_window.index
  292.       @command_index = @itemcommand_window.index
  293.       @itemlist_window.set_item(@command_index)
  294.     end
  295.     # コマンドウィンドウがアクティブの场合: update_itemcommand を呼ぶ
  296.     if @itemcommand_window.active
  297.       update_itemcommand
  298.       return
  299.     end
  300.     # アイテムウィンドウがアクティブの场合: update_itemlist を呼ぶ
  301.     if @itemlist_window.active
  302.       update_itemlist
  303.       return
  304.     end
  305.     # ターゲットウィンドウがアクティブの场合: update_target を呼ぶ
  306.     if @target_window.active
  307.       update_target
  308.       return
  309.     end
  310.   end
  311.   #--------------------------------------------------------------------------
  312.   # ● フレーム更新 (コマンドウィンドウがアクティブの场合)
  313.   #--------------------------------------------------------------------------
  314.   def update_itemcommand
  315.   # B ボタンが押された场合
  316.   if Input.trigger?(Input::B)
  317.   # キャンセル SE を演奏
  318.   $game_system.se_play($data_system.cancel_se)
  319.   # メニュー画面に切り替え
  320.   $scene = Scene_Menu.new(0)
  321.   return
  322.   end
  323.   # C ボタンが押された场合
  324.   if Input.trigger?(Input::C)
  325.   # 选择中のコマンドのアイテムがない场合
  326.   if @itemlist_window.item_number == 0
  327.   # ブザー SE を演奏
  328.   $game_system.se_play($data_system.buzzer_se)
  329.   return
  330.   end
  331.   # 决定 SE を演奏
  332.   $game_system.se_play($data_system.decision_se)
  333.   # アイテムウィンドウをアクティブにする
  334.   @itemcommand_window.active = false
  335.   @itemlist_window.active = true
  336.   @itemlist_window.index = 0
  337.   return
  338.   end
  339.   end
  340.   #--------------------------------------------------------------------------
  341.   # ● フレーム更新 (アイテムウィンドウがアクティブの场合)
  342.   #--------------------------------------------------------------------------
  343.   def update_itemlist
  344.     # B ボタンが押された场合
  345.     if Input.trigger?(Input::B)
  346.       # キャンセル SE を演奏
  347.       $game_system.se_play($data_system.cancel_se)
  348.       # アイテムウィンドウをアクティブにする
  349.       @itemcommand_window.active = true
  350.       @itemlist_window.active = false
  351.       @itemlist_window.index = 0
  352.       @itemcommand_window.index = @command_index
  353.       return
  354.     end
  355.     # C ボタンが押された场合
  356.     if Input.trigger?(Input::C)
  357.       # アイテムウィンドウで现在选择されているデータを取得
  358.       @item = @itemlist_window.item
  359.       # 使用アイテムではない场合
  360.       unless @item.is_a?(RPG::Item)
  361.         # ブザー SE を演奏
  362.         $game_system.se_play($data_system.buzzer_se)
  363.         return
  364.       end
  365.       # 使用できない场合
  366.       unless $game_party.item_can_use?(@item.id)
  367.         # ブザー SE を演奏
  368.         $game_system.se_play($data_system.buzzer_se)
  369.         return
  370.       end
  371.       # 决定 SE を演奏
  372.       $game_system.se_play($data_system.decision_se)
  373.       # 效果范围が味方の场合
  374.       if @item.scope >= 3
  375.         # ターゲットウィンドウをアクティブ化
  376.         @itemlist_window.active = false
  377.         @target_window.x = 304
  378.         @target_window.visible = true
  379.         @target_window.active = true
  380.         # 效果范围 (单体/全体) に应じてカーソル位置を设定
  381.         if @item.scope == 4 || @item.scope == 6
  382.           @target_window.index = -1
  383.         else
  384.           @target_window.index = 0
  385.         end
  386.         # 效果范围が味方以外の场合
  387.       else
  388.         # コモンイベント ID が有效の场合
  389.         if @item.common_event_id > 0
  390.           # コモンイベント呼び出し予约
  391.           $game_temp.common_event_id = @item.common_event_id
  392.           # アイテムの使用时 SE を演奏
  393.           $game_system.se_play(@item.menu_se)
  394.           # 消耗品の场合
  395.             if @item.consumable
  396.               # 使用したアイテムを 1 减らす
  397.               $game_party.lose_item(@item.id, 1)
  398.               # アイテムウィンドウの项目を再描画
  399.               @itemlist_window.draw_item(@itemlist_window.index)
  400.             end
  401.           # マップ画面に切り替え
  402.           $scene = Scene_Map.new
  403.           return
  404.         end
  405.       end
  406.       return
  407.     end
  408.   end
  409.   #--------------------------------------------------------------------------
  410.   # ● フレーム更新 (ターゲットウィンドウがアクティブの场合)
  411.   #--------------------------------------------------------------------------
  412.   def update_target
  413.     # B ボタンが押された场合
  414.     if Input.trigger?(Input::B)
  415.       # キャンセル SE を演奏
  416.       $game_system.se_play($data_system.cancel_se)
  417.       # アイテム切れなどで使用できなくなった场合
  418.       unless $game_party.item_can_use?(@item.id)
  419.         # アイテムウィンドウの内容を再作成
  420.         @itemlist_window.refresh
  421.       end
  422.       # ターゲットウィンドウを消去
  423.       @itemlist_window.active = true
  424.       @target_window.visible = false
  425.       @target_window.active = false
  426.       @itemlist_window.set_item(@command_index)
  427.       return
  428.     end
  429.     # C ボタンが押された场合
  430.     if Input.trigger?(Input::C)
  431.       # アイテムを使い切った场合
  432.       if $game_party.item_number(@item.id) == 0
  433.         # ブザー SE を演奏
  434.         $game_system.se_play($data_system.buzzer_se)
  435.         return
  436.       end
  437.       # ターゲットが全体の场合
  438.       if @target_window.index == -1
  439.         # パーティ全体にアイテムの使用效果を适用
  440.         used = false
  441.         for i in $game_party.actors
  442.           used |= i.item_effect(@item)
  443.         end
  444.       end
  445.       # ターゲットが单体の场合
  446.       if @target_window.index >= 0
  447.         # ターゲットのアクターにアイテムの使用效果を适用
  448.         target = $game_party.actors[@target_window.index]
  449.         used = target.item_effect(@item)
  450.       end
  451.       # アイテムを使った场合
  452.       if used
  453.         # アイテムの使用时 SE を演奏
  454.         $game_system.se_play(@item.menu_se)
  455.         # 消耗品の场合
  456.         if @item.consumable
  457.           # 使用したアイテムを 1 减らす
  458.           $game_party.lose_item(@item.id, 1)
  459.           # アイテムウィンドウの项目を再描画
  460.           @itemlist_window.draw_item(@itemlist_window.index)
  461.           @itemlist_window.set_item(@command_index)
  462.         end
  463.         # ターゲットウィンドウの内容を再作成
  464.         @target_window.refresh
  465.         # 全灭の场合
  466.         if $game_party.all_dead?
  467.           # ゲームオーバー画面に切り替え
  468.           $scene = Scene_Gameover.new
  469.           return
  470.         end
  471.         # コモンイベント ID が有效の场合
  472.         if @item.common_event_id > 0
  473.           # コモンイベント呼び出し予约
  474.           $game_temp.common_event_id = @item.common_event_id
  475.           # マップ画面に切り替え
  476.           $scene = Scene_Map.new
  477.           return
  478.         end
  479.       end
  480.       # アイテムを使わなかった场合
  481.       unless used
  482.         # ブザー SE を演奏
  483.         $game_system.se_play($data_system.buzzer_se)
  484.       end
  485.     return
  486.     end
  487.   end
  488. end


  489. #==============================================================================
  490. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  491. #==============================================================================
复制代码
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-7-29
帖子
453
9
发表于 2007-8-24 03:09:28 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-6-25 02:20

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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