以前の改良版です。
変更点は
各パズルごとに結果を入れる変数を指定できるようになりました。
各パズルごとに縦横のセルの数を指定できるようになりました。
パズル中キャンセル可能かをパズルごとに指定できるようになりました。
カウントを使うか否かをパズルごとに選択できるようになりました。
最大カウントを自分で設定できるようになりました。
今回の変更で今までSceneManagerで設定していたのをやめて
パズルのクラスを作り各パズルを作っておいて
SceneManagerでパズルを指定するようにしました。
・スクリプト
DataManager
SceneManager
Scene_Puzzle15
Window_Puzzle15
Tile_Tip
Puzzle15
上のDataManagerとSceneManager以外をまとめたもの
composed_scripts
・テストゲーム
テストゲーム
・導入方法 :
上のスクリプトを全て入れてDataManagerのself.initのload_databaseの下の辺りにload_normal_data_takopuzzle15を挿入します。例
使い方:ここでアップしているDataManagerの
$data_puzzle15_board_widthで使う画像の横幅
$data_puzzle15_board_heightで使う画像の縦幅を指定します。
これらの値があまりに大きいと表示されないマスが発生します。
使う画像素材は/Graphics/Picturesに入れてください。
$data_puzzle15sが使用するパズルたちを入れる配列になります。
$data_puzzle15s[
x] = Puzzle15.new(
id ,
column ,
row ,
img_name,
var,
enable_cancel,
count_flag,
max_count)において
idはパズルたちをあらわすidとなります。今回は使ってませんがxと同じ値を入れておいたほうが無難だと思います。
columnは横方向のセル数をセットします。
rowは縦方向のセル数をセットします。
img_nameに使用する画像のファイル名を入れます。
varには結果を入れる変数のidを入れます。
(カウント使用の場合、最大カウント以下クリアで1、それ以外は2が変数に代入されます
カウント不使用の場合はクリアできれば1を代入します。)
enable_cancelでキャンセルの可否を決めます。(trueでキャンセル可、falseでキャンセル不可)
count_flagでカウントの可否を決めます。(trueでカウントを使う、falseでキャンセル不使用)
max_countで最大カウント設定します。(数字の場合はその数字がカウント数になります。nilの場合は大きさから自動的にカウントを設定します。)
・実行
・その1(直接指定)
イベントコマンドのスクリプトでSceneManager.call_puzzle15(id)によって実行できます。上で定義した$data_puzzle15s[
id]のパズルを実行します。
実行例・その2(変数による指定)
イベントコマンドのスクリプトでSceneManager.call_puzzle15v(vid)によって実行できます。vid番の変数の値を
xとすると$data_puzzle15s[
x]のパズルを実行します。
細かく分割しすぎるとゲームの動作が重くなるので注意してください。(縦横1桁程度までにしておいてください)
1. ありがとうございます
早速実装をして、自分の環境でのチェックをしたいとおもいます。
全体が形となる日までもう少しかかりそうですが、頑張りたいと思います。