« 2007年12月 | メイン | 2008年02月 »

2008年01月 アーカイブ

2008年01月07日

WCAN mini ActionScript Vol.4 しゃべる人募集

1/26(土)くらいにVol.4やりたいので、しゃべりたい人募集
場所はもちろん名古屋です。


私に連絡とれる方法で連絡ください。
メールは lllkoballl at gmail.com

内容はActionScriptとか関係ありそうだったら何でもおっけーです。
みなさんぜひ。

名古屋(東海地方)の人は頑張って発表してください。
それ以外の人も発表お待ちしてます。

2008年01月11日

Box2DFlashAS3はじめてみた

Flash Physics Engine Box2DFlashAS3 1.4.3
http://box2dflash.sourceforge.net/ サンプルを見ながら作ってみた。

クリックすると箱が出てきます。
このコンテンツには最新のFlashPlayerが必要です


ソースダウンロード
package {

    import flash.display.*;
    import flash.events.*;

    import Box2D.Dynamics.*;
    import Box2D.Collision.*;
    import Box2D.Collision.Shapes.*;
    import Box2D.Common.Math.*;


    public class Box2DSample01 extends MovieClip {

        private var m_world:b2World;
        private var m_iterations:int = 10;
        private var m_timeStep:Number = 1/30;
        
        public function Box2DSample01() {
            
            addEventListener(Event.ENTER_FRAME, update);
            stage.addEventListener(MouseEvent.CLICK, createBox);

            var worldAABB:b2AABB = new b2AABB();
            worldAABB.minVertex.Set(-1000.0, -100.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, gravity, doSleep);
            
            createGround();
        }


        private function createGround():void {
            
            var bodyDef:b2BodyDef;
            var boxDef:b2BoxDef;

            bodyDef = new b2BodyDef();
            boxDef = new b2BoxDef();
            boxDef.extents.Set(1000, 100);
            boxDef.friction = 0.3;
            bodyDef.position.Set(0, 380);
            bodyDef.AddShape(boxDef);

            bodyDef.userData = new ground();
            bodyDef.userData.width = boxDef.extents.x * 2;
            bodyDef.userData.height = boxDef.extents.y * 2;

            addChild(bodyDef.userData);
            m_world.CreateBody(bodyDef);

        }

        
        private function createBox(e:MouseEvent):void {

            var bodyDef:b2BodyDef;
            var boxDef:b2BoxDef;

            bodyDef = new b2BodyDef();
            boxDef = new b2BoxDef();
            boxDef.extents.Set(15, 15);
            boxDef.density = 1.0;
            boxDef.friction = 0.5;
            boxDef.restitution = 0.2;
            bodyDef.AddShape(boxDef);
            bodyDef.userData = new box();
            bodyDef.userData.width = boxDef.extents.x * 2;
            bodyDef.userData.height = boxDef.extents.y * 2;
            bodyDef.position.x = stage.mouseX;
            bodyDef.position.y = stage.mouseY;
            bodyDef.rotation = Math.random() * Math.PI / 8;

            m_world.CreateBody(bodyDef);
            addChild(bodyDef.userData);
            
        }


        private function update(e:Event):void {

            m_world.Step(m_timeStep, m_iterations);

            for (var bb:b2Body = m_world.m_bodyList; bb; bb = bb.m_next) {
                if (bb.m_userData is Sprite) {
                    bb.m_userData.x = bb.m_position.x;
                    bb.m_userData.y = bb.m_position.y;
                    bb.m_userData.rotation = bb.m_rotation * (180/Math.PI);
                }
            }
        }       
    }
}

2008年01月15日

ヒゲチェン

ヒゲチェン
http://www.hige-chen.com/index.html

http://www.hige-chen.com/users/vote/463ee0818b5ec07826580c48d7587d97

これはおもしろすぎるw

2008年01月16日

WCAN mini ActionScript Vol.4 申し込み開始

WCAN [ Web Creators Association Nagoya ] WCAN mini ActionScript Vol.4
http://www.wcan.jp/index.php?ID=147

申し込み開始しました。

私はBox2DFlashAS3でなんかやるよていです。


『ActionScript やっとかめ!』

1月26日(土)にActionScriptの勉強会を開催します。今年も頑張っていきたいと思っていますので、よろしくお願いします。今のところ以下の7名の方にスピーカーをお願いしています。

どういった内容の話をしていただくか調整中です。ブログなどを参考にしていただけるとありがたいです。参加費用のかかる勉強会で大変申し訳ありませんが、よろしくお願いします。決まり次第更新していきます。

やっとかめって

八十日目と書いて「やっとかめ」と読む。
80日ぶりに会ったこと、転じて久しぶりだという意味

