Module: Miyako

Defined in:
lib/Miyako/miyako.rb,
lib/Miyako/miyako.rb,
lib/Miyako/API/map.rb,
lib/Miyako/API/font.rb,
lib/Miyako/API/yuki.rb,
lib/Miyako/API/audio.rb,
lib/Miyako/API/color.rb,
lib/Miyako/API/input.rb,
lib/Miyako/API/movie.rb,
lib/Miyako/API/parts.rb,
lib/Miyako/API/plane.rb,
lib/Miyako/API/shape.rb,
lib/Miyako/API/story.rb,
lib/Miyako/API/bitmap.rb,
lib/Miyako/API/i_yuki.rb,
lib/Miyako/API/layout.rb,
lib/Miyako/API/screen.rb,
lib/Miyako/API/sprite.rb,
lib/Miyako/EXT/drawer.rb,
lib/Miyako/EXT/slides.rb,
lib/Miyako/API/choices.rb,
lib/Miyako/API/diagram.rb,
lib/Miyako/API/drawing.rb,
lib/Miyako/API/modules.rb,
lib/Miyako/API/textbox.rb,
lib/Miyako/API/utility.rb,
lib/Miyako/API/fixedmap.rb,
lib/Miyako/API/viewport.rb,
lib/Miyako/API/collision.rb,
lib/Miyako/API/map_event.rb,
lib/Miyako/API/exceptions.rb,
lib/Miyako/API/map_struct.rb,
lib/Miyako/API/spriteunit.rb,
lib/Miyako/API/sprite_list.rb,
lib/Miyako/API/struct_rect.rb,
lib/Miyako/API/struct_size.rb,
lib/Miyako/API/simple_story.rb,
lib/Miyako/API/struct_point.rb,
lib/Miyako/API/wait_counter.rb,
lib/Miyako/API/struct_square.rb,
lib/Miyako/EXT/raster_scroll.rb,
lib/Miyako/API/struct_segment.rb,
lib/Miyako/API/sprite_animation.rb

Overview

– Miyako v2.1 Copyright © 2007-2009 Cyross Makoto

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++

Defined Under Namespace

Modules: Animation, Audio, DeepCopy, Diagram, Drawing, InitiativeYukiTemplate, Input, Layout, MapEvent, Screen, Slide, SpriteArray, SpriteBase, Utility Classes: Bitmap, ChoiceStruct, Choices, CircleCollision, CircleCollisionEx, Collision, CollisionEx, Collisions, CollisionsEx, Color, Drawer, FixedMap, Font, InitiativeYuki, LayoutSnapStruct, LayoutSpace, LayoutStruct, ListPairStruct, Map, MapChipFactory, MapChipStruct, MapDir, MapEventManager, MapStructFactory, MapStructStruct, MiyakoCopyError, MiyakoError, MiyakoFileFormatError, MiyakoIOError, MiyakoProcError, MiyakoTypeError, MiyakoValueError, Movie, Parts, Plane, PointStruct, RasterScroll, RectStruct, Segment, SegmentStruct, Segments, Shape, SimpleStory, SizeStruct, Sprite, SpriteAnimation, SpriteList, SpriteUnitBase, SpriteUnitFactory, SquareStruct, Story, TextBox, Viewport, WaitCounter, Yuki

Constant Summary collapse

VERSION =
"2.1.22"
ScenarioEngine =
Yuki
InitiativeScenarioEngineTemplate =
InitiativeYukiTemplate
InitiativeScenarioEngine =
InitiativeYuki
Choice =

選択肢構造体

選択肢を構成する要素の集合

複数のChoice構造体のインスタンスをまとめて、配列として構成されている 選択肢を表示させるときは、body 自体の表示位置を変更させる必要がある

body

選択肢を示す画像

body_selected

選択肢を示す画像(選択時)

body_disable

選択肢を示す画像(選択不可時)

condition

選択肢を表示できる条件を記述したブロック

enable

選択肢を選択できるときはtrue、不可の時はfalse

selected

選択肢が選択されているときはtrue、選択されていないときはfalse

result

選択した結果を示すインスタンス

left

左方向を選択したときに参照するChoice構造体のインスタンス

up

上方向を選択したときに参照するChoice構造体のインスタンス

right

右方向を選択したときに参照するChoice構造体のインスタンス

down

下方向を選択したときに参照するChoice構造体のインスタンス

base

構造体が要素となっているChoices

attribute

属性を示すハッシュ

end_select_proc

この選択肢を選択したときに優先的に処理するブロック。

ブロックは1つの引数を取る(コマンド選択テキストボックス))。 デフォルトはnil(何もしない)

name

選択肢の名前。名前を明示的に指定しないときは、オブジェクトIDを文字列化したものが入る

ChoiceStruct.new(:body, :body_selected, :body_disable,
:condition, :enable, :selected, :result,
:left, :up, :right, :down,
:base, :attribute, :end_select_proc, :name)
MapChip =

マップチップ定義構造体

MapChipStruct.new(:chip_image, :chips, :size, :chip_size, :access_types, :collision_table, :access_table)
MapStruct =

マップチップ定義構造体

MapStructStruct.new(:size, :layer_num, :layers, :elayer_num, :elayers)
SpriteUnit =

スプライト出力情報構造体

