プログラミング指南 - Code Knowledge

ゲーム制作に関するプログラミング等を主に書き溜めていきます。ただ、どちらかと言えば日記的な書き方が続くと思いますが、そこは温かい目で見て頂ければ。あと、ちょっとしたサンプルやツールのダウンロードも出来るようにしておきます。 2022年6月21日よりカテゴリをプログラミングからオヤジの日記に移動しました。最近とんとプログラムの話をしていないので💦 ※ livedoor Blogの機能をまだよく分かっていないので変わるかも(汗

タグ:C#

スタイルを FixedToolWindow 等、サイズ変更を禁止する指定にしても、キャプション(タイトルバー)をダブルクリックすると画面(Mdi子ウィンドウの場合は親のクライアント領域)全体に最大化してしまいます。もう一度キャプションをダブルクリックできる場合は「まだ」マシ ...

ボタンをフローティングにしようと ToolStripContainer を採用しました。このコンテナを使うと簡単にフローティングボタンが実現できるのですが、位置を変更しても次の再起動ではまた位置が初期化されてしまいます。そのため、この位置情報を再起動後も復元したいと思い試行 ...

現在制作を進めているマップエディタのパーツ選択ウィンドウでの表示がとてもちらついていて、かつ、描画誤差を出ていました。ここから本制作に変更するまでの手順について説明してみます。 最初のコードBGチップが16x16個並んで描画する処理です。最初のコードは以下のよう ...

シリアライズとは、データ保存のための手法で、なんらかのフォーマットに変換して様々なデータをまとめて保存するための技法です。厳密には違うんですが、まあ、ここではそういう事にしておいてください。各種データをひとつにまとめる事が出来るため、データの入出力によく ...

現在私が開発中のマップエディタでは、外部ライブラリとして唯一 MessagePack を採用していました。これは大変優秀なシリアライザーで、このライブラリのおかげで高速実行と省メモリを両立できていました。ところが先日、なんとなくネットをぶらついていたら、同じ作者による ...

現在作成進行中のマップエディタで、実行速度が遅い箇所がありました。それが以下のプログラム部分です。 for (int x = 0; x < w; ++x) { for (int y = 0; y < h; ++y) { var id = rscGrd.Areas[x + rcChr.X, y + rcChr.Y]; ...

ラベルなどのコントロールで Text を設定した際、コントロールのクライアントサイズより長い文字列を指定すると、入りきらない表示部分が消えて表示されます。後方が消えている事を示す ... を表示するには、AutoSize = false; とした上で、AutoEllipsis = true; とします。 ...

float の値に小数が含まれているかの判定のお話です。一瞬、どうやるんだっけと思ってしまうこの判定方法ですが、分かってしまえばなあるほどと納得。ですが、突き詰めていったら、いろんな実装方法が見つかって…。 キャストするキャストすると、実数は強制的に整数に置き ...

マップエディタの機能拡張で、連続貼り付けに対応したところ、この処理が存外に重たかったので、その調査と改善を行いました。どこが重くて、どのように調査して、どう対応していったのか、実際の対応手順を元に追い込み方について説明したいと思います。最初の状態少し長い ...

前回の C# リソースを使い回すの時に、処理が遅い例としてマップの配置データの順番で表示する処理を紹介しました。この遅い理由がループの途中で Bitmapリソースの作成と解放をしているためでした。この遅い処理を事前に処理しておくとどうなるのかというプログラム例です。 ...

↑このページのトップヘ