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

Project1

 找回密码
 注册会员
搜索
楼主: raymondyrf
打印 上一主题 下一主题

[已经解决] 自制的图片菜单,在游戏中通过对话调出,要怎么做呢?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
帖子
1543
11
发表于 2013-5-2 01:05:50 | 只看该作者
对话?您指的是在事件呼出它,还是在对话框中呼出它?
修改劇本中,仔細審查原來的劇情大綱,覺得有點不太滿意,嘗試編寫不同主角不同主線的劇情,希望能寫得出來。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
144
在线时间
107 小时
注册时间
2012-5-16
帖子
69
12
 楼主| 发表于 2013-5-2 01:07:17 | 只看该作者
j433463 发表于 2013-5-2 01:05
对话?您指的是在事件呼出它,还是在对话框中呼出它?

事件就可以了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
帖子
1543
13
发表于 2013-5-2 01:58:44 | 只看该作者
本帖最后由 j433463 于 2013-5-2 02:50 编辑

不好意思,刚才被自己一个小失误,搞得测试半天都不能正常切换,后来才发现是事件中开关指定错了,一场乌龙拖延...窘

改成的事件中操作开关切换显示/隐藏:

RUBY 代码复制
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ Window_Variables
  4. #------------------------------------------------------------------------------
  5. #     地图上显示变量窗口
  6. #==============================================================================
  7.  
  8. HPHUB_X = 100 #显示变量窗口的 X 座标
  9. HPHUB_Y = 0 #显示变量窗口的 Y 座标
  10.  
  11. HPHUB_SWITCH = 100 #切换 显示 / 隐藏 窗口的开关ID
  12.  
  13. class Window_Variables < Window_Base
  14.   #--------------------------------------------------------------------------
  15.   # ● 初始化
  16.   #--------------------------------------------------------------------------
  17.   def initialize
  18.     super(0, 0, 350 + standard_padding * 2, 250 + standard_padding * 2)
  19.     self.opacity = 0
  20.     #self.back_opacity = 120
  21.     refresh
  22.   end
  23.   #--------------------------------------------------------------------------
  24.   # ● 刷新
  25.   #--------------------------------------------------------------------------
  26.   def refresh
  27.     draw_background
  28.     draw_actor_face($game_party.members[0], 10, 20)
  29.     change_color(system_color)
  30.     draw_text(120, line_height * 0 + 30, 64, line_height, Vocab::param(2) + ":", 0)
  31.     draw_text(120, line_height * 1 + 30, 64, line_height, Vocab::param(3) + ":", 0)
  32.     change_color(normal_color)
  33.     draw_text(168, line_height * 0 + 30, 48, line_height, $game_actors[1].param(2), 2)
  34.     draw_text(168, line_height * 1 + 30, 48, line_height, $game_actors[1].param(3), 2)   
  35.   end
  36.   #--------------------------------------------------------------------------
  37.   # ● 绘制背景
  38.   #--------------------------------------------------------------------------
  39.   def draw_background
  40.     bitmap = Cache.picture("001_战士_A") #背景图
  41.     rect = Rect.new(0, 0, bitmap.width, bitmap.height)
  42.     contents.blt(contents_width - bitmap.width, contents_height - bitmap.height, bitmap, rect, 255)
  43.     bitmap.dispose
  44.   end
  45. end
  46.  
  47. #==============================================================================
  48. # ■ Scene_Map
  49. #------------------------------------------------------------------------------
  50. #      地图生成窗口
  51. #==============================================================================
  52. class Scene_Map < Scene_Base
  53.   alias new_start start
  54.   def start
  55.     new_start
  56.     @varia_window = Window_Variables.new
  57.     @varia_window.x = HPHUB_X
  58.     @varia_window.y = HPHUB_Y
  59.     @varia_window.visible = false
  60.   end
  61.   #--------------------------------------------------------------------------
  62.   # ● 刷新
  63.   #--------------------------------------------------------------------------
  64.   alias new_update update
  65.   def update
  66.     new_update
  67.     #初始值
  68.     return if @show_hp_hud == $game_switches[HPHUB_SWITCH]
  69.     p $game_switches[HPHUB_SWITCH].to_s + "=>" + @show_hp_hud.to_s
  70.     if $game_switches[HPHUB_SWITCH] != true
  71.       @show_hp_hud = false
  72.     else
  73.       @show_hp_hud = true
  74.     end
  75.     #显示/隐藏执行
  76.     if @show_hp_hud == true
  77.       @varia_window.refresh
  78.       @varia_window.visible = true
  79.     else
  80.       @varia_window.visible = false
  81.       #close_varia_window
  82.     end
  83.   end
  84.   #--------------------------------------------------------------------------
  85.   # ● 释放
  86.   #--------------------------------------------------------------------------
  87.   alias new_terminate terminate
  88.   def terminate
  89.     @varia_window.dispose
  90.     new_terminate
  91.   end
  92.   #--------------------------------------------------------------------------
  93.   # ● 关闭
  94.   #--------------------------------------------------------------------------
  95.   def close_varia_window
  96.     @varia_window.close
  97.     update until @varia_window.close?
  98.   end
  99. end



