書き物

技術とか作った物の話とか愚痴文句感想など

AS3

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

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

BitmapCanvasクラスを少し賢くした

AS3

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 ┃ ・ ┃ ・ ┃ ・ ・…

全体的に色を変えたい

AS3

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

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

AS3

できないみたいです。探してみればどこかに書かれてそうですが、メモ。 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にしてマスクにすると、単に画像のサイズの四角形がマスクになるだけで、意図した複雑…

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

AS3

昨日の記事の結果です。 flash.utils.getDefinitionByNameでできるようです。 【Adobe - Error Page】 簡単な例です。 package { import flash.display.Sprite; import flash.utils.getDefinitionByName; public class Test extends Sprite { test.ExClass; …

僕の知らない構文

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

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

TextFieldのwidthとheight

AS3

スクリプトでテキストを表示させようとする場合、AS3ではTextFieldを使います。基本的な使い方は以下の通り。 var t:TextField = new TextField(); t.text = "文字ィッ"; もちろん、コンテナにaddChildしなければ表示されません。 しかしこのTextField、表示…

FrameSpriteクラス

前々からブツブツ言っていたFrameクラスの最終的な形です。Spriteを拡張してMovieClipのように複数のフレームを持てるようにしました。アニメーションさせたり、フレームアクションを設定することもできます。 package { import flash.display.DisplayObject…

子がビットマップではみ出る

近頃のPanelから子がはみ出る問題について、僕の中で結論が出ました。どうやらaddChildしてはみ出るものとはみ出ないものがあるようです。今回は僕が使っていてはみ出た例を示してみます。 (ActionScript3.0での制作を前提としています。MXMLで同様の問題が…

アニメーション機能が付きました。「フレームクラス」

前のフレームクラスの時に、 これ、上手いことしたらアニメーションとかもできるかもしれません。 と書きましたが、そろそろアニメーションも使いそうなので考えてみました。 前フレームクラスを改良しています。 /** * ・フレームクラス */ package lib.uti…

「Image」クラスの「load」メソッド

AS3

昨日までImageは描画の要かも?と思っていましたが、要でした。 これで描画の自由度が増します。 それはいいとして、本題は「Image」クラスが持つ「load」メソッドです。 僕がこれまでよく聞いた「Loader」クラスとは少し使い方が違っていまして、かなり混乱…

Flex2デビューのヒント・・・?

FlashとFlexの違いをもろに見せ付けられた感じです。 ということで、「書き物」のカテゴリーに「Flex」を追加。 AS2.0→AS3.0というのは思っていたより簡単だったのですが、 MXMLでのアプリケーション開発というものは新種で、かなり混乱しました。 いろんな…

シェイプメーカークラス

通常AS3で四角形を描画する場合、例えば var rect:Shape = new Shape(); rect.graphics.beginFill(0xff000000); // 背景色 rect.graphics.lineStyle(0, 0x000000); // 線幅・線色 rect.graphics.drawRect(0, 0, 10, 10); // XY座標,幅,高さ rect.graphics.en…

フレームクラス

Flex2ではどうやらムービークリップを扱えないようです。 つまりフレーム一つ一つに動作を描き「gotoAndStop()」などで切り替えて状態移行が出来ないということです。 この状態移行は僕がFlashでゲームを作るときかなりの割合で使っていた方法なので、 今後…

レイヤークラス

それぞれのオブジェクトの重なり順を管理するために、 事前に大雑把にステージ用スプライトのようなものを作ってまとめておけるクラスがあったら それなりに便利かもしれないと思いまして考えてみました。 /** * ・レイヤークラス */ package { import flash…