AS3

「Error #1068」に気をつけろという話

「Error #1068」というランタイムエラーにはまってしまいましたので、調べた結果を記録しておきます。 window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js…

MyGameLibv0.51のサンプルをすぐ見れるようにした

AS3

http://ahiufomasao.hp.infoseek.co.jp/lib/MyGameLib/index.html やっぱり簡単にアクセス出来なければ人をひきつけることもできませんね。僕はもう少し自信を持ってもいい。・・・はず。

参照があいまい

AS3

このコードって、「参照があいまい」と怒られます。 インターフェースがインターフェースを多重継承して、同じメソッドを実装した場合、どこかしらあいまいな様子...。 よく分からんなぁ。 package { import flash.display.Sprite; public class FlashTest e…

interface は interface を extends できる

これは知りませんでした。 public interface IChild extends IParent { : : }

flexunitのTestCase::addAsync()の罠

AS3

非同期処理のテストを行う場合、 dispatcher.addEventListener(Event.COMPLETE, addAsync(onComplete), 1000)); という感じでイベントハンドラのメソッドを addAsync でラップするのですが、この手のテスト中にはまってしまったことをメモ。 public function…

Event::targetには何が設定されているのか

AS3

dispatchEventメソッドでイベントを発生させたりしていたのですが、Eventクラスのtargetプロパティって、何が設定されているのかが気になりました。 Flex3のasdocのEvent::targetには以下のように書かれています。 イベントターゲットです。このプロパティに…

FlexUnitで例外のテストをしたい

