雨のエフェクト

drop_rain



梅雨まっさかりということで雨のエフェクトです
解説はつづきから



新規ファイル作成
ステージ設定はサイズを400×300、フレームレートを30
作成しやすいように背景を黒に



ステージに好きな画像を配置



新規シンボルの作成から詳細設定→ActionScriptに書き出し→クラス名Rain



涙滴の形をした図形を描き、幅1px、高さ100px
グラデーションをかけ、ふくらんでいるほうを色#FFFFFF、透明度30%
細くなっているほうを色#FFFFFF、透明度15%
線はなし
少しだけ回転


シーン1に戻って、新規レイヤーをつくりActionScriptを記入


まずは雨の配置

var offset:int = 50;    //rainが横に動く分ずらす
var drops:int = 100;    //雨の数
var rainArray:Array = new Array;
//雨配置
for (var i:int = 0; i < drops; i++) {
    var rain:Rain = new Rain();
    //雨の初期位置
    rain.x = Math.random() * (stage.stageWidth + offset);
    rain.y = Math.random() * stage.stageHeight;
    //雨の大きさ設定
    rain.scaleX = Math.round(((Math.random() * 0.8) + 0.3) * 10) / 10;
    rain.scaleY=rain.scaleX;
    addChild(rain);
    rainArray.push(rain);    //rainを配列に格納
}


次に雨の動き設定

var offset:int = 50;    //rainが横に動く分ずらす
var drops:int = 100;    //雨の数
var windSpeed:int = 3;    //X方向の移動量
var fallSpeed:int = 18;    //Y方向の移動量
var rainArray:Array = new Array;
//雨配置
for (var i:int = 0; i < drops; i++) {
    var rain:Rain = new Rain();
    //雨の初期位置
    rain.x = Math.random() * (stage.stageWidth + offset);
    rain.y = Math.random() * stage.stageHeight;
    //雨の大きさ設定
    rain.scaleX = Math.round(((Math.random() * 0.8) + 0.3) * 10) / 10;
    rain.scaleY=rain.scaleX;
    addChild(rain);
    rainArray.push(rain);    //rainを配列に格納
}
//雨の動き
addEventListener(Event.ENTER_FRAME,dropRain);
function dropRain(evt:Event):void {
    for (var i:int = 0; i < drops; i++) {
        rainArray[i].x -= windSpeed;
        rainArray[i].y += fallSpeed;
        //雨がステージより下にいった後の処理
        if (rainArray[i].y > stage.stageHeight + rainArray[i].height) {
            rainArray[i].x = Math.random() * (stage.stageWidth + offset*2);
            rainArray[i].y = 0 - rainArray[i].height;
            windSpeed = Math.round(Math.random() *5);
        }
    }
}


ムービープレビューすると雨のエフェクトができてるかと思います



以上雨のエフェクトの作り方でした