CoR用メッセージウィンドウと選択肢メッセージウィンドウ
投稿者: 光楼(114) 投稿日:2021/02/06 20:48
CoRで使える汎用関数(光楼式汎用CoR関数 Ver.20210203)を作ったのでご紹介したいと思います。
↓サンプルゲーム
出来る事
使用準備
サンプルゲームのソースファイル「光楼式汎用CoR関数.rb」をコピーしてください。
使用方法は「start.rb」を参考にして下さい。
また、以下2点の素材をゲームに追加してください。
関数リファレンス
※座標の設定は全て左上が原点となっています
関数使用準備用 ※必須
引数を設定することで、自分で用意した素材を利用出来ます。
※上記の設定では、1パーツ10x10で、そのなかの5x5を使うようになります。
参考:https://rmake.jp/blog/%E5%85%89%E6%A5%BC%EF%BC%88114%EF%BC%89/8822
現状、メッセージウィンドウの▼マークしかありません。
引数を設定することで、自分で用意した素材を利用出来ます。
現状、アイコンサイズは32*32しか対応していません。
予めレイヤーを生成しておく必要があります。
画像関連
レイヤーに登録する場合は以下のようにします。
文章表示関連
第2引数で個別の設定が出来ます。
設定にはハッシュテーブルを使います。
個別レイアウト設定一覧
選択肢は配列で設定します。
第3引数と第4引数で個別の設定が出来ます。
設定にはハッシュテーブルを使います。
第4引数のみ設定する場合は以下のようにしてください。
選択肢個別レイアウト設定一覧
既知のバグ
1. 長文がはみ出る
2. 太字・斜体の設定が反映されない
3. タップしても反応しない
4. ウィンドウサイズを小さくし過ぎるとエラーが出る
5.選択肢レイアウト設定で:upと:downを両方設定すると、選択肢の数が変わる
6.選択項目が半角英数だと、選択肢ウィンドウの幅が倍の広さになる
1,2,3に関してはCoR自体のバグによるものです。どうにかしたいけど、どうにもできません。
4は仕様です。今後エラーが出ないように下限を設けたいと思います。
5は片方をnilにすることで回避できます。今後選択項目の高さを自動で調整することで対処しようと思います。
6はただ単に幅の計算方法が「文字サイズ*文字数」だからです。気になる方は:leftと:rightを両方設定してください
今後やりたいこと
ツイート
↓サンプルゲーム
出来る事
- 指定範囲の塗りつぶし
- メッセージウィンドウ
- 選択肢メッセージウィンドウ
使用準備
サンプルゲームのソースファイル「光楼式汎用CoR関数.rb」をコピーしてください。
使用方法は「start.rb」を参考にして下さい。
また、以下2点の素材をゲームに追加してください。
- 塗り潰し用の素材
- ▼マーク
関数リファレンス
※座標の設定は全て左上が原点となっています
関数使用準備用 ※必須
- FillingMaterial_Set関数
preload do FillingMaterial_Set() end
引数を設定することで、自分で用意した素材を利用出来ます。
preload do FillingMaterial_Set(325178, 10, 5) end
引数 | 内容 |
---|---|
第1引数 | 素材ID |
第2引数 | 1パーツ当たりのサイズ |
第3引数 | 実際に使うサイズ |
参考:https://rmake.jp/blog/%E5%85%89%E6%A5%BC%EF%BC%88114%EF%BC%89/8822
- TextWindowIcons_Set関数
現状、メッセージウィンドウの▼マークしかありません。
preload do TextWindowIcons_Set() end
引数を設定することで、自分で用意した素材を利用出来ます。
現状、アイコンサイズは32*32しか対応していません。
preload do TextWindowIcons_Set(325218) end
引数 | 内容 |
---|---|
第1引数 | 素材ID |
- TextWindow_LayerSet関数
予めレイヤーを生成しておく必要があります。
create do #レイヤーの生成 $system_layer = add_layer #テキストウィンドウを表示するレイヤーを設定 TextWindow_LayerSet($system_layer) end
引数 | 内容 |
---|---|
第1引数 | レイヤー |
画像関連
- filling関数
filling(0, 0, 800, 450, 1, 100)
引数 | 内容 |
---|---|
第1引数 | X座標 |
第2引数 | Y座標 |
第3引数 | 幅 |
第4引数 | 高さ |
第5引数 | 色番号 #0:黒 1:白 2:赤 3:緑 4:青 5:黄 6:ピンク 7:水色 |
第6引数 | 不透明度 #0~100 #0で完全に透明 |
第7引数 #省略可 | カメラから独立するか #デフォルト:true(独立する) |
#レイヤーの生成 $system_layer = add_layer #白く塗る bg = filling(0, 0, 800, 450, 1, 100) $system_layer.add bg
文章表示関連
- message関数
message("はじめまして。")
引数 | 内容 |
---|---|
第1引数 | メッセージ |
第2引数 #省略可 | 個別レイアウト設定 |
設定にはハッシュテーブルを使います。
message("ようこそ!!!", {:size => 45, :c => '#ff2222'})
個別レイアウト設定一覧
キー | 内容 |
---|---|
:x | X座標 |
:y | Y座標 |
:w | 幅 |
:h | 高さ |
:size | 文字サイズ |
:c | 文字色 #16進数 |
:b | 太字にするか #true or false |
:it | 斜体にするか #true or false |
:bg_opacity | ウィンドウ不透明度 #0~100 |
:bg_c | ウィンドウ色 #0:黒 1:白 2:赤 3:緑 4:青 5:黄 6:ピンク 7:水色 |
:frame_c | フレーム色 #〃 |
:h_interval | 行間隔 |
:txt_wait | 文字表示アニメ間隔 #0でアニメ無し |
- messageWithSelect関数
選択肢は配列で設定します。
case messageWithSelect(["はい", "いいえ"], "あなたは人間ですか?") when 0 message("人間!") when 1 message("アンドロイド?") end
引数 | 内容 |
---|---|
第1引数 | 選択肢 |
第2引数 | メッセージ |
第3引数 #省略可 #第4引数設定時は省略不可 | メッセージ個別レイアウト設定 |
第4引数 #省略可 | 選択肢個別レイアウト設定 |
設定にはハッシュテーブルを使います。
case messageWithSelect(["はい", "いいえ"], "あなたは人間ですか?", {:y => 50}, {:up => 180, :down => nil}) when 0 message("人間!") when 1 message("アンドロイド?") end
第4引数のみ設定する場合は以下のようにしてください。
case messageWithSelect(["はい", "いいえ"], "あなたは人間ですか?", {}, {:slct_h => 50, :size => 46}) when 0 message("人間!") when 1 message("アンドロイド?") end
選択肢個別レイアウト設定一覧
キー | 内容 |
---|---|
:up | ウィンドウ上側座標 #nilで自動設定 |
:down | ウィンドウ下側座標 #nilで自動設定 |
:left | ウィンドウ左側座標 #nilで自動設定 |
:right | ウィンドウ右側座標 #nilで自動設定 |
:size | 文字サイズ |
:c | 文字色 #16進数 |
:b | 太字にするか #true or false |
:it | 斜体にするか #true or false |
:slct_h | 選択項目の高さ #文字サイズ+4推奨 |
:slct_c | 選択マーカー色 #0:黒 1:白 2:赤 3:緑 4:青 5:黄 6:ピンク 7:水色 |
:slct_opacity | 選択マーカーの不透明度 #0~100 |
既知のバグ
1. 長文がはみ出る
2. 太字・斜体の設定が反映されない
3. タップしても反応しない
4. ウィンドウサイズを小さくし過ぎるとエラーが出る
5.選択肢レイアウト設定で:upと:downを両方設定すると、選択肢の数が変わる
6.選択項目が半角英数だと、選択肢ウィンドウの幅が倍の広さになる
1,2,3に関してはCoR自体のバグによるものです。どうにかしたいけど、どうにもできません。
4は仕様です。今後エラーが出ないように下限を設けたいと思います。
5は片方をnilにすることで回避できます。今後選択項目の高さを自動で調整することで対処しようと思います。
6はただ単に幅の計算方法が「文字サイズ*文字数」だからです。気になる方は:leftと:rightを両方設定してください
今後やりたいこと
- バグの修正
- 個別レイアウト設定の項目を増やす
- 不透明度はプログラムで調整
- スキップ機能
コメントする
コメントするには、ログインする必要があります。
関数もわかりやすくまとめられてて使いやすそうです。