Class: Tone

Inherits:
Object
  • Object
show all
Defined in:
lib/R3EXS/RGSS3.rb

Overview

RPG Maker VX Ace Tone 类

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ Tone

初始化时接受以下几种参数情况:

  • 无参数时,默认 (0, 0, 0, 0)
  • 3 个参数时,默认为 (red, green, blue, 0)
  • 4 个参数时,指定 (red, green, blue, gray)

Parameters:

  • args (Array<Integer>)

    red, green, blue, gray

    • red: 红色通道的值 (-255-255)
    • green: 绿色通道的值 (-255-255)
    • blue: 蓝色通道的值 (-255-255)
    • gray: 可选,灰度通道的值 (0-255),默认为 0


151
152
153
154
155
156
157
158
159
160
161
162
# File 'lib/R3EXS/RGSS3.rb', line 151

def initialize(*args)
    case args.length
    when 0 # 无参数
        set(0, 0, 0, 0)
    when 3 # 3 个参数, gray 默认为 0
        set(*args)
    when 4 # 4 个参数, 分别为 red, green, blue, gray
        set(*args)
    else
        raise ArgumentError, "Invalid arguments for initialize method"
    end
end

Instance Attribute Details

#blueInteger

blue 通道的值

Returns:

  • (Integer)


262
263
264
# File 'lib/R3EXS/RGSS3.rb', line 262

def blue
  @blue
end

#grayInteger

gray 通道的值

Returns:

  • (Integer)


267
268
269
# File 'lib/R3EXS/RGSS3.rb', line 267

def gray
  @gray
end

#greenInteger

green 通道的值

Returns:

  • (Integer)


257
258
259
# File 'lib/R3EXS/RGSS3.rb', line 257

def green
  @green
end

#redInteger

red 通道的值

Returns:

  • (Integer)


252
253
254
# File 'lib/R3EXS/RGSS3.rb', line 252

def red
  @red
end

Class Method Details

._load(obj) ⇒ Tone

反序列化 Tone 对象

Parameters:

  • obj (String)

    序列化后的字符串

Returns:



213
214
215
# File 'lib/R3EXS/RGSS3.rb', line 213

def Tone._load(obj)
    new(*obj.unpack('D4'))
end

Instance Method Details

#_dump(level) ⇒ String

序列化 Tone 对象

Parameters:

  • level (Integer)

    序列化的级别

Returns:

  • (String)


205
206
207
# File 'lib/R3EXS/RGSS3.rb', line 205

def _dump(level)
    [@red, @green, @blue, @gray].pack('D4')
end

#set(*args) ⇒ void

This method returns an undefined value.

设置 Tone 对象的值

  • 无参数时,默认 (0, 0, 0, 0)
  • 3 个参数时,默认为 (red, green, blue, 0)
  • 4 个参数时,指定 (red, green, blue, gray)

Parameters:

  • args (Array<Integer>)

    red, green, blue, gray

    • red: 红色通道的值 (-255-255)
    • green: 绿色通道的值 (-255-255)
    • blue: 蓝色通道的值 (-255-255)
    • gray: 可选,透明度通道的值 (0-255),默认为 0


175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
# File 'lib/R3EXS/RGSS3.rb', line 175

def set(*args)
    case args.length
    when 1 # 一个参数, 为 Tone 对象
        if args[0].is_a?(Tone)
            self.red   = args[0].red
            self.green = args[0].green
            self.blue  = args[0].blue
            self.gray  = args[0].gray
        else
            raise ArgumentError, "Invalid arguments for set method"
        end
    when 3 # 三个参数, 分别为 red, green, blue (gray 默认为 0)
        self.red   = args[0]
        self.green = args[1]
        self.blue  = args[2]
        self.gray  = 0.0
    when 4 # 四个参数, 分别为 red, green, blue, gray
        self.red   = args[0]
        self.green = args[1]
        self.blue  = args[2]
        self.gray  = args[3]
    else
        raise ArgumentError, "Invalid arguments for set method"
    end
end