注册会员 登录
Project1 返回首页

hyrious https://rpg.blue/?293821 [收藏] [复制] [分享] [RSS] 喵喵喵喵喵

日志

一箱雪碧

已有 188 次阅读2016-8-6 15:24 | 雪碧, Sprite, Cache

详见代码。
#encoding:UTF-8
#==============================================================================
# M3L::Sprite : Usage = ::Sprite
# * only for VA
# * add cache to speed up slightly (and very useful for partical effect)
#==============================================================================

# save original Sprite
RGSS_Sprite = ::Sprite

# cache the sprites
SpriteCache = []
class << SpriteCache
  alias fix_clear clear
  def clear
    each { |e| e.dispose }
    fix_clear
  end
end

class Color
  Empty = new 0, 0, 0, 0
end

class Tone
  Empty = new 0, 0, 0, 0
end

module M3L
  class Sprite
    def initialize vip = nil
      if SpriteCache.empty?
        @_spr = RGSS_Sprite.new vip
      else
        @_spr = SpriteCache.pop
        @_spr.visible = true
        @_spr.viewport = vip
      end
      @_disposed = false
    end
    def dispose
      return if disposed? or SpriteCache.include? @_spr
      @_spr.bitmap    = nil
      @_spr.viewport  = nil
      @_spr.color     = Color::Empty
      @_spr.tone      = Tone::Empty
      @_spr.opacity   = 255
      @_spr.visible   = false
      SpriteCache.push @_spr
      @_disposed = true
    end
    def update
      raise RGSSError, "disposed sprite" if disposed?
      @_spr.update
    end
    def disposed?
      @_disposed
    end
    def method_missing meth, *args
      @_spr.send meth, *args
    end
  end
end

# replace original Sprite
Sprite = M3L::Sprite


鸡蛋

鲜花

评论 (0 个评论)

facelist doodle 涂鸦笔

您需要登录后才可以评论 登录 | 注册会员

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

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

GMT+8, 2024-5-4 23:50

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

返回顶部