# 敵モデルの関数

この左画面を左クリックすれば以下の赤字のスクリプト全部がクリップボードにコピーされるので、右の画面の赤い矢印の右側に貼り付けてください。

    function shirtMove()
    {
    	if ( _shirt._pos.x > 550 )
    	{
    		_shirt._pos.y -= 500*_elapsed;
    	}
    	else if ( Math.random() < 0.8 )
    	{
    		if ( _shirt._pos.x > _jersey._pos.x + 100 && _shirt._pos.x > -500 )
    		{
    			_shirt._pos.x -= 100*_elapsed;
    		}
    	}
    	else if ( Math.random() < 0.8 )
    	{
    		if ( _shirt._pos.x < 550 )
    		{
    			_shirt._pos.x += 100*_elapsed;
    		}
    	}
    	else if ( _shirt._animation == 0 && _shirt._pos.x - _jersey._pos.x < 250 )
    	{
    		_shirt.playAnimation(~~(Math.random()*2.1)+1,false,false);
    	}
    }

では「制御」→「実行」メニューを実行してください。
敵が前進後退しました！
敵が主人公に近づくと攻撃アニメーションしました。でも攻撃が当たっていません・・・。
敵モデルの関数「shirtMove()」です。
敵のx位置が550より大きければ、ステージから落下したと判断し、1秒間に500のスピードでy位置を減算しますね。
落下してなくて0〜1のランダムな値が0.8より小さく、敵と主人公の距離が100より大きく、敵のx位置が-500より大きければ、1秒間に100進むスピードで敵のx座標を減算していますね。
そうでなくて、さらにランダムな値が0.8より小さく、敵のx位置が550より小さければ、敵のx位置を1秒間に100進むスピードで加算しますね。
そうでもなくて、敵のアニメーションが歩いている状態(0番)で敵と主人公の距離が250より小さければ、ランダムに「0〜2」に1加算した値(1〜3)でアニメーション(playAnimation)します。「~~」は小数を整数に切り捨てるんですね。

### 次へ