ハイハイスクールアドベンチャー_windows版
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| ハイハイスクールアドベンチャー_windows版 [2025/09/22 00:58] – [遊び方] araki | ハイハイスクールアドベンチャー_windows版 [2025/09/27 03:30] (現在) – [リソースファイルのコピー] araki | ||
|---|---|---|---|
| 行 30: | 行 30: | ||
| そのうち気が向いたらインストーラを作るかもしれません。</ | そのうち気が向いたらインストーラを作るかもしれません。</ | ||
| - | [[https:// | + | [[https:// |
| もし古いバージョンがインストールされていましたら、**お手数ですが、必ず、まず古いバージョンをアンインストールしてください**。 | もし古いバージョンがインストールされていましたら、**お手数ですが、必ず、まず古いバージョンをアンインストールしてください**。 | ||
| 行 53: | 行 53: | ||
| そう思ったので、Windowsのビットマップイメージに対して、ダブルバッファでの読み書きが可能かどうか AIに尋ねたら、できるよ、というので、実験コードを作って、思ったように動くことを確認し、一気に移植しました。 | そう思ったので、Windowsのビットマップイメージに対して、ダブルバッファでの読み書きが可能かどうか AIに尋ねたら、できるよ、というので、実験コードを作って、思ったように動くことを確認し、一気に移植しました。 | ||
| - | そもそも、SDL1番も C# | + | そもそも、SDL2版も C# |
| SDL2に依存していた描画、サウンド機能、そしてイベントループはすべてWPFのそれで置き換わっています。 | SDL2に依存していた描画、サウンド機能、そしてイベントループはすべてWPFのそれで置き換わっています。 | ||
| 行 219: | 行 219: | ||
| Androidだと、ライトテーマだけ全部書いておいて、ダークは色情報だけを上書きする、というような感じで作れますが、Windowsはよくわかりません。 | Androidだと、ライトテーマだけ全部書いておいて、ダークは色情報だけを上書きする、というような感じで作れますが、Windowsはよくわかりません。 | ||
| とりあえず、ウィジェットまわりは同じ内容を書いておいて、頭の方に集めた色情報の変更でライトとダークを分ける感じでテーマファイルを作っています。 | とりあえず、ウィジェットまわりは同じ内容を書いておいて、頭の方に集めた色情報の変更でライトとダークを分ける感じでテーマファイルを作っています。 | ||
| + | |||
| + | <file XML LightTheme.xaml> | ||
| + | < | ||
| + | xmlns: | ||
| + | |||
| + | <!-- 色定義 --> | ||
| + | <Color x: | ||
| + | <Color x: | ||
| + | <!-- コントロールスタイル例 --> | ||
| + | <Style TargetType=" | ||
| + | <Setter Property=" | ||
| + | <Setter Property=" | ||
| + | </ | ||
| + | |||
| + | <Style TargetType=" | ||
| + | <Setter Property=" | ||
| + | </ | ||
| + | |||
| + | <!-- TextBox --> | ||
| + | <Style TargetType=" | ||
| + | <Setter Property=" | ||
| + | <Setter Property=" | ||
| + | <Setter Property=" | ||
| + | <Setter Property=" | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <file XML DarkTheme.xaml> | ||
| + | < | ||
| + | xmlns: | ||
| + | |||
| + | <!-- 色定義 --> | ||
| + | <Color x: | ||
| + | <Color x: | ||
| + | <!-- コントロールスタイル例 --> | ||
| + | <Style TargetType=" | ||
| + | <Setter Property=" | ||
| + | <Setter Property=" | ||
| + | </ | ||
| + | |||
| + | <Style TargetType=" | ||
| + | <Setter Property=" | ||
| + | </ | ||
| + | |||
| + | <!-- TextBox --> | ||
| + | <Style TargetType=" | ||
| + | <Setter Property=" | ||
| + | <Setter Property=" | ||
| + | <Setter Property=" | ||
| + | <Setter Property=" | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ダークとライトの違いは最初の色の定義だけなのがわかると思います。((もちろんもっと複雑にライトだけの処理、ダークだけの処理を入れていくこともできますが。)) | ||
| + | |||
| + | こんな感じで、メニューがアクティブの時の色とか、必要なだけ色を作って、必要なウィジェットに色を割り当てていきます。 | ||
| 静的なウィジェットはまあ問題ないんですが、メニューのドロップダウンとか、スクロールビューにおけるスクロールバーなど、フローティングなウィジェットはテーマの割り当て方が何通りかあるようで、理解しきれません。 | 静的なウィジェットはまあ問題ないんですが、メニューのドロップダウンとか、スクロールビューにおけるスクロールバーなど、フローティングなウィジェットはテーマの割り当て方が何通りかあるようで、理解しきれません。 | ||
| 行 564: | 行 622: | ||
| </ | </ | ||
| + | ==== スライドスイッチ風にしたい ==== | ||
| + | |||
| + | チェックボックスはいまどきつまらないよね。 | ||
| + | 見栄えを考えたらスライドスイッチ。 | ||
| + | |||
| + | AIに聞いたらスタイルでできるというのでやってみました。 | ||
| + | |||
| + | {{:: | ||
| + | |||
| + | まず、XAMLファイルで、スタイルを定義します。 | ||
| + | |||
| + | <code xml> | ||
| + | <!-- スライドスイッチ風 ToggleButton スタイル --> | ||
| + | <Style x: | ||
| + | <Setter Property=" | ||
| + | <Setter Property=" | ||
| + | <Setter Property=" | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | <!-- 背景 --> | ||
| + | <Border x: | ||
| + | CornerRadius=" | ||
| + | Background=" | ||
| + | Height=" | ||
| + | <!-- ノブ --> | ||
| + | <Ellipse x: | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | </ | ||
| + | < | ||
| + | <Trigger Property=" | ||
| + | <Setter TargetName=" | ||
| + | <Setter TargetName=" | ||
| + | </ | ||
| + | <Trigger Property=" | ||
| + | <Setter TargetName=" | ||
| + | <Setter TargetName=" | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | そして、レイアウト用のXAMLファイルでこのスタイルを持つ ToggleButtonを作ります。 | ||
| + | |||
| + | <code xml> | ||
| + | <Grid Margin=" | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | スタイルだけでできるので簡単といえば簡単ですが、この程度のウィジェットは今どきデフォルトで用意してほしいですよね? | ||
| + | |||
| + | ==== リソースファイルのコピー ==== | ||
| + | |||
| + | リソースファイルのコピーをするには、ソリューションエクスプローラから、リソースファイルを一個一個選んで、ビルド時にコピーする設定をいれるといいのですが、実はこの方法だと、リソースディレクトリに階層がある場合にはうまくいきません。 | ||
| + | 勝手に一階層に改変されてしまうのです。 | ||
| + | |||
| + | ハイハイスクールアドベンチャーの場合は、data/ | ||
| + | |||
| + | これを避けようと思ったら、プロジェクトファイル((.csproj))を直接いじって、下のような設定を入れることでディレクトリ構造丸ごとコピーしてくれるようになります。 | ||
| + | |||
| + | <code xml> | ||
| + | < | ||
| + | <!-- data 以下のすべてのファイルを対象にする --> | ||
| + | < | ||
| + | <!-- 出力先にコピーするルール --> | ||
| + | < | ||
| + | <!-- フォルダ構造を保持する --> | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
ハイハイスクールアドベンチャー_windows版.1758502712.txt.gz · 最終更新: by araki