基本的なことは、Sprite.renderで行うことが出来るが、凝った処理を行う場合は、SpriteUnitを使う – SpriteUnit = Struct.new(, :bitmap, :ox, :oy, :ow, :oh, :x, :y, :cx, :cy) ++ ([数字])は、配列として認識したときのインデックス番号に対応(Struct#[]メソッドを呼び出した時のインデックス) :bitmap() -> 画像データ(SDL::Surfaceクラスのインスタンス) :ox() -> 描画開始位置(x方向) :oy() -> 描画開始位置(y方向) :ow() -> 描画幅 :oh() -> 描画高さ :x() -> 描画幅 :y() -> 描画高さ :cx() -> 回転・拡大・縮小・鏡像の中心座標(x方向) :cy() -> 回転・拡大・縮小・鏡像の中心座標(y方向)

SpriteUnitBase.new(:bitmap, :ox, :oy, :ow, :oh, :x, :y, :cx, :cy)
ListPair =

名前-本体ペアを構成する構造体

ハッシュのようにキー・バリュー構成を持たせるための構造体

name

名前

body

本体

ListPairStruct.new(:name, :body)
Rect =

矩形などを構成するために使用する構造体

x

X座標の値

y

Y座標の値

w

横幅

h

高さ

RectStruct.new(:x, :y, :w, :h)
Size =

サイズなどを構成するために使用する構造体

w

横幅

h

高さ

SizeStruct.new(:w, :h)
Point =

座標などを構成するために使用する構造体

x

X座標の値

y

Y座標の値

PointStruct.new(:x, :y)
Square =

矩形などを構成するために使用する構造体

left

左上X座標の値

top

左上Y座標の値

right

右下X座標の値

bottom

右下Y座標の値

SquareStruct.new(:left, :top, :right, :bottom)
@@osName =
"other"
@@initialized =
false
@@modes =
[:text, :txt_calc, :takahashi, :tk_calc]

Class Method Summary collapse

Class Method Details

.getOSNameObject

実行しているOSの名前を取得する

(Windows 9x/Me/Xp/Vista, Cygwin/MinGW) : “win” (Linux) : “linux” (Mac OS X) : “mac_osx” (other) : “other”

返却値

OS名



101
102
103
# File 'lib/Miyako/miyako.rb', line 101

def Miyako::getOSName
  return @@osName
end

.initObject

SDLの初期化

Raises:



186
187
188
189
190
191
192
193
194
# File 'lib/Miyako/miyako.rb', line 186

def Miyako.init
  raise MiyakoError, "Already initialized!" if @@initialized
  if $not_use_audio
    SDL.init(SDL::INIT_VIDEO | SDL::INIT_JOYSTICK)
  else
    SDL.init(SDL::INIT_VIDEO | SDL::INIT_AUDIO | SDL::INIT_JOYSTICK)
  end
  @@initialized = true
end

.initialized?Boolean

Miyako(SDL)が初期化された?

Returns:

  • (Boolean)


197
198
199
# File 'lib/Miyako/miyako.rb', line 197

def Miyako.initialized?
  @@initialized
end

.main_loop(is_clear = true) ⇒ Object

Miyakoのメインループ

ブロックを受け取り、そのブロックを評価する ブロック評価前にAudio::updateInput::updateWaitCounter::updateScreen::clear、評価後にWaitCounter::post_updateAnimation::updateScreen::renderを呼び出す

ブロックを渡さないと例外が発生する

Raises:



171
172
173
174
175
176
177
178
179
180
181
182
183
# File 'lib/Miyako/miyako.rb', line 171

def Miyako.main_loop(is_clear = true)
  raise MiyakoError, "Miyako.main_loop needs brock!" unless block_given?
  loop do
    Audio.update
    Input.update
    WaitCounter.update
    Screen.clear if is_clear
    yield
    WaitCounter.post_update
    Animation.update
    Screen.render
  end
end

.open(screen = nil, buf_size = 4096, seq = 44100) ⇒ Object

Miyakoの初期化

画面初期化や音声初期化などのメソッドを呼び出す。 グローバル変数$miyako_auto_openがtrueのときは最初に自動的に呼び出される。 ユーティリティメソッドを使うだけならば、$miyako_auto_open=falseを設定して、後々Miyako.openを呼び出す。

screen

別のプロセスで生成されたSDL::Screenクラスのインスタンス。省略時はnil

buf_size

Audioモジュールで使用するバッファサイズ。単位はバイト。省略時は4096

seq

Audioモジュールで使用する音声の再生サンプル周波数。省略時は44100(44.1kHz)



208
209
210
211
212
213
214
# File 'lib/Miyako/miyako.rb', line 208

def Miyako.open(screen = nil, buf_size = 4096, seq = 44100)
  Miyako.init
  Screen.init(screen)
  Font.init
  Audio.init(buf_size, seq)
  Input.init
end

.setTitle(title) ⇒ Object

ウィンドウのタイトルを設定する

title

設定する文字列



107
108
109
110
111
112
113
114
115
116
117
118
# File 'lib/Miyako/miyako.rb', line 107

def Miyako::setTitle(title)
  str = title
  case @@osName
  when "win"
    str = title.to_s().encode(Encoding::SJIS)
  when "mac_osx"
    str = title.to_s().encode(Encoding::UTF_8)
  when "linux"
    str = title.to_s().encode(Encoding::EUCJP)
  end
  SDL::WM.setCaption(str, "")
end

.versionObject

Miyakoのバージョン番号を出力する

返却値

バージョン番号を示す文字列



80
81
82
# File 'lib/Miyako/miyako.rb', line 80

def Miyako::version
  return VERSION
end