現在開発中のマップエディタで、範囲指定を行うワイヤ機能の編集部分がほぼ動き始めたのでご報告。最初は Google Map のルート編集のようにしていたのですが、他の機能との使い勝手が合わず、結局新規に再作成しました。まずは動きを見てください。 左上のパーツダイアログ ...
タグ:マップエディタ
C# 線分の交差判定
連続した既設線分と、これから新規に配置する線分が交差しているかの判定で、思いのほか苦労したので、記事として記録を残しておこうと思います。前回、ME ワイヤ配置の仕様の続きです。※ 2022/02/23 09:50追記下記の方法では正しく判定できない場合がある事が分かりました ...
ME ワイヤ配置の仕様
現在ワイヤ設定機能を作成しています。所謂「線種」をWireParts、配置したワイヤ情報をWireSetとしてクラス定義しています。ようやく、任意の位置にポイントを置いていけるようになったのですが、UIというか設置の仕様で少し悩んでしまったので、その顛末をば。パーツ選択状 ...
C# 半透明の透明度設定
マップエディタのワイヤ機能には「範囲」という設定があります。この範囲を示すために、半透明で塗りつぶしを行いましたが、少し悩んだ事があったので解説します。半透明という事で、最初は何も考えずに、透明度を50%(128)で設定してみました。赤色は良い感じに見えるので ...
ME ワイヤ機能を作成中です
表題の通り、現在ワイヤ機能の実装を進めています。ワイヤは専用の設定ダイアログで登録して、編集エリアに追加していく動作を想定しています。機能的には以下があります。色 - ライン、背景形状 - 実線、点線、破線、一点鎖線、二点鎖線幅 - 1~9機能 - 境界線、面積これら ...
C# 近似色判定
マップエディタでは、ワイヤによる範囲設定という機能があります。同じようなワイヤは登録時に警告としたいのですが、ワイヤが全く同じなら実装は簡単でしたが、色のRGB成分が1違っただけで違うワイヤと判定されるのは如何なモノかと思い、試行錯誤しました。特に近似色判定 ...
ME オブジェクトの再編集機能
配置済みのオブジェクトを再編集する機能を実装しました。配置後にレイアウトを細かく調整したい事って絶対にありますよね? Altを押しながら左ドラッグで対象のオブジェクト位置をずらす事が出来ます。これの実装における考え方を解説します。 考え方左ドラッグの開始時に ...
ME スポイト選択の機能拡張
テストでマップエディタを使っていたところ、スポイト選択の挙動で少し嫌だなと思う箇所がありました。それは、選択済みの状態でスポイトを使用したときの挙動です。短形選択や自由選択(なげなわ)と同じ処理を共有してたのですが、それだと、選択済み範囲があると、その範 ...
C# List.Contains の高速化
マップエディタの開発で、超広範囲の選択範囲がある状態で、BGの設定を実行したところ、数分経っても一向に終わる気配がないという大問題に直面しました。今回はこのとてつもなく遅い処理を、コンマ数秒まで高速化するテクニックです。 巨大リストをY軸毎に分解する最初のプ ...
ME エリアジャンプ
マップの編集範囲が広いと、スクロール機能では違う場所への移動に時間がかかります。全体の確認も面倒なので、AILZ80ASM の ishino さんから、本件機能の実装を要請されていました。本日、なんとなく動き始めたのでご報告。まず表示メニューにエリアジャンプ項目を追加しま ...








