二次元配列の格納状態を予想できる人なら分るかと思いますが、二重ループの記述の仕方で実行速度が全然変わってしまいます。X軸の走査をループ内側に入れた場合は… Random r = new Random(); var test = new int[10000, 10000]; for (int y = 0; y < tes ...
C# 二次元配列の範囲チェック
配列範囲外チェックはどうしていますでしょうか。普通に記述すると… public int[,] array = new int[100, 100]; private bool IsArrayRange(int x, int y) { return true && x >= 0 && y >= 0 ...
ME テンプレートによる新規作成
マップエディタですが、汎用と名前を付ける予定でいるため、かなり柔軟な編集が出来るように設計しています。その中でも、最初の新規作成時で、様々な機種や環境に対応できるようにと、解像度やドット形状、はては色数まで指定できるようにしてみました。また、いちいち設定 ...
Z80 アライメントによる高速化
Z80アセンブラでは、1つの命令の置き換えだけで実行速度が明確に変化することが多いです。特に多用するのはインクリメントやデクリメントといった、アドレスを±1する命令だと思います。また、アドレス演算では ADD HL,DE のような16bitの加減算命令を用いる事も多いかと思い ...
C# ループ処理の並列化について
C# では並列化の実装が簡単に出来るようにと、便利な下記のステートメント(クラス)が用意されています。Parallel.For()Parallel.ForEach()Parallel.Invoke()なるほどぉと for や foreach で記述されている箇所を単純に置き換えると、割と高確率で例外で落ちます。これは、 ...
ME 汎用マップエディタ開発中です
実は半年ほど前から汎用マップエディタの開発に着手しています。画面サイズ、色数、配置方法等出来る範囲で全て自由に設定できる、本格的なエディターを目指しています。主な機能は以下の通り(予定)。複数レイヤー編集地形配置(BG)オブジェクト配置属性配置ワイヤー配置テ ...
はじめの一歩
ども内藤です。知ってる人は知ってる程度のゲーム業界人です。18年ぶりにブログを再開します。以前割と有効だった記事の再掲載であるとか、ツールの公開であるとか、日々の雑談であるとか(きっとこちらのほうが多い気がしますが)、なんとなく不定期に更新していきたいと思 ...