例外がthrowされるかテストする場合、以下のように書けばいいと思っていました。 try { obj.throwFunc(); // テストするメソッド fail(); } catch (e:Error) { } throwFunc()実行時に例外がthrowされればcatchブロックへ飛ばされてfail()が実行されずテスト…

続テスト環境構築

FlashDevelopでプロジェクト内にテストプロジェクトを埋め込んでみました。ビルド時に無理やりテストプロジェクトもビルドを行い、ビルド後、TestRunnerを起動するようにしました。こんなんでいいんですかね? FlashDevelopにUnitTest関連のプラグインとかあ…

FlexUnitでテストしてみる

AS3

昨日のテストをFlexUnitでやってみました。 FlexUnitはGUIでテスト結果を確認できるみたいです。 参考ページ 2008-05-13 失敗結果 これは見やすい。 AS3UnitにもAir製GUIツールがあるのですが、僕の環境の問題か、Airランタイムのバージョン云々でインストー…

趣味プログラミングで単体テストをやるようにする

AS3

趣味でのプログラミングでは特にテスト等考えておらず、動作確認をしてパッと見動けばOKみたいな感じにしていました。適当にしすぎなので、趣味でもテストするようにしようと目論んでみます。 yossy/ASUnit - Spark project JUnitとかは聞いたことがあったの…

ゲームを作るとき取得できると便利かもしれないキー入力状況情報パターン

まえがき キーボードを使うゲームは、当然キー入力の状況を受け取らないといけません。 どのキーが押されているか、押されていないか等。 Aキーが押されているか、押されていないかだけでなく、 もうちょっといろんなパターンでのキー入力状況を簡単に取得で…

アーカイバとかやってみた

AS3

外部ファイルをロードする場合、ゲームをローカルで遊んでもらおうとすると、素材丸見えになってしまいます。 すべてswfに埋め込んでしまえばいいのですが、コンパイルが長くなるようです。 完成版のコンパイルで埋め込めばいいのですが。 で、前からちょっ…

マップスクロール結果を他のオブジェクトの座標に反映させる

前の。マップスクロールのクラスができた - 書き物 マップスクロールって、チップをカメラ位置にならべて表示させるだけではなく、 直接マップスクロールに関わらないオブジェクトの座標調整も問題になってきます。 その座標調整には、前回チップを表示させ…

マップスクロールのクラスができた

ネーミングはちょっとしっくりきていないのですが、MapChipViewerクラスを作りました。 こんな感じで動きます。⇒■ ソースはコチラ。⇒■ 何やら使ってないクラスもありますが、主役は「mylib.system.map.MapChipViewer」です。 なんか妙な組み方になってますが…

自分でイベントを定義できるらしい

AS3

EventDispatcherクラスを継承させて、任意の場所で dispatchEvent(new Event(Event.ADDED)); としておいて、 addEventListener(Event.ADDED, onAdded); としてやれば、任意の場所に処理が来たとき、イベントリスナーに登録したメソッドが呼ばれるらしい。 な…

『花火』でゲームシステムを考える

AS3の文法を覚えたはいいものの、どうやってゲームを作ればいいのかというとき、 ひとつ、プログラムの土台となるシステムを覚えればかなり楽になります。 僕は今まで、タスクシステムと思われる手法でやってきましたが、何やら別の方法があるようなので、『…

BitmapCanvasクラスを少し賢くした

drawメソッドでいろんな描画ができるようになりました。 単に、描画したいものを判断して、BitmapData.copyPixcelメソッドとBitmapData.drawメソッドを切り替えるようにしただけですが。 package { import flash.display.Bitmap; import flash.display.Bitma…

Bitmap直描きをしてみる

これまでアニメーションといえばFrameSpriteクラスを作って、 Flashのタイムラインでゲームを作る感覚でやってました。 このFrameSprite、実装は Sprite ┣ Sprite ┃ ┣ Bitmap ┃ ┣ Bitmap ┃ ・ ┃ ・ ┃ ・ ┃ ┣ Sprite ┃ ┣ Bitmap ┃ ┣ Bitmap ┃ ・ ┃ ・ ┃ ・ ・…

全体的に色を変えたい

リファレンスガイドに普通に載っていますが、メモ。 これの色を変えてみます。 package { import flash.display.Shape; import flash.display.Sprite; import flash.geom.ColorTransform; public class Test extends Sprite { public function Test() { // S…

マスクオブジェクトは複数オブジェクト間で共有できない

できないみたいです。探してみればどこかに書かれてそうですが、メモ。 package { import flash.display.Shape; import flash.display.Sprite; public class MaskTest extends Sprite { public function MaskTest() { x = 100; y = 100; var maskSh:Shape = …

複雑な形でマスクしたい(Flashを使わないで)

AS3

Flash上だと非常に簡単な複雑な形のマスクですが、AS3のみではどうやればいいのかしら。 以下のようなマスク用画像(黒い箇所以外は透明)を作ったのですが、これをBitmapにしてマスクにすると、単に画像のサイズの四角形がマスクになるだけで、意図した複雑…

クラス名の文字列を渡してそのクラス名のインスタンスを作る方法

昨日の記事の結果です。 flash.utils.getDefinitionByNameでできるようです。 【http://livedocs.adobe.com/flex/201_jp/langref/flash/utils/package.html#getDefinitionByName()】 簡単な例です。 package { import flash.display.Sprite; import flash.ut…

僕の知らない構文

FLASH-JPにて。ソース自体はAS2でしょうか。 【クラスへのアクセスに配列アクセス演算子は使えない?】 僕は「Tween」や「Elastic」といったクラスの詳細は分からないのですが、本題はその部分じゃあなく。 import mx.transitions.Tween; var myTween:Tween …

Numberとかintを参照渡ししたい続き

AS3

昨日の続きです。 Numberとかintとかの基本的な型のことをプリミティブ型というらしいです。初耳! 【プリミティブ型 - Wikipedia】 調べてみると、ASではこのプリミティブ型を参照渡しすることはできない様子。もしもしたいのなら、クラスやらObjectやらを…

Numberとかintを参照渡ししたい

AS3

AS2での話ですが、以前こんな記事を書きました。 【オブジェクトを代入した変数の正体 - 書き物】 newしたオブジェクトは変数にいくつ渡しても、実態はひとつという話です。これって、Arrayとかしか使えないのかしら? 簡単なテストをしてみました。 var num…

でゲームを作る人を増やす方法

AS3

【flashrod - AS3でゲーム製作できたらいいな】 僕がAS3に手を出して1年ぐらいたったでしょうか。半年ほど前にAS3で一本ゲームを出して、今も何かしら作っている途中です。単純に、処理速度が上がっている、無料というだけでもAS3でゲームを作ろうとする動機…

ネームスペースについて本気出して考えてみた

AS3

前回の続きです。 ネームスペースについて考えてみましたが、いまいちピンとくる使い道が分かりません...。 僕が使いそうな範囲で、ネームスペースを使う意味を並べてみます。 メンバに対するアクセス制限 動的なクラス内でプロパティやメソッドの名前が衝突…

ネームスペースについて本気出して考えてみる

AS3

AS3の文法的な部分はほぼ理解しているのですが、ネームスペースに関しては触れていませんでした。ネームスペースは、メンバのアクセスを制御するものというイメージしかもっていなかったので、メンバをうまいこと隠せるようにするために勉強してみます。 参…

描画と処理開始のギャップを無くす、そんな設計

タスクシステムは、タスクという処理の塊をリストに登録し、メインループ(onEnterFrameとか)でリストに登録されたタスクの処理関数を一通りすべて実行するシステムです。 例えばそのリストへの登録を以下のようにするとします。 addTask(new Player()); こ…

AS3を扱えるエディタがあるらしい

AS3

制作途中に環境を変えるのは危険なので次から試してみる覚悟を今のうちに決めておいて損は無いと考えられる。