スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

FLASHで何か作ってみた。

ずっと前から、FLASHというソフトで色々作ったりするのが趣味で
久しぶりにリハビリで何か作ってみるかと思ってできたのがこれ。



マウスを花弁に近づけたり、クリックすると花弁が動きます。
エンターキーでリセットされます。

なんの需要もないですが。

絵はMitukiさんに描いていただきました!
絵が上手すぎて、簡単なプログラミングでもそれなりに良く見える。

Mitukiさんの絵がもっとみたい方はこちら
http://chouato.blog137.fc2.com/

んー、これからちょくちょくFLASHで何か作って行って
また紹介できたら紹介したいと思います。

・・・

てか何かに使えないかなこれ?

ちなみにプログラムはAS2.0で書いてます。
続きに簡単に紹介しときます。
正直興味無い人にとってはチンプンカンプンなので、興味ある人だけどうぞ。
独学で汚いプログラムだけど、こんな感じで書いてます。
詳しい人いたら指摘とかほしいです。

1フレーム目
stop();

goalpha = 0;//透明になっていく率(0固定)

maxscale = 80;//花びらのスケール最大(80)
minalpha = 50;//花びらの透明度最小値(50)
max = 60;//花びら複製個数(100)
maxmovex = 0.5;
maxmovey = 0.5;//移動速度最大(0.5)

maxrotation = 0.5;//花びらの回転速度最大値(0.5)

mdistance = 120;//マウスと花びらの距離がどれくらいでアクションをおこすか(50)
fast = 1.5;//そのときの移動速度の倍率(2.5)
lost = 1.2;//移動速度衰退(1.2)


//花びら1複製
var i;
for (i = 0; i < max; i++)
{
// 複製後のインスタンス名
var name = "bloom" + i;
// 複製後の深度
var depth = i;
// _root.bloom を複製する
_root.bloom.duplicateMovieClip(name,depth);
}

//花びら2複製
var i;
for (i = max + 1; i < max + max; i++)
{
// 複製後のインスタンス名
var name = "blooms" + i;
// 複製後の深度
var depth = i;
// _root.bloom を複製する
_root.bloom2.duplicateMovieClip(name,depth);
}


背景を揺らす(これはそのままコピーしたから内容よく分からん)
(参考URL:http://hakuhin.jp/as.html)
// ビットマップのリンケージ名
SOURCE_NAME = "sorce";

// 描画するターゲットパス
RENDER_MOVIECLIP = _root;

// スクリーンサイズ
SCREEN_WIDTH = 550;
SCREEN_HEIGHT = 400;

// サインカーブパラメータ
phase = 1; // 位相
speed = 2; // 波移動速度
amp = 3; // 振幅
cycle = 2; // 周期

// ビットマップデータ確保
bmpData = flash.display.BitmapData.loadBitmap (SOURCE_NAME);

onEnterFrame = function(){
// クリーンアップ
RENDER_MOVIECLIP.clear();

phase += speed;
var i;
var tmp = phase;
var m = new flash.geom.Matrix(1,0,0,1,0,0);
for(i=0;i < SCREEN_HEIGHT;i++){
tmp += cycle;
// ビットマップデータから1行ずつずらして描画
m.ty = Math.sin(tmp * Math.PI / 180) * amp;
RENDER_MOVIECLIP.beginBitmapFill(bmpData, m);
RENDER_MOVIECLIP.moveTo(0, i);
RENDER_MOVIECLIP.lineTo(0, i + 1);
RENDER_MOVIECLIP.lineTo(SCREEN_WIDTH, i + 1);
RENDER_MOVIECLIP.lineTo(SCREEN_WIDTH, i);
RENDER_MOVIECLIP.endFill();
}
}


花弁
onClipEvent (load) {
//初期の位置をランダム
this._x = Math.random() * 550;
this._y = Math.random() * 400;

//初期の大きさをランダム
scale = Math.random() * _root.maxscale;
this._xscale = scale;
this._yscale = scale;

//初期の角度をランダム
this._rotation = Math.random() * 360;

//初期の透明度をランダム
this._alpha = (Math.random() * 100) + _root.minalpha;

//回転速度をランダム
crotation = Math.random() * (_root.maxrotation * 2) - _root.maxrotation;

//移動速度をランダム
xmove = (Math.random() * _root.maxmovex) - _root.maxmovex / 2;
ymove = (Math.random() * _root.maxmovey) - _root.maxmovey / 2;

//連打防止機能
diray = 0;
}

onClipEvent (enterFrame) {
this._alpha -= _root.goalpha;

//回転させる
this._rotation += crotation;

//移動させる
this._x += xmove;
this._y += ymove;

//マウスクリックで移動速度最大に
diray += 1;
if (Key.isDown(1) && diray>20)
{
xmove *= 20;
ymove *= 20;
diray = 0;

}
else if (Key.isDown(key.ENTER) && diray>20)
{
xmove *= 150;//エンターキーで最速に
ymove *= 150;
diray = 0;
}
//マウスと花びらの距離を取得
xmousedistance = Math.abs(_root._xmouse - this._x);
ymousedistance = Math.abs(_root._ymouse - this._y);

//近ければ
if (xmousedistance < _root.mdistance && ymousedistance < _root.mdistance)
{
xmove *= _root.fast;
ymove *= _root.fast;
}
//移動速度衰退
if (xmove < -0.1 || xmove > 0.1)
{
xmove /= _root.lost;
}
if (ymove < -0.1 || ymove > 0.1)
{
ymove /= _root.lost;
}
//画面外に行ったとき戻す
if (this._x < -100)
{
this._x = -100;
xmove *= -1;
}
else if (this._x > 650)
{
this._x = 650;
xmove *= -1;
}
if (this._y < -100)
{
this._y = -100;
ymove *= -1;
}
else if (this._y > 500)
{
this._y = 500;
ymove *= -1;
}
}


基本的な部分はこんな感じです。
その他細かいプログラムでできてます。
スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

CLAMB0N

Author:CLAMB0N
 
無題サドンアタック



メインキャラ: 上月
KD: 58%
メイン武器: AK47

所属クラン:
 暇人倶楽部

ld.png LuckyDice

過去所属クラン:
green.png GREEN_DAY

lemon.png 【£emoN】Waffen

spa.png Spareinlagen

大会成績:
SACTL2012 ベスト16
(暇人倶楽部)

c9_20130208142108.pngC9

メインキャラ: 月彡

所属ギルド:
・暇人倶楽部
・LuckyDice

bn_150_50k.jpg

tera.pngTERA

メインキャラ: 上月
サーバー: エリーヌ

リンク
最新コメント
カテゴリ
FC2カウンター
月別アーカイブ
ブロとも申請フォーム

この人とブロともになる

検索フォーム
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。