プログラミング

描画系のテストってどうやるのか?

基本的にGUI等の描画系のテストというのはやりにくいものらしいです。 GUI系のテストをする場合、基本的には たとえば、GUIの場合はなるべくビューとロジックを分離させ、ロジックのテストをメインにするようにします。 http://www.javainthebox.net/publica…

Sizeクラス

Sizeクラスということで、プロパティのwidth、heightを持つクラスを作っていたのですが、機能はただの構造体でした。これにwidthUnit、heightUnitという単位設定用プロパティを持たせておけば、何かしら意味をもったクラスになるんじゃないかしら。 たとえば…

外部設定ファイルを仲介する構造体的クラスが必要

以前マップチップを表示してスクロール処理ができるクラスを作りました。↓ マップスクロールのクラスができた - 書き物 これって、クラスの設定をXMLで行います。XMLを引数にとって内容に沿ったマップを描画します。そのXMLファイルは以下のような感じです。 <map></map>…

インデントにはスペースを使うべきか?

の話を聞きました。 スペースはインデントの幅を絶対的に指定できるので、 ソース公開やら別環境への乗り移りに有利です。 タブは、色々楽です。 インデントも4とか8字分の幅が1文字なので、カーソル移動がちょっと楽。 インデントじゃないですが、 var obj:…

エラー処理とか分からない

今更気づいたのですが、エラー処理系統のノウハウというのが僕は極端に低いなと。自分用ライブラリとかの汎用的なクラスを作る場合、使う側のミスを分かりやすくするなどのためにも適切なエラー処理はすべきと思いますが、どうすればいいのやら。 現状だと、…

コード保管機能とかは勉強にならん

同世代のプログラムを作る人と話す機会がありました。その中で、開発環境話になったのですが、コード保管やアシストをしてくれるエディタというのは、勉強にならないので使わないとか。 「えっ!?」と僕は叫びました。 彼曰く、キーワードの色づけができる…

現実を受け入れることができないプログラマー

Javaでオブジェクト指向を勉強したので、C++も似たような感じでオブジェれると信じていたけど、心の底では、根本的に言語仕様が違うのだから、それに見合った作り方を考えなければならないということに気づいていた。 でも認めたくなかったので認めなかった…

プログラマにプログラムが書けない

【どうしてプログラマに・・・プログラムが書けないのか?】 はてなの注目URLに載ってました。面白い記事といえば面白いのですが、いまいち実感がわきませんでした。 この中に、「Fizz-Buzz問題」と呼ばれる簡単な問題があるらしいです。 1から100までの数を…

コメントの付け方

コードを読みやすくするためにコメントを付けることは重要ですが、そのコメントを付けるコツのようなものがあるようです。「コメントを付ける」と決意したなら、徹底的に付けなければと思ってしまう不器用な僕としては、1つの指針になって助かります。 コツ…

プログラミングの禁じ手

何だか以前よりプログラムを打っている時間が増えております。ActionScriptを触る時間は減ってしまいましたが、頭が鈍る心配は無さそうで何より。 さて、調べ物をしていたら偶然発見しました。 【http://www.cmagazine.jp/src/kinjite/cpp/index.html】 C言…

メソッドの名前の付け方が難しい2

メソッドの名前は、引数が存在する場合それを利用することによってもう少し短く付けることができるようです。 前回の「自分が対象より右に存在するならtrueを返すメソッド」は「isInRightFromTarget」という名前で落ち着きましたが、このメソッド、引数に位…

メソッドの名前の付け方が難しい

例えば自分が対象より右に存在するならtrueを返すメソッドを作ろうと思う場合、このメソッドの名前はどのようにつけましょうか。変にローマ字で名前をつけようとすると長くなってしまうので英語で書きたいところ。しかしそう簡単に英語なんて思いつきません…

Flashオンリーでタスクシステム?

今年に入ってAS2, 3と勉強していくうちに、結局ゲームを作る上で大切な事はAS何とかじゃあなくアルゴリズムだと分かりました。 AS2, 3でやっていることもAS1で似たようなことはできるはずです。 で、ただ想像しただけなのですが、シンプルにムービークリップ…

マップスクロール改良

マップスクロールシステムは以前にすでに完成させていたのですが、この度少々問題が見つかりましたので弄りました。 以前の弄る前のマップスクロールのアルゴリズムは、同時に表示するチップの数だけSpriteを作っておいて、表示する必要がある位置のSpriteに…

広いマップでのオブジェクトの描画タイミング

マップスクロールとか作りますと、広〜いステージを走り回ることが出来るようになりますが、同時に敵とかのオブジェクトもたくさん設置することができますので気をつけなければなりません。マップスクロールシステムと敵などのオブジェクトの描画は独立して…

