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

Project1

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

[RMVA发布] 「数值输入处理」输入负数

[复制链接]

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

跳转到指定楼层
1
发表于 2014-7-7 09:01:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 taroxd 于 2014-10-4 17:38 编辑

RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2. # ● 数值输入处理可以输入负数
  3. #--------------------------------------------------------------------------
  4.  
  5. module Taroxd
  6.   NegativeInput = Object.new
  7. end
  8.  
  9. class Window_NumberInput < Window_Base
  10.   #--------------------------------------------------------------------------
  11.   # ● 开始输入的处理
  12.   #--------------------------------------------------------------------------
  13.   def start
  14.     @digits_max = $game_message.num_input_digits_max + 1
  15.     num = $game_variables[$game_message.num_input_variable_id]
  16.     max_num = 10**(@digits_max - 1) - 1
  17.     num = [[num, max_num].min, -max_num].max
  18.     @number = sprintf("%+0*d", @digits_max, num)
  19.     @index = 0
  20.     update_placement
  21.     create_contents
  22.     refresh
  23.     open
  24.     activate
  25.   end
  26.   #--------------------------------------------------------------------------
  27.   # ● 处理数字的更改
  28.   #--------------------------------------------------------------------------
  29.   def process_digit_change
  30.     return unless active
  31.     if Input.repeat?(:UP) || Input.repeat?(:DOWN)
  32.       Sound.play_cursor
  33.       if @index == 0
  34.         @number[0] = @number.start_with?('+') ? '-' : '+'
  35.       else
  36.         n = @number[@index].to_i
  37.         @number[@index] = ((n + (Input.repeat?(:UP) ? 1 : -1)) % 10).to_s
  38.       end
  39.       refresh
  40.     end
  41.   end
  42.   #--------------------------------------------------------------------------
  43.   # ● 刷新
  44.   #--------------------------------------------------------------------------
  45.   def refresh
  46.     contents.clear
  47.     change_color(normal_color)
  48.     @digits_max.times do |i|
  49.       rect = item_rect(i)
  50.       rect.x += 1
  51.       draw_text(rect, @number[i], 1)
  52.     end
  53.   end
  54.   #--------------------------------------------------------------------------
  55.   # ● 按下确定键时的处理
  56.   #--------------------------------------------------------------------------
  57.   def process_ok
  58.     Sound.play_ok
  59.     $game_variables[$game_message.num_input_variable_id] = @number.to_i
  60.     deactivate
  61.     close
  62.   end
  63. end

评分

参与人数 1星屑 +1 收起 理由
3106345123 + 1 塞糖

查看全部评分

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

本版积分规则

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

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

GMT+8, 2024-11-15 01:56

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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