忍者ブログ
日々の足跡をなんとなく綴って行いこうかと。
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

ActionScriptというかmxmlで遊んでたんで載せてみる。
「free fall」にはなんらまったく意図は無い。
カーソルを載せたり外したりすると光る(?)
ただそれだけ。
mxmlに5行程度書いただけなのだが、ちょっと面白い。
何度も言うが「free fall」はならんら意図は無い。



あ、それと水曜あたりから週末まで実家へ。
土日空いてる人は空けたままにしておいてくれ。
PR

前回から20日ほど間をおいて再びActionScriptをいじってみた。
やはりアレだね、間をおくと見えなかったものが見えてくるね。
CPUが圧迫されていた理由が分かったよ。
必要のない描画を毎フレーム毎フレームやってたんでどんどん圧迫されていったらしい。
ActionScriptの描画は、一度描いたらずらすだけで良いってことを肝に銘じておかねば。

で、必要なときにだけ描けるように下のようなクラスに。
いや、誰が見るんだよってはなしだが、自分用の覚書?
基底クラスのdrawメソッドのfinalと、
継承クラスのdrawBodyメソッドのprotectedがポイントか。
実際にはコンパイル通らないけど、イメージってことで。


//=========================
// メインクラス
//=========================
class Main
{
    private var _frameTimer:Timer; // フレームレートクラスを呼び出すタイマー
    private var _base:Base; // 描画物
    //--------------------------------------
    // コンストラクタ
    //--------------------------------------
    public function MyKeyEvent()
    {
         // 描画物生成
        _base = new MyCircle();

         // フレーム管理用タイマー設定
         _frameTimer = new Timer(42, 0);
         _frameTimer.addEventListener(TimerEvent.TIMER, sequence);
         _frameTimer.start();
     }

    //--------------------------------------
    // フレーム毎の処理
    //--------------------------------------
    public function sequence(e:TimerEvent):void
    {
         // 描画
          _base.draw();
    }
}

//=========================
// 描画物の基底クラス
//=========================
class Base
{
    //-----------------
    // メンバ
    //-----------------
    private var _isNeedDraw:Boolean = true; // 描画する必要があるか否か
    
    //-----------------
    // メソッド
    //-----------------
    // 描画
    // 外から呼ばれるメソッド
    public final function draw():void
    {
         // 描画する必要があるか判定
         if(_isNeedDraw){
          // 描画
          drawBody();
    
          // 描画後、描画必要フラグを下げる
          _isNeedDraw = false;
         }
    }
  
    // 描画の本体
    // このメソッドをオーバーライドして描画物を定義する
    protected function drawBody():void{}
}

//=========================
// 描画物 - 円形 -
//=========================
class MyCircle extends Base
{
    //-----------------
    // メソッド
    //-----------------
    // 描画
    protected override function drawBody():void
    {
       graphics.beginFill(color);
       graphics.drawCircle(0, 0, radius);
    }
 }

ActionScriptで遊んでみた。
前回から1ヶ月が経っていたようで。
月日が経つのは早いねぇ(遠い目)

以前JavaScriptで作って投稿すると、
初回は問題ないが、2回目から前回の定義とかぶったりしてエラーが発生。
色々調べて解決しなければいけ無そうだったのでFlashに鞍替えしたわけだ。
で、Flashで動画を作るソフトとかそういうのは持ってないし、アニメーション作りとかはあまり興味がないので、
ActionScriptのフリーのコンパイラを落として、プログラミングで遊んでる。

で、作ったものといえば、現在はだたうごくだけのもの。
こちらから働きかけは出来ない。
…アニメーションじゃん!

で、作ったものは似非衝突。
3つの円がひたすらぶつかり合います。
跳ね返りとか、移動速度とかの計算は似非です。
オブジェクトの方向によって、若干めり込んでたり、まだ当たってなかったりするのは、
オブジェクトの基点が左上にあるのに、中心にあるかのような計算をしているから。
あと、更新時間の問題。

ソースコード(汚いのは勘弁)

大学時代を思い出しながら、ラジアンとかと格闘すること数時間。
以前はYにメッセで色々聞きながらやったっけなぁ…。
なつかしい。



忍者ブログ [PR]
カウンター
カレンダー
04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
最新コメント
[02/21 ワッティー]
[10/18 Y的な]
[05/08 十日夜]
[04/26 ジャッカル草壁]
[01/29 十日夜]
最新トラックバック
プロフィール
HN:
Takaten
性別:
非公開
ブログ内検索
アクセス解析