RubyKaigi2008で使うプレゼンシステムが完成しました。
ようやく完成にこぎ着けました。
画面はこんな感じです。
前と変わってません(笑)。
とはいえ、内部的には大分変わっております。以下は、RubyKaigi2007のときのものとの比較です。
ちなみに、スライドはこのように記述します。
self.titleの内容が、チャプター選択時に表示される文字列になります。
module Chapter01 include Chapter class Slide01 include MPSSlide def initialize init(Slide["640x480"]) font = Font.serif.property{|f| f.color=Color[:black]} self[:text1] = Shape.text(:font=>font){ "1枚目" } add_arrow_ex(:event=>:down, :slide=>Slide02, :trigger=>TimerTrigger.new(5.0)) add_arrow(:down, Slide03) end end class Slide02 include MPSSlide def initialize init(Slide["640x480"]) font = Font.serif.property{|f| f.color=Color[:black]} self[:text1] = Shape.text(:font=>font){ "2枚目" } add_arrow(:up, Slide01) end end class Slide03 include MPSSlide def initialize init(Slide["640x480"]) font = Font.serif.property{|f| f.color=Color[:black]} self[:text1] = Shape.text(:font=>font){ "3枚目" } add_arrow(:up, Slide01) end end def self.title; return "その1" end end
以下のコードは、プレゼン全体(要は、チャプターの束ね役)を管理するchapter.rb
の内容です。ここでは、表示を開始するスライドも指定できます(add_chapterメソッドの第2引数がそれ)
Chapters.add_chapter Chapter01, Chapter01::Slide01 Chapters.add_chapter Chapter02, Chapter02::Slide03
設定ファイル・setting.rbはこんな感じです。説明はあまり要らないかな?
require 'singleton' class Setting include Singleton PRESET_IMAGE_DIR = "preset_image" # プリセット画像格納ディレクトリ名 attr_reader :bg_filename # 背景ファイル名 attr_reader :arrow_filename # 矢印ファイル名 attr_reader :wait_cursor_filename # ウェイトカーソルファイル名 attr_reader :select_cursor_filename # 選択カーソルファイル名 attr_reader :plugin_dir # プラグインファイル格納ディレクトリ名 attr_reader :slide_dir # スライドファイル格納ディレクトリ名 attr_reader :box_margin # 章選択ボックスと背景とのマージン attr_reader :box_color # 章選択ボックスの背景色 def initialize @bg_filename = "#{PRESET_IMAGE_DIR}/presen_bg.png" @arrow_filename = "#{PRESET_IMAGE_DIR}/arrow_blue.png" @wait_cursor_filename = "#{PRESET_IMAGE_DIR}/wait_cursor.png" @select_cursor_filename = "#{PRESET_IMAGE_DIR}/cursor.png" @plugin_dir = "plugins" @slide_dir = "slides" @box_margin = 8 @box_color = [128,0,0,64] end end
やっとこれでゲームブック(とプレゼン本文)の方に注力できます。
ああ、良かった。