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

Project1

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

[已经解决] 如何制作计步器

[复制链接]

Lv1.梦旅人

梦石
0
星屑
590
在线时间
9 小时
注册时间
2012-7-25
帖子
3
跳转到指定楼层
1
发表于 2013-3-31 13:44:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
如何做到在地图里走一步,在右上角显示“1”,走两步显示“2”......
然后在结尾统计步数?

Lv1.梦旅人

梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
帖子
1543
来自 4楼
发表于 2013-3-31 23:29:48 | 只看该作者
本帖最后由 j433463 于 2013-3-31 23:44 编辑

试试吧:

RUBY 代码复制
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ Window_Steps
  4. #------------------------------------------------------------------------------
  5. #     地图上显示步数窗口
  6. #==============================================================================
  7. #  在不想要显示的地图备注栏中放上 <NOSTEPS> 就可以隐藏。
  8. #==============================================================================
  9.  
  10. STHUD_X = 384             #显示变量的 X 座标
  11. STHUD_Y = 0             #显示变量的 Y 座标
  12.  
  13. STHUD_UNIT = "步"  #步数单位
  14. STHUD_OP = 0           #窗口的不透明度 0-255
  15. STHUD_BK = true       #是否显示背景色? true = 是, false = 否
  16.  
  17. STHUD_INPUT = :C    #切换显示/隐藏按钮, 若不想要按钮切换, 等号右边可以清除, 或改为 nil 或 "" 或 ''
  18.  
  19. class Window_Steps < Window_Base
  20.   #--------------------------------------------------------------------------
  21.   # ● 初始化
  22.   #--------------------------------------------------------------------------
  23.   def initialize
  24.     super(0, 0, window_width, fitting_height(1))
  25.     self.opacity = STHUD_OP
  26.     @variable = 0
  27.     @o_steps = 0
  28.     refresh
  29.   end
  30.   #--------------------------------------------------------------------------
  31.   # ● 取得视窗的宽度
  32.   #--------------------------------------------------------------------------
  33.   def window_width
  34.     return 160
  35.   end
  36.   #--------------------------------------------------------------------------
  37.   # ● 刷新
  38.   #--------------------------------------------------------------------------
  39.   def refresh
  40.     return if $game_party.steps == @o_steps && $game_party.steps > 0 #如果步数没增加就不刷新
  41.     @o_steps = $game_party.steps #更新记录步数的变量
  42.     contents.clear #清除窗口内容
  43.     draw_background(contents.rect) if STHUD_BK
  44.     change_color(normal_color) #改字体颜色为正常色
  45.     draw_text(0, 0, contents.width - text_size(STHUD_UNIT).width - 4, line_height, @o_steps, 2) #显示步数
  46.     change_color(system_color) #改字体颜色为系统色
  47.     draw_text(0, 0, contents.width, line_height, STHUD_UNIT, 2) #显示步数单位
  48.   end
  49.   #--------------------------------------------------------------------------
  50.   # ● 绘制背景
  51.   #--------------------------------------------------------------------------
  52.   def draw_background(rect)
  53.     temp_rect = rect.clone
  54.     contents.gradient_fill_rect(temp_rect, back_color1, back_color2)
  55.   end
  56.   #--------------------------------------------------------------------------
  57.   # ● 取得背景色 1
  58.   #--------------------------------------------------------------------------
  59.   def back_color1
  60.     Color.new(0, 0, 0, 10)
  61.   end
  62.   #--------------------------------------------------------------------------
  63.   # ● 取得背景色 2
  64.   #--------------------------------------------------------------------------
  65.   def back_color2
  66.     Color.new(0, 0, 0, 90)
  67.   end
  68. end
  69.  
  70. #==============================================================================
  71. # ■ Scene_Map
  72. #------------------------------------------------------------------------------
  73. #      地图生成窗口
  74. #==============================================================================
  75. class Scene_Map < Scene_Base
  76.   alias st_start start
  77.   def start
  78.     st_start
  79.     @st_window = Window_Steps.new
  80.     #@st_window.x = Graphics.width - @st_window.width
  81.     @st_window.x = STHUD_X
  82.     @st_window.y = STHUD_Y
  83.     @st_window.visible = false
  84.   end
  85.   #--------------------------------------------------------------------------
  86.   # ● 刷新
  87.   #--------------------------------------------------------------------------
  88.   alias new_update update
  89.   def update
  90.     new_update
  91.     #地图备注检查
  92.     return if (/<NOSTEPS>/i.match($game_map.note)) != nil
  93.     #初始值
  94.     @show_st_hud = true if @show_st_hud == nil
  95.     #按键切换开/关
  96.     if STHUD_INPUT != nil && STHUD_INPUT != "" && STHUD_INPUT != ''
  97.       if Input.trigger?(STHUD_INPUT)
  98.         if @show_st_hud != true
  99.           @show_st_hud = true
  100.         else
  101.           @show_st_hud = false
  102.         end
  103.       end
  104.     end
  105.     #显示/隐藏执行
  106.     if @show_st_hud == true
  107.       @st_window.refresh
  108.       @st_window.visible = true
  109.     else
  110.       @st_window.visible = false
  111.       #close_varia_window
  112.     end
  113.   end
  114.   #--------------------------------------------------------------------------
  115.   # ● 释放
  116.   #--------------------------------------------------------------------------
  117.   alias st_terminate terminate
  118.   def terminate
  119.     @st_window.dispose
  120.     st_terminate
  121.   end
  122.   #--------------------------------------------------------------------------
  123.   # ● 关闭
  124.   #--------------------------------------------------------------------------
  125.   def close_varia_window
  126.     @st_window.close
  127.     update until @st_window.close?
  128.   end
  129. end
  130.  
  131. #==============================================================================
  132. # ■ Game_Map
  133. #------------------------------------------------------------------------------
  134. #  管理地图的类。
  135. #==============================================================================
  136. class Game_Map
  137.   #--------------------------------------------------------------------------
  138.   # ● 取得地图备注栏
  139.   #--------------------------------------------------------------------------
  140.   def note
  141.     @map.note
  142.   end
  143. end

点评

步数的脚本调用是 $game_party.steps 这是累计总步数。  发表于 2013-3-31 23:32

评分

参与人数 1梦石 +1 收起 理由
Mic_洛洛 + 1 认可答案,好人卡+1(第66张,去领徽章吧!.

查看全部评分

修改劇本中,仔細審查原來的劇情大綱,覺得有點不太滿意,嘗試編寫不同主角不同主線的劇情,希望能寫得出來。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
帖子
1543
2
发表于 2013-3-31 14:45:06 | 只看该作者
事件的变量操作中有步数这一项,本来就是统计游戏总步数的。
修改劇本中,仔細審查原來的劇情大綱,覺得有點不太滿意,嘗試編寫不同主角不同主線的劇情,希望能寫得出來。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
590
在线时间
9 小时
注册时间
2012-7-25
帖子
3
3
 楼主| 发表于 2013-3-31 19:57:42 | 只看该作者
j433463 发表于 2013-3-31 14:45
事件的变量操作中有步数这一项,本来就是统计游戏总步数的。

但是如何在右上角显示步数?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
590
在线时间
9 小时
注册时间
2012-7-25
帖子
3
5
 楼主| 发表于 2013-4-3 19:44:55 | 只看该作者
j433463 发表于 2013-3-31 23:29
试试吧:

#encoding:utf-8

谢谢,已经完美解决!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 00:55

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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