書き物

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

AS3

『投函のお手伝い』を公開しました。

あほげーという企画で、24時間でゲームを作りました。 作ったゲームは以下です。 投函のお手伝い はがきをポストに投げ込むゲームにしようとして作っていましたが、終盤にはがきの内容をどうしようかと思ってた時点で、提出に遅刻することがほぼ確定していた…

Blender で作ったものを Flash で表示する(アニメーション)

Blender で作ったものを Flash で表示する(マテリアルとかテクスチャとかも) の続きです。 Blender で作ったアニメーションデータを Away3D で使うことが出来たので記録しておきます。今回は主に Blender の話です。 対象環境 Blender 2.61 Away3D 4.0.0 B…

Blender で作ったものを Flash で表示する(マテリアルとかテクスチャとかも)

Blender で作ったものを Flash で表示する の続きです。 前回はマテリアルもテクスチャもライトも何も使わなかったので、真っ白な恐らく 3D っぽい何かが表示されていました。マテリアルとかテクスチャ含め、Blender で作ったものを Away3D で Flash 表示さ…

Blender で作ったものを Flash で表示する

まだまだ分からないことは多いですが、ひとまず Flash で表示するところまで来たので記録しておきます。 目指す所は、 Blender で 3D のモデリング、 Away3D で Flash 表示です。 対象環境 Blender 2.61 FlashDevelop 4.0.0 RTM Flex SDK 4.6.0 Away3D 4.0 A…

子から親へ選択的なデータアクセスを行うクラス構成

AS3 でゲームを作る場合に僕が良く使うクラス構成です。 [caption id=“attachment_2481” align=“alignnone” width=“605” caption=“コンテキストを用いたデータのやり取り図”][/caption] 各オブジェクトのメイン処理は各クラスの execute() で行います。 各ク…

for each で末尾データの処理をスキップする方法

ちっちゃいネタですが、今まで気づかなかったので。 僕は AS3 で、できることなら for each を使いたがるのですが、この場合インデックスの情報を持っていないので、 「~番目のデータは処理しない」 とかの処理が出来ません。 まあそれは仕方ないのですが、…

Flex SDK で作った外部 swf の中で定義されているクラスを取り出す方法

Flash で外部ファイルを扱う場合、swf へ埋め込む方法と、直接画像ファイル等をロードする方法があります。swf へ埋め込むとコンパイルに時間がかかったり、埋め込んだ swf 自体のサイズが大きくなったりします。外部ファイルをロードする場合、素材自体が丸…

スクロールするマップチップのマップを表示する

この記事は「ActionScript Game Utility Library ‘ヤスメ’」v0.61 を対象にしています。 Yasumeにはマップチップによるマップ描画と、マップに対するオブジェクトの当たり判定を行う機能があります。 サンプル(ソース) サンプルでは、マウスカーソルをカメ…

Flexで動作毎にアニメーションさせる

この記事は「ActionScript Game Utility Library ‘ヤスメ'」v0.61 を対象にしています。 Flex は Flash のようにタイムラインが存在しないため、アニメーションをさせるための機構を自分で作る必要があります。「ActionScript Game Utility Library ‘ヤスメ'…

ActionScript Game Utility Library 'ヤスメ' v0.61 をリリースしました。

ActionScript Game Utility Library ‘ヤスメ’ v0.61 をリリースしました。成果物はSpark projectをご参照下さい。 ActionScript Game Utility Library ‘ヤスメ’ v0.60からの主な変更点 シーン管理機能追加 RTMFPのNetStreamクラスによる複数人相互通信確立機…

NetStream と NetGroup 比較

RTMFP による通信手段には大きく分けて NetStream クラスを使う方法と、 NetGroup クラスを使う方法があります。それぞれ一長一短があるので、要件に応じてうまいこと使っていきたいところ、ということで、ゲームを作る上で調べてた時に気づいたことを書いて…

Flex4でSpriteを使う

Flex で画面を作るのに MXML はとても便利なので使いたいけど、同時に Shape をぐりぐり動かすようなゲームも作りたいというような場合、MXML で Shape を addChild したいことと思います。しかし、MXML のコンポーネントに対して Sprite を addChild しよう…

RTMFP導入

FlashPlayer10から、クライアント間で直接データ送受信を行えるAPIが追加されたようです。Flashで複数のクライアント上のデータをリアルタイムに同期させようとすると、XMLSocketだとかソケットサーバーだとかで実現してたと思いますが、FlashPlayer10からは…

【修正】任意の引数を持つ初期処理メソッドを共通的に実行したい

任意の引数を持つ初期処理メソッドを共通的に実行したい 昨日のエントリーのコードが間違っていました。initializeメソッドを定義しない場合は何もしない・・・という処理を書いたつもりが、そんなメソッド存在しませんという例外が出ていました。ブラウザの…

任意の引数を持つ初期処理メソッドを共通的に実行したい

やりたかったことを思いついたのでメモします。wonderflで実験したら成功しました。 引数の異なる初期処理メソッドを共通的に呼び出すコード - wonderfl build flash online 僕がしたかったことは、ゲームのシーンを表すSceneクラスをSceneManagerクラスへ予…

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

AS3

「Error #1068」というランタイムエラーにはまってしまいましたので、調べた結果を記録しておきます。 see? 「Error #1068: int と * は共有できません。」というランタイムエラー再現 URL #wonderfl 2010-06-23 01:09:52 via web どうやらfor eachとラベル…

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

AS3

ホームページ作成 レンタルサーバー - Infoseek isweb やっぱり簡単にアクセス出来なければ人をひきつけることもできませんね。僕はもう少し自信を持ってもいい。・・・はず。

参照があいまい

AS3

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

interface は interface を extends できる

AS3

これは知りませんでした。 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 - Codin’ In The Free World 失敗結果 これは見やすい。 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クラスを少し賢くした

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」クラスとは少し使い方が違っていまして、かなり混乱…