Box2D開発中バージョンの新機能について こんにちはtaroです。 Box2Dといえば、PaperVision3D(PV3D)の同様下位バージョンとの互換性が無いこと、 PV3Dよりさらにドキュメントが無いことで有名ですが、今回はBox2Dで導入されようとしているb2Controllerの機能について ご紹介しようと思います。まだリリースされていないバージョンですので、リリース時にまた 今回の記事の内容とBox2Dの仕様が変わる可能性があります。また、バグフィックス中の部分もあるかと思いますので、 その辺ご容赦頂きながら、「この機能Box2Dに欲しかったかも・・・」みたいな感じでご覧いただければ、と思います。 開発中のBox2Dを入手 まず、この記事でご紹介しているバージョンのBox2Dの入手方法からご説明いたします。 WindowsではTortoiseSVNのようなソフトを使って、 こ
AstroでPandaCSSを使ってみるAstroを触ってみようかな? と思い、まずは公式のチュートリアルを一通り終わらせてみました。以前から気になっていたPandaCSSの勉強も…と思ったので、AstroでPandaCSSを使ってみることに。PandaCSSのインストールマニュアルを見ながら各種設定を終え、npm run devしてみても、CSSが反映されず。原因は単純なミスでした。 LaravelでjQueryを使ってみるデータベースに登録、更新、削除を行なった際に、簡単なflashメッセージを表示させてみようかと。一定時間が経過 or ボタンクリックでメッセージが消えるアニメーションを、jQueryで実装してみたいと思います。npmを使ってインストールしたjQueryを使うと、javascriptの実行順が意図しないものになってしまい、jQueryが実行されなくなってしまいました。色
Downloads (recommended version) QuickBox2D 1.1 If you don't already know, Box2D is a great physics library created by Erin Catto. It was ported to AS3 by Matthew Bush and John Nesky. You can download the AS3 version of the library from the below link... Go Get Box2DFlashAS3 2.0.2. WARNING: QuickBox2D currently only works with Box2DFlashAS3 2.0.2 and earliear versions, so be sure to download 2.0.2
最近久しぶりにAS2を触ったりしています。始める前は「ぬぅぅ」とか唸ってましたが、実際書いてみるとAS2のやわらかい感じが「けっこう楽しいね」とか思ったりとか。今ではFlashDevelopでAS2も書けるし、案外ストレスもないし。 とAS2とは関係ないですが、Box2Dの回転Jointのテストしてみようと。AS3はライブラリが豊富なのが魅力ですね。 Box2Dは、Box2DFlashAS3 2.0.1です。 今回行ったのは回転Joint(RevoluteJoint)のテストです。何かしらのオブジェクトをドラッグしつつ、クリック座標で回転する的な。とりあえずSWFはこんな感じで。 小さい「□」はJoint用に用意したオブジェクトです。ドラッグするのは大きい「□」です。 まず回転Jointは、以下のような手順で書くとよいらしい。定義をつくって実体化って流れがオブジェクトつくるときと同じですね
Jointを使って2つのオブジェクトをつなげます。 今までのはオブジェクトが1個だけだったのでもう1個作成します。 //2つめのBOX作成 bodyDef.userData = new BoxFace(); bodyDef.userData.width = boxDef.extents.x * 2; bodyDef.userData.height = boxDef.extents.y * 2; bodyDef.position.x = 400; bodyDef.position.y = 200; var body2 = m_world.CreateBody(bodyDef); addChild(bodyDef.userData); 1つめのBOXの横に同じBOXを作成します。 すでに1つ作成しているので、違う部分のみでできます。 userDataのとこも同じだけど表示するインスタンス自体は
位置に移動させるとかstartDragを使うとかありますが、そういう感じでは ないみたいです。 (こういうのと同じ感覚でできるやり方もあるかもしれないけど未確認) Box2Dでは「Joint」というものでオブジェクト同士をつなげることができます。 マウスでオブジェクトをドラッグする場合はマウスとオブジェクトを この「Joint」でつなげることによって「マウスでオブジェクトを引っ張る」 ことができ、「オブジェクトをマウスでドラッグする」ように見せられます。 ●ドラッグの対象となるオブジェクトを取得 ドラッグを開始させるタイミングMOUSE_DOWNイベントが発生した時になります。 各オブジェクトにMOUSE_DOWNイベントを登録すれば良さそうですが、 このサンプルでは違います。(でもこの方法もできそうな気がします) サンプルではstageに対してMOUSE_DOWNイベントを登録し、MOU
次は地面を作ってみます。 Box2Dでは地面用のオブジェクトはありません。 「動かないBOX」を地面としてしまいます。 ●動かないBOXの作り方 作成したオブジェクトを動かなくするにはb2BoxDefの「density」の 値を「0」にするだけです。 地面にするのでサイズを横長のものにしてます。 それ以外にはpositionの値を変えてますが、BOXを作るのとやり方が同じで 値だけ違うだけなのが分かります。 //var boxDef:b2BoxDef = new b2BoxDef(); boxDef.extents.Set(400, 20); boxDef.density = 0.0; //ここを0にすると動かない! boxDef.friction = 0.8; boxDef.restitution = 0.6; //var bodyDef:b2BodyDef = new b2BodyDe
前回の残りの部分について。 ●描画 Box2D自体は描画をしてくれません。 各オブジェクトの物理計算をして、その情報を持っているだけです。 描画の処理はこっちでやらないといけません。 そのへんが最初分かりにくかったけど、分かってくると柔軟に使えてきます。 Box2Dに計算させる&その情報を取得して描画をするために ENTER_FRAMEで毎フレームその2つの処理を行います。 1)物理計算 計算させるには次の関数を実行します。 //Box2Dに計算をさせる m_world.Step(m_timeStep, m_iterations); 引数は以下のように設定します。 public var m_iterations:int = 1; public var m_timeStep:Number = 1/60; m_iterationsはおそらく繰り替えし回数、 m_timeStepは経過させる時間
あけましておめでとうございます、FICC安藤です。 やっと通常業務が落ち着いたので、去年の末からずっと気になってたBox2DFlashAS3のエントリーです。 サンプルを見ながら四角や丸を一通り降らして見たので今度は自由な形状、安易に「F」「I」「C」の文字を降らしてみたいと思います。 まず基本となる入れ物 worldを用意します。 var worldAABB:b2AABB = new b2AABB(); worldAABB.minVertex.Set(-1000.0, -1000.0); worldAABB.maxVertex.Set(1000.0, 1000.0); var gravity:b2Vec2 = new b2Vec2(0.0, 300.0); var doSleep:Boolean = true; m_world = new b2World(worldAABB, gra
執筆にあたって † 開発環境 : Flash CS3, Flash Develop ActionScript?のエディタとしてFlashDevelopを使用し、Flash CS3で素材制作とパブリッシュを行います。 ↑ 物理エンジンとは? † 例えばゲーム等のFlashコンテンツを制作する際に、ボールを放り投げる表現をしたくなったことはありませんか? あるいはジャンプするキャラクターを作成し、スーパーマリオのようなゲームを作成したくなったことはありませんか? そんなとき、避けて通れないのが「物理法則のプログラミング」です。 「ボールを投げて300px下の水平な地面に落ちる」くらいの動きであれば、以下のような簡単なプログラムを書けば実現できます。 ムービークリップ「ball_mc」の1フレーム目に記述 var _vy:Number = -30;//初速 var _g:Number
Box2Dflashのドキュメントが見つからないので仕方なしに訳す。 まだ途中 - http://www.box2d.org/manual.html Box2Dユーザマニュアル はじめに Box2Dはゲーム用の2D剛体シミュレーターです。 これを利用するとゲーム内のオブジェクトをもっともらしく動かしたり、世界をよりインタラクティブに見せたり出来ます。 ゲームの観点から見ると物理エンジンは単なる手続き的なアニメーションシステムにすぎません。 アニメーターにお金を払って(またはお願いして)アクターを動かしてもらう代わりに、アイザックニュートンに指揮をお任せできます。 Box2Dは移植可能なC++で記述されています。 エンジンで定義される型のほとんどはb2というプレフィクスで始まります。 これで君のゲームエンジンと名前の衝突が起きないようになると期待しています。 要件 このマニュアルでは読者が質
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く