投稿

ラベル(マップエディタ)が付いた投稿を表示しています

目指せステージエディタ

イメージ
キャラのタイプ別データと、配置データを作れるようにいろいろと付け加えてみた。 まずはキャラクター作成。 後付けしづらいこの状況が悲しい。設計がダメだってことよね( ノД`)シクシク… 機能を盛り込みすぎな気もするけど。 配置データに必要なのは、出現タイプ(ハッチみたいなのから出てくるのか、飛んでくるのか)と、数と、個別の出現フレーム間隔ぐらいかな。

スクロールの向き

イメージ
スクロールのプレビュー的な機能を付けてみた。 右から、左から、上から、下からの4パターンにしたが、 シューティングのスクロールで右からと上からは要らないような気がする(´・ω・`) けど、アクションゲームだと必要かな。 いいかげんマップ保存機能つけないとデバッグするのにマップ作らないといけないからめんどくさいなー(笑)

マップをつなぐにはどうしようか。

一気に描画・・・いや、描画範囲だけサーチするべきだよなぁ。 いままでそのまま大きいマップをそのまま作って、 スクロールした\( 'ω')/わーい、だったからなぁ。 暑さのせいで頭が働かない。

塗りつぶし機能追加

イメージ
諦めかけてたけど、 不具合の原因がキューの扱いという(´・ω・`) べつにキュー使わなくても良かったんだろうけど、 スタック使ってもPopで同じ目に合ってただろう。 塗りつぶす座標、色を取得して、 左右に境界線まで塗る。 塗るときに上下1ピクセル先の色を取得し、塗りつぶせる色ならキューで座標を記録。 そしてキューのカウントが0になるまで塗る作業を繰り返す。 という総当たりな処理(;^ω^) とりあえず動くので良し。

カーソルが黒い

ピクチャーボックスの上で描画モードなら鉛筆、 消すモードなら消しゴムといった感じにしようとおもい実行してみたところ真っ黒。 画像形式とかの話かとおもって色々調べたところ、C#のカーソルクラスは色対応してなくて白黒限定みたい。

コンボボックスをいじる

イメージ
オーナードローとかの響きだけで、大変そうだなぁーと思いながらも、 C#は基本便利なのでそこまでじゃなかった。 情報が豊富なのがほんと助かります。 DrawModeをOwnerDrawFixedに変更。 DrawItemイベントを パレットと同じ色のカラーリストから色情報をを引っ張ってきて、 あとはBoundプロパティを使って塗りつぶす というかんじに書いただけ(;^ω^) 選んだあとのアイテム名出てきてが邪魔だなぁと思ったんですが、 DropDownStyleをDropDownList(入力を受け付けない)にしたら表示されなくなった。 大したことじゃないけど、成功して嬉しい。

作るついでに動かす機能

イメージ
タイマー更新使っているのでカクカク(;^ω^) レトロ風だからまぁいっか。 これからはキャラメイキング機能とイベントや動作などのパーツづくりですかね。 イベント作りが大変だろうなぁ。

バグ取り

認識している範囲のバグはなんとか解決。 アンドゥの最新の状態が割り込んでくるというのは、 参照先の描画リストのカウントを0にしないために残していたせいだった。 しかしビットマップデータを引っ張り出す仕様に変更し、 リスト内に残さないようにしたので解決。 透過リセットの挙動のおかしさも同様、 ↑と同様、描画先であったバックアップのリストの最後のビットマップ書き換えてたという・・・。 すべて自分で作った仕様を忘れてるせい。(/ω\)ヤダー

不具合だらけ

イメージ
理想に近づいているが、アンドゥリドゥがダメダメ。 バックアップを取っているのがピクチャーボックス内でマウスボタンを離した時だけなのに、ちょくちょく最新の状態ものが入り込んでいたり・・・どっかで参照しちゃってるのかなーと思ったんだけどいまだ分からず。 透過リセットもされたりされなかったり・・・。ウーム。

透過の扱いが難しい。

マップのタイルのせるの重ね描画だと駄目そう。 自分の設計のせいでややこしくしているのか・・・。 とりあえずSetPixelで透過色に変更して消してから描画という形に落ち着いた。

保存した画像がペイントソフトで開けない 

エクスプローラーはOK ペイントはOK 他のソフトは読み込み失敗。 何故??? ===追記=== bitmap.Save("ファイル名",System.Drawing.Imaging.ImageFormat.フォーマットの形式) の2個目の引数を入れてなかったからでした。 ファイル名だけで保存できちゃうから気づかなかった。 あとビットマップだからビットマップ形式で保存されるもんだと勘違いしてたせい (;´Д`A ```

メモリ増えてく

タイルを追加していくとどんどんメモリが増えていく(;´・ω・) 解放してるつもりになっているだけなのだろうか。 それとも参照され続けてるから解放されない? まだまだお勉強不足だなぁ・・・。 ===追記=== アンドゥリドゥのバックアップ数の制限がなかったせいでした(;´Д`A ``` 回数制限をしたらモリモリ上がっても、何らかのタイミングでストンと減るようになったから大丈夫そう。

分割もできるように

イメージ
大きいものも分割して並べられるようになった。 進歩があって嬉しい。

タイルを描きこむ

イメージ
一枚絵で描きこんでいく機能。 思った通りにうごいて満足( ´∀` )

二重に描画されてたみたい

ニアレストネイバーの描画以外に重ねて描画されてるみたいなんだけど、 ぼやけてるほうは線を描くときにピクチャーボックスにビットマップを渡すことで、 更新されてるみたいなんだけど。 下手なことはせずにイメージプロパティを渡さずに、 描画したら更新。という形に落ち着いた。 マウス動かす度に更新呼んだカクつくんじゃないかとおもったけど、 パッと見る限り問題なさそうなので良しとしよう。 無駄のない処理にこだわるとすんごいグダって解決できなそうだったもん。

ぼやける

イメージ
ニアレストネイバーが効くタイミングがよく分からない。 色塗った後ならぼやけないのは何故?(;´・ω・)

絵は描けるようにはなったのだが・・・。

イメージ
お手本があるのに線がちゃんとつながるまでが長がった(;´Д`A ``` そのうち本来の目標忘れるんじゃないだろうか(笑)

動画漬け

ずーっと動画ばかり見てて、作業手つかず・・・。 効率のいい書き方とか細かいところで勉強になるところが詰め込まれているかんじ。 C#の書籍だとグラフィックスは扱っていないものが多いから尚更。

遅いわけではなかった

イメージ
YouTubeでペイントソフトの解説動画を発見。 再生時間も1つ1つが長すぎなくて丁度良く、シンプルで分かりやすい。 途切れて線にならないという悩んでいたところもピンポイントで解決。 ありがたや~。

動作を軽くしたい

イメージ
グリッド描画するとさらに重い。 拡大率低い方が途切れるし。 セルとポインタの総当たり判定みたいな処理は無くしたけど、改善されず・・・。 画面更新のタイミングとかかなぁ。 無駄な動作を削減して改善できればいいんだけど。 ついでにタイルも描ければ便利じゃね?と思ったんだけどな(;´・ω・)