Project1

标题: 如何做到游戏画面里显示变量? [打印本页]

作者: myaa475    时间: 2018-4-15 17:01
标题: 如何做到游戏画面里显示变量?
   哎哟?'逐梦'有动态显示血量的效果?我也要移植到自己的游戏里,这样就可以显示变量xxx目前还有多少...

   嗯嗯?这是图片的效果?

   .....

  

   

游戏界面1.PNG (33.07 KB, 下载次数: 9)

目标图片

目标图片

游戏界面2.PNG (33.43 KB, 下载次数: 7)

这个就是...

这个就是...

期待的效果.png (34.14 KB, 下载次数: 11)

希望可以做成这个样子

希望可以做成这个样子

作者: 灯笼菜刀王    时间: 2018-4-15 17:43
4个步骤

1,做个描绘你要的东西的窗口(可以复制window_gold,吧描绘金钱该成变量就行。)

2,把它的皮肤隐藏掉(或者不隐藏也可以,看自己想要的效果)(方法:初始化里,添加self.opacity = 0)

3,在scene_map里添加你的窗口,让它永久显示(当然切换画面要释放)

4,重点:考虑refresh时机,每帧都刷的话会严重浪费资源,可以让SP不等于old sp的时候在刷新
作者: myaa475    时间: 2018-4-15 17:53
灯笼菜刀王 发表于 2018-4-15 17:43
4个步骤

1,做个描绘你要的东西的窗口(可以复制window_gold,吧描绘金钱该成变量就行。)

    修改之后...

    这是啥情况?

WTF.PNG (8.3 KB, 下载次数: 12)

WTF.PNG

额.PNG (44.87 KB, 下载次数: 12)

额.PNG

作者: 真·可乐    时间: 2018-4-15 18:42
myaa475 发表于 2018-4-15 17:53
修改之后...

    这是啥情况?

你可能误解了哪位站友的意思
作者: 真·可乐    时间: 2018-4-15 19:50
https://rpg.blue/thread-379188-1-1.html
第七楼第五个
作者: CCD0645    时间: 2018-4-16 08:20
  1. #==========================================================================
  2. # 本脚本来自www.66rpg.com,用于任何游戏请保留此信息。
  3. #==========================================================================

  4. VAR_SWITCH = 26          # 26号开关打开此脚本才工作,关闭则停止运算,并且透明
  5. VAR_REFRESH_SWITCH = 27  # 27号开关控制强制刷新,使用时机:1、把窗口由透明变为不透明(包括第一次使用时),2、游戏中用脚本更改了$var

  6. $var = []
  7. $var = [[1,55,121],[2,32,32]] #所有需要显示在地图并且刷新的变量,可在游戏中用脚本更改。格式:[变量编号,x坐标,y坐标]

  8. #==============================================================================
  9. # ■ Window_XY
  10. #------------------------------------------------------------------------------
  11. #  显示坐标的窗口。
  12. #==============================================================================
  13. class Window_Var < Window_Base#注意前面那个window_xy是文件名
  14. #--------------------------------------------------------------------------
  15. # ● 初始化窗口
  16. #--------------------------------------------------------------------------
  17. def initialize
  18.   super(0, 0, 600+32, 480+16)#最后面那个数字是宽要显示多个需要改大,前面一个是长~
  19.   self.contents = Bitmap.new(width, height)
  20.   self.back_opacity = 255  # 这个是背景透明
  21.   self.opacity = 255       # 这个是边框和背景都透明
  22.   self.contents_opacity = 255       # 这个是内容透明
  23.   self.visible = false
  24.   self.contents.font.color = Color.new(0, 0, 0)  #定义文字颜色
  25.   self.contents.font.size = 14  #定义文字大小
  26.   self.z=100
  27.   @var = $var
  28.   @var_a = []
  29.   for var_draw in $var
  30.     @var_a[var_draw[0]] = $game_variables[var_draw[0]]
  31.   end   
  32.   refresh
  33. end

  34. #--------------------------------------------------------------------------
  35. # ● 刷新
  36. #--------------------------------------------------------------------------
  37. def refresh
  38.   if $game_switches[VAR_SWITCH]
  39.     @var = $var         # 记录现在变量数组结构
  40.     self.contents.clear # 清除以前的东西
  41.     for var_draw in @var
  42.       @var_a[var_draw[0]] = $game_variables[var_draw[0]] # 记录现在的游戏变量
  43.       self.contents.draw_text(var_draw[1],var_draw[2],640,32,@var_a[var_draw[0]].to_s)
  44.     end
  45.   end
  46. end
  47. #--------------------------------------------------------------------------
  48. # ● 判断文字刷新。节约内存用
  49. #--------------------------------------------------------------------------
  50. def judge
  51.   for var_draw in $var
  52.     if @var_a[var_draw[0]] != $game_variables[var_draw[0]] #如果现在记录的变量和游戏变量不同,刷新
  53.       return true
  54.     end
  55.   end
  56.   if $game_switches[VAR_REFRESH_SWITCH]  # 强制刷新的时候,刷新
  57.     $game_switches[VAR_REFRESH_SWITCH] = false
  58.     return true
  59.   end
  60.   return false
  61. end
  62. end

  63. class Scene_Map
  64. alias xy_66rpg_main main
  65. def main
  66.   @var_window = Window_Var.new
  67.   @var_window.opacity = 0
  68.   xy_66rpg_main
  69.   @var_window.dispose
  70. end
  71. #--------------------------------------------------------------------------
  72. # ● 刷新画面
  73. #--------------------------------------------------------------------------
  74. alias var_66rpg_update update
  75. def update
  76.   var_66rpg_update
  77.   if $game_switches[VAR_SWITCH]
  78.     @var_window.visible = true      
  79.     @var_window.refresh if @var_window.judge
  80.   else
  81.     @var_window.visible = false
  82.   end
  83. end
  84. end
  85. #==========================================================================
  86. # 本脚本来自www.66rpg.com,用于任何游戏请保留此信息。别以为加密就可以del哦
  87. #==========================================================================
复制代码





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