名古屋でホームページ制作とFlash eternity design BLOG

Tetris3D再び

Tetris3Dを一応それなりにゲームぽい形にしてwonderflに移植しました。

しばらくPV3Dもjiglibflashも触ってなかったので、コード的には古いのかもしれません。
jiglibflashにFP10版があったので、そこの変更に伴う修正だけはしてあります。

ブロックの判定が最下段1段だけなのは相変わらずなので誰か弄って下さい。

続きを読む

DO3DControllerアップデート[Papervision3D]

おそらく自分用になっているであろうDO3DControllerです。
久しぶりにPV3D触っているので利用していたのですが、使いにくいところがあったので機能追加しました。

Profileの表示の更新タイミングがsetしたときか、キー操作したときだったのですが、ENTER_FRAME回して更新するようにしました。
なるべく処理的に負荷をかけたくなかったので、ENTER_FRAME使っていなかったのですが、tweenさせたときとかに更新されないのは不便ですよね。

  • setメソッドの第3パラメータに移動量を指定できるようにしました。デフォルトは1です。
  • isActiveプロパティを追加しました。false指定でDO3DControllerのキーイベントを無視します。
    一時的に機能をOFFにしたいときとか。

つまらないものですが、お役に立ちそうでしたら下記よりどうぞ。

DO3DControllerのダウンロード

[jiglibflash] 絶妙なCube

miniASでお話ししようと思っていたけど、できなかったものです。

このFlashをご覧ください。

自分の環境だと何度やっても、Cubeが絶妙な停止を見せるのですが、いかがでしょうか?

この時、床と接しているように見えるのですが、 collisionsプロパティには何も入っていません。
床の情報が入っていてもよさそうなんすけど。

Tetris3D

tetris3d

WCAN mini ActionScript Vol.11でお話しさせて頂いた時のものをとりあえずアップしておきます。

I : ブロックを奥へ移動(Z+)
M : ブロック手前へ移動(Z-)
L : ブロックを右へ移動(X+)
J : ブロックを左へ移動(X-)

十字キー : 全体を回転

コツはIMLJキーのちょい押しで落下位置を調整しつつ、落下したら完全にCubeが停止する前に地面に散らかってるCubeを落下してきたCubeで整頓するという感じです。

現状、最下段(1列目)の5×5のみ消去判定しています。
1マス40ピクセルの範囲内にCubeの中心点が入っていればとりあえず収まっていると判定しているのである程度はばらばらでも5個並んでいれば消えます。

勉強会ではjiglibflashに関してまとめるつもりがないのでメモった方がいいかもとかいいながら、お話しのかなりはじめの方で話す順番を間違えてしまい、少々焦ってグダグダになった感じなので、その穴埋めにでもBlogに”まとめる”とまではいかなくても、エントリ残すつもりです。しました。

解説編はこちら。

PV3D用ちょい便利かもクラス

先日のちょい絶Vol.8に参加させていただき、ちょいとこちらの完結編っぽいものについてお話しをさせて頂きました。
まぁ、話し終わった後の何ともいえない雰囲気は忘れるとして、その時に、PV3DのDisplayObject3D(または継承したオブジェクト)オブジェクトにキーイベントを設定して操作できるようにするクラスを作りましたと少し紹介したんですが、connect.to.blog()の人に配布しないのですか?と聞かれたので配布します。

続きを読む

PV3DのrotationとlocalRotationの違い

PV3DのrotationとlocalRotationの違い

Papervision3DのDisplayObject3Dクラスのメソッド、localRotation(X|Y|Z)とrotation{X|Y|Z)に関して、違いがわからなかったので調べてみました。
まず、サンプルのSWFを見ていただくとすぐにわかりますが、回転の方向が逆です。

文章での説明が難しく、localRotationのほうはいまいち掴み切れていないところもあるのですが、回転のベースとなる回転軸ごと回転されている感じ(わかるかな・・・)です。
なので、localRotation(X|Y|Z)の各プロパティに値を代入する順番が重要になります。
上のサンプルではX→Yですが、これを逆にすると同じ値を指定しても見え方が変わります。

また、lookAtを使うとlocalRotationの値は”0″になるようです。

rotation(X|Y|Z)は軸がぶれない!ので、各プロパティへの代入順序も関係ない。

個人的にはrotationのほうがわかりやすいです。どのような状況でlocalRotationと使い分けるのか浮かばないです。

以下、サンプルのコード。

続きを読む

ラインとPV3D

ラインとPV3D

久しぶりにPV3D触ってました。
エントリも2009初だったりするぐらいAS触ってなくてゲーム三昧。
とりあえず、リロードでランダムに線の形状が変わります。
リニューアルしたいWORKSで使うかもしれない!

Papervision3D 2.0 Beta1にしました

サイトで利用しているPV3Dを2.0 Beta1にしました。
多分前はRevision629あたり。
この間、Camera3Dの変更などあったので、さすがにライブラリをアップデートするだけってのではいくはずがないので、変更した点をメモ。
旧Camera3Dクラスと同じ使い方を新Camera3Dクラスで実現するには、

camera.target = DisplayObject3D.ZERO;

とするだけですが、zoomプロパティの値も少し変わっていました。
ここの場合は11から10にしただけです。
(BasicViewを利用する場合、上記コードはたぶん必要ないです。)
Cameraクラス以外では、rotationXの向きというか方向が変わってる。
指定そのままだと、Cubeに表示されているコンテンツのテクスチャがおかしかったので、最初MaterialListが変更されたのかと思った。
rotationYに関しては変更がないです。
rotationZは利用していないので不明。

About me

名古屋を中心に、フリーランスでホームページ制作してます。 デザイン・サイト制作・Flash制作と幅広く対応可能です。 案件のご依頼・ご相談はお問い合わせよりご連絡ください。