明明是开关 100 号,我在事件指定 001 号开启,噗,怎么试都没反应...
脚本稍作整理,把一些多余没用到的变量和程序去除了。
修改劇本中,仔細審查原來的劇情大綱,覺得有點不太滿意,嘗試編寫不同主角不同主線的劇情,希望能寫得出來。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
144
在线时间
107 小时
注册时间
2012-5-16
帖子
69
14
 楼主| 发表于 2013-5-2 02:08:25 | 只看该作者
j433463 发表于 2013-5-2 01:58
不好意思,刚才被自己一个小失误,搞得测试半天都不能正常切换,后来才发现是事件中开关指定错了,一场乌龙 ...

估计可以,准备睡觉了也没有时间去做详细测试,明天看看如何,再告诉你结果吧
总之太谢谢你啦!!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
144
在线时间
107 小时
注册时间
2012-5-16
帖子
69
15
 楼主| 发表于 2013-5-2 13:21:53 | 只看该作者
本帖最后由 raymondyrf 于 2013-5-2 13:23 编辑
j433463 发表于 2013-5-2 01:58
不好意思,刚才被自己一个小失误,搞得测试半天都不能正常切换,后来才发现是事件中开关指定错了,一场乌龙 ...

您给的那个东西成功了,达到了预期的效果。
太感谢了!
顺带问一句,draw_text这个语句实现出来的,把数值draw出来之后的数值都是右对齐的,比如这样:
1
100
但我们的习惯是:
1
100
这样显示的,所以我想问这个有没有得改?


回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
144
在线时间
107 小时
注册时间
2012-5-16
帖子
69
16
 楼主| 发表于 2013-5-2 15:35:56 | 只看该作者
j433463 发表于 2013-5-2 01:58
不好意思,刚才被自己一个小失误,搞得测试半天都不能正常切换,后来才发现是事件中开关指定错了,一场乌龙 ...


有问题出现呢,这个是怎么回事呢??

我把金钱的值draw到这里,本来游戏默认是0元,后来我同过某个事件添加了金钱,这个0依然存在,只是在上面加了501三个数字而已。
包括hp、mp这些值都是同样情况

麻烦帮忙看看是不是我改代码时改出了问题?

