Порядок следования:
WinAPI
Screen
Graphics
Код:#============================================================================== # Graphics #------------------------------------------------------------------------------ # Модуль, отвечающий за обработку графики. #============================================================================== module Graphics #----------------------------------------------------------------------------- # Возвращает ширину игрового экрана (integer) #----------------------------------------------------------------------------- def self.width return Screen.window_rect.width end #----------------------------------------------------------------------------- # Возвращает высоту игрового экрана (integer) #----------------------------------------------------------------------------- def self.height return Screen.window_rect.height end #---------------------------------------------------------------------------- # * Возвращает "яркость экрана" (обратное значение непрозрачности спрайта) #---------------------------------------------------------------------------- def self.brightness return -(@brightness.opacity - 255) end #---------------------------------------------------------------------------- # * Устанавливает "яркость экрана" (обратное значение непрозрачности спрайта) # new_brightness : integer - яркость (0 - 255) #---------------------------------------------------------------------------- def self.brightness=(new_brightness) @brightness.opacity = -(new_brightness - 255) end #---------------------------------------------------------------------------- # * Пропускает заданное количество кадорв (обновляя экран) # duration : integer - количество кадров #---------------------------------------------------------------------------- def self.wait(duration) duration.times do Graphics.update end end #---------------------------------------------------------------------------- # * Уменьшает "яркость" до 0 за заданное количество кадров # duration : integer - количество кадров #---------------------------------------------------------------------------- def self.fadeout(duration) n = (255 - @brightness.opacity).to_f / duration.to_f n = n.round for i in 0..duration break if @brightness.opacity + n > 255 @brightness.opacity += n Graphics.update end @brightness.opacity = 255 end #---------------------------------------------------------------------------- # * Увеличивает "яркость" до 255 за заданное количество кадров # duration : integer - количество кадров #---------------------------------------------------------------------------- def self.fadein(duration) n = 255.0 / duration.to_f n = n.round for i in 0..duration break if @brightness.opacity - n < 0 @brightness.opacity -= n Graphics.update end @brightness.opacity = 0 end #---------------------------------------------------------------------------- @brightness = Sprite.new @brightness.opacity = 0 @brightness.bitmap = Bitmap.new(width, height) @brightness.bitmap.fill_rect(0, 0, width, height, Color.new (0, 0, 0, 255)) @brightness.z = 3000 #---------------------------------------------------------------------------- end

Хорошо!:
Плохо!:


Ответить с цитированием
Константы - плохой вариант.


Социальные закладки