プチスロット

■ 概  要

  • ・ 最低限のスロット処理を実装します。

■ スクリーンショット


※ 画像は開発中のものです。

■ 更新履歴

■ スクリプト

■ サンプルプロジェクト

>> ダウンロード

■ 使用準備

■ シンボル画像

※ 使用しない場合は必要ありません。
フォルダ Graphics/Pictures にシンボルを縦一列に並べた画像を用意してください。
ファイル名やサイズに制限はありません。

■ スロット背景・前景

※ 使用しない場合は必要ありません。
フォルダ Graphics/Pictures に画像を用意してください。
画像は、中央を基点に表示されます。
偏りのある画像を使用する場合は、透過処理してください。

■ 設定項目

■ スロットのパターン

PATTERN[ID] = [
  スロットタイプ, ファイル名 or フォントサイズ, 背景, 前景,
  [リール配列],
]

ここで設定した ID をスロット開始時に指定します。
スロットタイプは、:text, :icon, :image の3種類があります。

:text
シンボルにテキストを使用します。
次の要素で文字サイズを設定します。
リール配列には、シンボル文字のインデックスを指定してください。
:icon
シンボルにアイコンを使用します。
次の要素は無視されます。
リール配列には、アイコンのインデックスを指定してください。
:image
シンボルに画像を使用します。
次の要素でファイル名を設定します。
リール配列には、画像のインデックスを指定してください。

背景、前景では、それぞれファイル名を設定します。
画像を使用しない場合は、空文字列に設定してください。
背景画像を使用するか設定を nil にするとウィンドウが非表示になります。
リール配列を複数設定することで、表示されるリールを増やせます。
リール配列で設定する値が結果などで使用するシンボル ID となります。

■ シンボル文字

SYMBOL_TEXT = ["7", "@", "*", "#", "★", "▲", "◆", "◎"]

■ デフォルトのスピード

DEFAULT_SPEED = 4

デフォルトのリール回転速度を設定します。
スロット開始時に速度を指定しなかった場合に使用されます。
数値(整数・小数)が大きいほど速くなります。

■ デフォルトの位置

DEFAULT_POSITION = 1

デフォルトのスロットの表示を設定します。
スロット開始時に位置を指定しなかった場合に使用されます。
(0: 画面中央, 1: プレイヤーの頭上, 2: イベントの頭上)

■ リール停止時の効果音

SOUND_REEL_STOP = "Decision3"

リール停止時の効果音(SE)のファイル名を設定します。
効果音を鳴らさない場合は、空文字列にしてください。

■ 使用方法

■ プチスロットの開始

start_pslot(スロットID, オプション)

スロットID
開始するスロットの ID です。
PATTERN の設定が使用されます。
オプション
詳細を設定するためのオプションです。
以下のキーを持つハッシュオブジェクトです。
:speed (:spd)
リールの回転速度を設定します。
:pos
スロットの位置を設定します。(位置指定は設定項目と同じ)
:x, :y
スロットの表示座標を設定します。
:mx, :my
スロットの表示座標をずらします。
:bg
スロット背景の画像ファイル名を設定します。
:fg
スロット前景の画像ファイル名を設定します。
スロットの位置は、リール部分の左上を基点とします。
ウィンドウや背景を表示する場合は注意してください。

例)start_pslot(1)
例)start_pslot(2, speed: 2)
例)start_pslot(3, {
   :speed => 1.5,
   :pos => 1
})

■ 結果の取得

スロットの結果は、スクリプトSceneManager.resultで取得できます。

SceneManager.result[n]
n 番目のシンボル ID を取得します。
これは、リール配列で設定した値です。
SceneManager.result.complete?
すべての絵柄が揃っているかを判定します。
揃っている場合は true を異なる場合は false を返します。
SceneManager.result.irreg?
すべての絵柄が異なるかを判定します。
異なる場合は true を1つでも重複する場合は false を返します。
SceneManager.result.match?(ary)
スロットの結果が配列 ary と一致する場合に true を返し、
異なる場合は false を返します。(完全一致)
ary は、シンボル ID の配列です。
例)SceneManager.result.match?([1,2,3])
  結果 [1,2,3] のみ一致
SceneManager.result.match?(id, ... )
スロットの結果に引数で指定したすべての id 含まれる場合に true を返し、
異なる場合は false を返します。(順不同、全一致)
id は、シンボル ID です。複数指定できます。
例)SceneManager.result.match?(1,2,3)
  結果 [2,1,3] や [3,2,1] などに一致
SceneManager.result.count_map
止めた絵柄の数をハッシュ({シンボルID => 数})で取得します。


Enumerable モジュールのメソッドが使用できます。(以下、一例)

SceneManager.result.to_a
配列を生成して返します。
SceneManager.result.count(id)
id のシンボルがいくつあるかを数えます。
SceneManager.result.include?(id)
id のシンボルがあるか判定します。
SceneManager.result.sort
昇順に並び替えた配列を生成して返します。