ということだったんだ。
そういえば久しぶりの開催ですな。


2008年01月25日

WCAN mini ActionScript Vol.4 空きあります

どうやらキャンセルが出たみたいで、ちょっと席が空きました。
明日だけどよかったら参加してください。

http://www.wcan.jp/members/index.php?ID=41

2008年01月28日

WCAN mini ActionScript Vol.4 で発表したやつ Box2DFlashAS3

WCAN [ Web Creators Association Nagoya ] WCAN mini ActionScript Vol.4
http://www.wcan.jp/index.php?ID=147

WCAN mini ASで発表してきた

資料はこちら


このコンテンツには最新のFlashPlayerが必要です


swfクリックして矢印キーの右左で進みます。


資料のソースダウンロード(ぐちゃぐちゃですw)
http://un-q.net/2008/01/28/swf/wcan_mini_as_4_src.zip


WCAN mini AS Vol.4 ピストっぽいサンプル Box2dFlashAS3 (Unknown Quality)
http://un-q.net/2008/01/wcan_mini_as_box2dflashas3.html


WCAN mini AS Vol.4 ギアのとこサンプル Box2dFlashAS3 (Unknown Quality)
http://un-q.net/2008/01/wcan_mini_as_box2dflashas3_13.html


WCAN mini AS Vol.4 チェーンのとこサンプル Box2dFlashAS3 (Unknown Quality)
http://un-q.net/2008/01/wcan_mini_as_box2dflashas_14.html


WCAN mini AS Vol.4 ピンボールっぽいサンプル Box2dFlashAS3 (Unknown Quality)
http://un-q.net/2008/01/wcan_mini_as_box2dflashas3_15.html


WCAN mini AS Vol.4 ピストっぽいサンプル Box2dFlashAS3

WCAN mini ActionScript Vol.4 で発表したやつ Box2DFlashAS3 (Unknown Quality)
http://un-q.net/2008/01/wcan_mini_actionscript_vol4_bo.html

WCAN mini AS vol.4で発表した 自転車のギアとチェーンっぽいのも

重いから続きへ移動


続きを読む "WCAN mini AS Vol.4 ピストっぽいサンプル Box2dFlashAS3" »

WCAN mini AS Vol.4 ギアのとこサンプル Box2dFlashAS3

WCAN mini ActionScript Vol.4 で発表したやつ Box2DFlashAS3 (Unknown Quality)
http://un-q.net/2008/01/wcan_mini_actionscript_vol4_bo.html

重いから続きへ移動

続きを読む "WCAN mini AS Vol.4 ギアのとこサンプル Box2dFlashAS3" »

WCAN mini AS Vol.4 チェーンのとこサンプル Box2dFlashAS3

WCAN mini ActionScript Vol.4 で発表したやつ Box2DFlashAS3 (Unknown Quality)
http://un-q.net/2008/01/wcan_mini_actionscript_vol4_bo.html

チェーンのとこ
Jointの簡単なサンプル
重いから続きへ移動

続きを読む "WCAN mini AS Vol.4 チェーンのとこサンプル Box2dFlashAS3" »

WCAN mini AS Vol.4 ピンボールっぽいサンプル Box2dFlashAS3

WCAN mini ActionScript Vol.4 で発表したやつ Box2DFlashAS3 (Unknown Quality)
http://un-q.net/2008/01/wcan_mini_actionscript_vol4_bo.html

ピンボールっぽいヤツ

重いから続きへ移動

続きを読む "WCAN mini AS Vol.4 ピンボールっぽいサンプル Box2dFlashAS3" »

Box2Dで三角形

Box2DflashAS3にはcircleとかboxのほかにもb2PolyDefというのがあって、多角形を生成できたりします。

このコンテンツには最新のFlashPlayerが必要です

三角形を描画
var bd:b2BodyDef = new b2BodyDef();
var t:b2PolyDef = new b2PolyDef();

t.vertexCount = 3;
t.vertices[0].Set(0,0);
t.vertices[1].Set(40,0);
t.vertices[2].Set(0,40);

t.density = 1;
t.friction = 0.5;
t.restitution = 0.3;

bd.AddShape(t);
bd.position.x = stage.mouseX/m_physScale;
bd.position.y = stage.mouseY/m_physScale;
bd.rotation = Math.random() * Math.PI / 8;

m_world.CreateBody(bd);

box2dで星っぽいの作ってもうまく動かない

続きを書いてみた

box2dで星っぽいの作ってもうまく動かない その2 (Unknown Quality)
http://un-q.net/2008/01/box2d_flash_as3.html

----------------------

