マップエディタでは、ワイヤによる範囲設定という機能があります。同じようなワイヤは登録時に警告としたいのですが、ワイヤが全く同じなら実装は簡単でしたが、色のRGB成分が1違っただけで違うワイヤと判定されるのは如何なモノかと思い、試行錯誤しました。特に近似色判定 ...
January 2022
ME オブジェクトの再編集機能
配置済みのオブジェクトを再編集する機能を実装しました。配置後にレイアウトを細かく調整したい事って絶対にありますよね? Altを押しながら左ドラッグで対象のオブジェクト位置をずらす事が出来ます。これの実装における考え方を解説します。 考え方左ドラッグの開始時に ...
ME スポイト選択の機能拡張
テストでマップエディタを使っていたところ、スポイト選択の挙動で少し嫌だなと思う箇所がありました。それは、選択済みの状態でスポイトを使用したときの挙動です。短形選択や自由選択(なげなわ)と同じ処理を共有してたのですが、それだと、選択済み範囲があると、その範 ...
C# List.Contains の高速化
マップエディタの開発で、超広範囲の選択範囲がある状態で、BGの設定を実行したところ、数分経っても一向に終わる気配がないという大問題に直面しました。今回はこのとてつもなく遅い処理を、コンマ数秒まで高速化するテクニックです。 巨大リストをY軸毎に分解する最初のプ ...
ME エリアジャンプ
マップの編集範囲が広いと、スクロール機能では違う場所への移動に時間がかかります。全体の確認も面倒なので、AILZ80ASM の ishino さんから、本件機能の実装を要請されていました。本日、なんとなく動き始めたのでご報告。まず表示メニューにエリアジャンプ項目を追加しま ...
C# フォームの表示位置
マップエディタをアルファ公開して、頂いたバグ報告や要望で最後に残った全体マップ表示で編集エリアを移動したいという要望の実現に着手しました。この機能の実現にあたり仕様を考えていたのですが、レーダーマップを別途ウィンドウ表示してサムネイル表示してると、たぶん ...
C# 最近使ったファイル
要望を受けた最近使ったファイルを実装したので、その私の方法を解説します。 メニューフォームの MenuStrip に「最近使ったファイル」項目を用意します。私の場合は多言語に対応してて、デフォルトは英語なので、メニュー項目は英語で「Recently used files」としています ...
C# 設定保存を自前管理に切り替えた
先日公開したマップエディタアルファ1を皆様にご試用頂き、数名から感想と要望を頂きました。その中には最近使ったファイルを実装して欲しいというのがあり、私自身もいちいち [Ctrl]+[O] で読み込むのは面倒だなあと感じていた事もあり、対応する事にしました。今まで、設定 ...
ME Magic.MapEditorアルファ1公開
2022.07.21 2040追記アルファ2を公開しましたので、アルファ1の公開はこれにて中止といたします。ご意見ご感想誠にありがとうございました。引き続きよろしくお願いいたします。以前の実験で100を超えるクリックを頂きました。状況から、1人がまとめてクリックした疑惑がある ...
C# 例外を補足する
予期せぬ例外エラー、プログラマにとってはもちろん、使用者にとっても怖い事象ですよね。もし、この時にデータを救済する方法があったら…、あるんです。それが CurrentDomain_UnhandledException と、Application_ThreadException の各イベントとなります。どちらも Progr ...