はてな?RGSS(うらぐち) RSSフィード

10月27日の日記

昨日の作業

タンクタウンさんの質問掲示板に上がっていた「カーソル消えたり表示したり」にトライし・・・・玉砕。

以下のソースを入れてWindow_Baseに継承させれば、オープニングはうまくいくようになったのですが、他の画面ではダメ。

Windowクラスの処理がわからないのと、Bitmapクラスのメソッドが使いこなせていないのと、なんとか今のcursor_rectにもぐりこませようとしたのがおそらく敗因。

しばらく頭を冷やして、いつか再チャレンジしたいところ。

↓ソース。ぐちゃぐちゃ。

##Window_Arrange オリジナルクラス
class Window_Arrange < Window
  attr_accessor :cursor_rect
  def initialize
    super()
    self.windowskin = RPG::Cache.windowskin("001-Blue01")
    @framecounter = 0
    @cursor_rect = Rect.new(0,0,1,1)
    @cursor_sprite = Sprite.new
    @cursor_sprite.bitmap = Bitmap.new(640,40)
    #@cursor_sprite.bitmap.fill_rect(@cursor_sprite.bitmap.rect, Color.new(255,0,255,255))
    @cursor_sprite.opacity = 255
    @temp_rect = Rect.new(0,0,1,1)
    self.x = x
    self.y = y
    self.width = width
    self.height = height
    self.z = 100
  end
  def dispose
    if self.contents != nil
      self.contents.dispose
    end
    @cursor_sprite.bitmap.dispose
    @cursor_sprite.dispose
    super
  end
  def update
    super
    #@cursor_sprite.bitmap = Bitmap.new(@cursor_rect.width,@cursor_rect.height)
    @cursor_sprite.x = @cursor_rect.x + self.x + 16
    @cursor_sprite.y = @cursor_rect.y + self.y + 16
    @temp_rect.set(0,0,@cursor_rect.width,@cursor_rect.height)
    @cursor_sprite.bitmap.fill_rect(@temp_rect, Color.new(255,255,255,255))
    @framecounter += 1
    if @framecounter > 10 
      @framecounter = 0
      if @cursor_sprite.opacity == 255
        @cursor_sprite.opacity = 0
      else
        @cursor_sprite.opacity = 255
      end
    end
  end
end