敵の動作

敵の動きをランダムにするのか、簡易AIにするのか、作るゲームのウリとする方針に沿った方法を適切に判断する必要があります。そういった判断をするとき、結構このゲームのウリを忘れてしまいそうになるので注意しておきます。自分に。

正規表現の参考サイト

【akihiro kamijo: RegExp Archives】 【正規表現で検索や置換をする】 昨日作っている段階では2つ目の参考サイトを忘れていました...。ブックマークしていたのになぁ。昨日の段階で気づいていたらもっと正規表現を有効活用できたのに。

正規表現に手を出す

いつの間にやらマップエディタが使える段階まで出来ていました。エディタの初期化処理も前回と比べてとんでもなく早くなったので、100×100のマップも平気で作れます。前の作り方がまずかっただけですが! 後はマップデータを読み込んで再編集できるようにす…

percentWidth, percentHeightが怪しい

MXMLでPanelとかのサイズを相対値で設定する場合、 width="100%" height="100%"と相対値で指定できますが、ActionScript3.0でサイズを相対値で指定する場合は percentWidth = 100; percentHeight = 100;で指定します。 しかしこのサイズ指定方法は、例のPane…

コツが分かってきた

Flexアプリケーションもゲームも結局のところ触れば触るほどうまく作れる方法が分かってくるもので、大分Flexでツールを作るという作業のコツが分かってきた気がします。 これは作り直し中のマップエディタです。チップ一覧とステータスの表示はうまくいきま…

Panelが言うことを聞いた

昨日から傍若無人な態度を見せていたPanelがようやく1つ言うことを聞いてくれました。Panelはみ出し問題と、Panelが子のサイズに勝手に拡大問題ですが、layoutを"absolute"にしてやるとPanelが拡大されることも無く、子がはみ出ないでスクロールバーが表示さ…

デザインのコツが掴めない

Panelは、addChildした子のサイズとかによって自動でスクロールバーが表示されてスクロール可能になるはずなのですが、なぜか場合によって子がそのままPanelからはみ出てしまうことがあるようです。(この時Panelにスクロールバーは表示されない)clipContent…

ツールを作るのは難しい

以前作ったマップエディタというものがまったく使い物になりません。僕はゲームと比べてツールを作るという作業に対する経験値が圧倒的に足らないようです。 まあ、分かりきってはいましたが!

Frameクラスを改良した

とりあえずこれまでアニメーションを制御していたFrameクラスを、Spriteを拡張することで、Spriteにアニメーション機能を追加するかのように作り直してみました。ということで、FrameSpriteクラスと名を変えました。よくよく考えてみればこれが自然な形だっ…

グラフィック関連のオブジェクトをコピーできない。

というより、コピーできないに違いありません。 BitmapならBitmapDataからサクサクいくつも作れるのですが、Spriteのように子を持つコンテナについては簡単にコピーできないっぽいです。それ以前にコンテナじゃないShape自体コピーする方法が分かりませんの…

物体の生成がすばやくなった

物体の生成の際に行われるグラフィック関係の処理を削減してやったら、実用可能なまでに処理を軽くすることができました。パッと見、僕の環境では処理落ちしていないようです。 しかし、事前にグラフィックとなる動作一つ一つのビットマップデータを外部に登…

物体の生成がちと重い

ゲームと言えば、例えば爆発や攻撃が当たったときの効果など、表示されては消えが繰り返されるものです。その裏では、爆発という物体を生成し、その物体がアニメーションし、一通り再生し終われば物体を削除といった処理をしているのですが、今回はこの物体…

EclipseのAS2プラグインで無理やりAS3を打ってみる。

僕がAS2のコードを入力するために使っていたエディタは、EclipseのAS2プラグインであるASDTでした。単にシンタックスチェックができて、Eclipse自体日本語で使えたので使っていました。結局は外部ASファイルの編集に使って、swfの書き出し自体はFlashにやら…

FlexBuilder2日本語版体験版終了

恐れていた体験版の終了です。つまりFlexSDK2での開発となります。FlexBuilder2と比べて格段に開発効率が低下します。いつか買ったる。 しかしその前にFlexSDK2での開発についてなのですが、駄目元で実験したいことがあります。これがうまいこといけば泣くほ…

意外にFlashの頃から似たような事をしていた。

当たり判定を持たせたキャラグラフィックを作りましたが、当たり判定の領域を設定できるようになったとしてもまだこの手の判定をするには不十分でした。 攻撃当たり判定領域とダメージ当たり判定領域が設定できたので、自分の攻撃当たり判定と敵のダメージ当…