どうやら物理エンジンでは凸包(convex)しか認められないのはよくあることらしい。
http://twitter.com/rch850/statuses/650991802
これは動く
このコンテンツには最新のFlashPlayerが必要です
でもこれはうまく動かない
このコンテンツには最新のFlashPlayerが必要です
var bd:b2BodyDef = new b2BodyDef();
var t:b2PolyDef = new b2PolyDef();

t.vertexCount = 8;

var hoge:Number = Math.PI*2 / 8;
var r:Number = 20;
for (var i:int = 0; i<8; i++) {
    // r = (i % 2 == 0)? 20 : 10; // アンコメントで星っぽいヤツ
    t.vertices[i].Set(Math.cos(hoge*i)*r, Math.sin(hoge*i)*r);        
}
            
t.density = 1;
t.friction = 0.5;
t.restitution = 0.3;

bd.AddShape(t);
bd.position.x = stage.mouseX/m_physScale;
bd.position.y = stage.mouseY/m_physScale;

m_world.CreateBody(bd);


ちなみにbox2dでは多角形の頂点の数に制限がある。
b2Settings.asに
static public const b2_maxPolyVertices:int = 8;
って書いてある><

2008年01月29日

box2dで星っぽいの作ってもうまく動かない その2

三角形をつなげて、一個前のをやってみた。

box2dで星っぽいの作ってもうまく動かない (Unknown Quality)
http://un-q.net/2008/01/box2d_as3_flash.html

まだ挙動がおかしい><
でもこれはこれでおもしろいかも
このコンテンツには最新のFlashPlayerが必要です

もっとすっきりしたやり方があるっぽいけど保留w
// localPosition使えばもっとすっきりするんじゃね
            
var bd:b2BodyDef = new b2BodyDef();
var t1:b2PolyDef = new b2PolyDef();
var t2:b2PolyDef = new b2PolyDef();
var t3:b2PolyDef = new b2PolyDef();
var t4:b2PolyDef = new b2PolyDef();
                
t1.vertexCount = 3;
t2.vertexCount = 3;
t3.vertexCount = 3;
t4.vertexCount = 3;

var hoge:Number = Math.PI*2 / 8;
var r:Number = 20;
var a:Array = new Array();
for (var i:int = 0; i<8; i++) {
    r = (i % 2 == 0)? 20 : 10;
    a.push({x:Math.cos(hoge*i)*r, y:Math.sin(hoge*i)*r});
}
            
t1.vertices[0].Set(a[7].x, a[7].y);
t1.vertices[1].Set(a[0].x, a[0].y);
t1.vertices[2].Set(a[1].x, a[1].y);

t2.vertices[0].Set(a[1].x, a[1].y);
t2.vertices[1].Set(a[2].x, a[2].y);
t2.vertices[2].Set(a[3].x, a[3].y);

t3.vertices[0].Set(a[3].x, a[3].y);
t3.vertices[1].Set(a[4].x, a[4].y);
t3.vertices[2].Set(a[5].x, a[5].y);

t4.vertices[0].Set(a[5].x, a[5].y);
t4.vertices[1].Set(a[6].x, a[6].y);
t4.vertices[2].Set(a[7].x, a[7].y);            

t1.density = t2.density = t3.density = t4.density = 1;
t1.friction = t2.friction = t3.friction = t4.friction = 0.5;
t1.restitution = t2.restitution = t3.restitution = t4.restitution = 0.3;

bd.AddShape(t1);
bd.AddShape(t2);
bd.AddShape(t3);
bd.AddShape(t4);

bd.position.x = stage.mouseX/m_physScale;
bd.position.y = stage.mouseY/m_physScale;
//bd.rotation = Math.random() * Math.PI / 8;

m_world.CreateBody(bd);

1ランク上の技を身につけるFlashの強化書

本の記事を書かせていただきました。
記事を書くのは始めてだったので読み返すのが怖いですw

Amazon.co.jp: 1ランク上の技を身につけるFlashの強化書

theFlash-1.gif


ちなみに「しゃべったー」の解説を行ってたと思います。

2008年01月31日

box2dの重力は動的に変更できる

っぽいです

このコンテンツには最新のFlashPlayerが必要です


ENTER_FRAMEのなかでb2Worldのm_gravityを変更してやると上のヤツのようになります。
m_world.m_gravity.Set(r(-20,20), r(-20,20));

function r (max, min) {
    return Math.floor(Math.random()*(max-min+1))+min;
}             

About 2008年01月

2008年01月にブログ「Unknown Quality」に投稿されたすべてのエントリーです。過去のものから新しいものへ順番に並んでいます。

前のアーカイブは2007年12月です。

次のアーカイブは2008年02月です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。