RUBY 代码复制
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ Window_Variables
  4. #------------------------------------------------------------------------------
  5. #     地图上显示变量窗口
  6. #==============================================================================
  7.  
  8. HPHUB_X = 100 #显示变量窗口的 X 座标
  9. HPHUB_Y = 0 #显示变量窗口的 Y 座标
  10.  
  11. HPHUB_SWITCH = 100 #切换 显示 / 隐藏 窗口的开关ID
  12.  
  13. class Window_Variables < Window_Base
  14.   #--------------------------------------------------------------------------
  15.   # ● 初始化
  16.   #--------------------------------------------------------------------------
  17.   def initialize
  18.     super(100, 120, 740, 600)
  19.     self.opacity = 0
  20.     #self.back_opacity = 120
  21.     refresh
  22.   end
  23.  
  24.   #--------------------------------------------------------------------------
  25.   # ● 刷新
  26.   #--------------------------------------------------------------------------
  27.   def refresh
  28.     draw_background
  29.     draw_actor_name($game_actors[1], 330, 140)
  30.     draw_actor_nickname($game_actors[1], 300, 210)
  31.     draw_actor_level($game_actors[1], 330, 177)
  32.     draw_actor_exp($game_actors[1], 520, 177)
  33.     draw_actor_param($game_actors[1], 230, 335, 0)   
  34.     draw_actor_param($game_actors[1], 230, 304, 1)  
  35.     draw_actor_param($game_actors[1], 230, 245, 2)   
  36.     draw_actor_param($game_actors[1], 230, 275, 3)   
  37.     draw_actor_param($game_actors[1], 230, 364, 4)   
  38.     draw_actor_param($game_actors[1], 230, 395, 5)   
  39.     draw_actor_param($game_actors[1], 230, 426, 6)   
  40.     draw_actor_param($game_actors[1], 230, 455, 7)   
  41.     draw_actor_hp($game_actors[1], 430, 455)
  42.     draw_actor_mp($game_actors[1], 430, 485)
  43.     change_color(text_color(6))
  44.     draw_text(250, 385, 300, 300,$game_party.gold, 2)
  45.  
  46.  
  47.   end
  48.   #--------------------------------------------------------------------------
  49.   # ● 绘制背景
  50.   #--------------------------------------------------------------------------
  51.   def draw_background
  52.     bitmap = Cache.picture("plain") #背景图
  53.     rect = Rect.new(0, 0, bitmap.width, bitmap.height)
  54.     contents.blt(contents_width - bitmap.width, contents_height - bitmap.height, bitmap, rect, 255)
  55.     bitmap.dispose
  56.   end
  57. end
  58.  
  59. #==============================================================================
  60. # ■ Scene_Map
  61. #------------------------------------------------------------------------------
  62. #      地图生成窗口
  63. #==============================================================================
  64. class Scene_Map < Scene_Base
  65.   alias new_start start
  66.   def start
  67.     new_start
  68.     @varia_window = Window_Variables.new
  69.     @varia_window.x = HPHUB_X
  70.     @varia_window.y = HPHUB_Y
  71.     @varia_window.visible = false
  72.   end
  73.   #--------------------------------------------------------------------------
  74.   # ● 刷新
  75.   #--------------------------------------------------------------------------
  76.   alias new_update update
  77.   def update
  78.     new_update
  79.     #初始值
  80.     return if @show_hp_hud == $game_switches[HPHUB_SWITCH]
  81.     p $game_switches[HPHUB_SWITCH].to_s + "=>" + @show_hp_hud.to_s
  82.     if $game_switches[HPHUB_SWITCH] != true
  83.       @show_hp_hud = false
  84.     else
  85.       @show_hp_hud = true
  86.     end
  87.     #显示/隐藏执行
  88.     if @show_hp_hud == true
  89.       @varia_window.refresh
  90.       @varia_window.visible = true
  91.     else
  92.       @varia_window.visible = false
  93.       #close_varia_window
  94.     end
  95.   end
  96.   #--------------------------------------------------------------------------
  97.   # ● 释放
  98.   #--------------------------------------------------------------------------
  99.   alias new_terminate terminate
  100.   def terminate
  101.     @varia_window.dispose
  102.     new_terminate
  103.   end
  104.   #--------------------------------------------------------------------------
  105.   # ● 关闭
  106.   #--------------------------------------------------------------------------
  107.   def close_varia_window
  108.     @varia_window.close
  109.     update until @varia_window.close?
  110.   end
  111. end
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
144
在线时间
107 小时
注册时间
2012-5-16
帖子
69
17
 楼主| 发表于 2013-5-2 16:02:59 | 只看该作者
j433463 发表于 2013-5-2 01:58
不好意思,刚才被自己一个小失误,搞得测试半天都不能正常切换,后来才发现是事件中开关指定错了,一场乌龙 ...

OK了,我把素材弄成不透明的就行了,无论如何还是感谢你!帮我解决了一个大问题!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
帖子
1543
18
发表于 2013-5-2 22:53:00 | 只看该作者
不好意思,刚刚才上线,那个情况可能是之前的值没有消除,您在 def refresh 第一行放上:
  1. contents.clear
复制代码
让脚本在刷新时先清理窗口画面,应该就可以解决了,保持背景透明不要紧的。
修改劇本中,仔細審查原來的劇情大綱,覺得有點不太滿意,嘗試編寫不同主角不同主線的劇情,希望能寫得出來。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
144
在线时间
107 小时
注册时间
2012-5-16
帖子
69
19
 楼主| 发表于 2013-5-3 12:22:18 | 只看该作者
j433463 发表于 2013-5-2 22:53
不好意思,刚刚才上线,那个情况可能是之前的值没有消除,您在 def refresh 第一行放上:让脚本在刷新时先 ...

原来是这样,谢谢了啊
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
144
在线时间
107 小时
注册时间
2012-5-16
帖子
69
20
 楼主| 发表于 2013-5-3 12:59:06 | 只看该作者
j433463 发表于 2013-5-2 22:53
不好意思,刚刚才上线,那个情况可能是之前的值没有消除,您在 def refresh 第一行放上:让脚本在刷新时先 ...

请问您这个window不能同时存在多个吗??
我想再另开一个同样的window来显示其他东西,但是把很多定义的@XX什么的修改好,不会和window_variables重复,
却提示error,stack level too deep
请问怎么解决呢??
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-6-27 03:27

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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