忍者ブログ

マドノマグラの初心者自作ゲーム制作日誌 迷走モード

プログラミング初心者が自作ゲームを作成してみようとする動きを記す。現在迷走中。

ブログ履歴

2010/11/06: HSP3.22の環境を整えてみる
2009/11/09: Rubyで適当版自分用関連記事リンク作成プログラムを作る
2009/06/04: Visual C++(DXライブラリ使用)の環境を整えてみるも休止状態に
2009/03/17: ActionScript勉強の環境を整えるも結局休止状態に
2006/07/15: とりあえず分岐型ゲームを作る グリーンタワーVer1.2 ダウンロード(zip)
2006/07/02: ブログスタート。NScripterで何かを作ろうとする

[PR]

×

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

赤いバッジを描く

プログラマのためのFlash遊び方:第3回 お絵かきしながら学ぶ ActionScript 3.0(後編)を元に、というかほんの少しの改変しただけのもので赤色のバッジ作成。

public function createGradientBox(width:Number, height:Number, rotation:Number = 0, tx:Number = 0, ty:Number = 0):void
width:幅
height:高さ
rotation:回転量 (角度)
tx:x 軸に沿って右方向に平行移動する距離 (px) 。この値は、width パラメータの半分だけオフセット。
ty:y 軸に沿って下方向に平行移動する距離 (px) 。この値は、height パラメータの半分だけオフセット。

public function beginGradientFill(type:String, colors:Array, alphas:Array, ratios:Array, matrix:Matrix = null, spreadMethod:String = "pad", interpolationMethod:String = "rgb", focalPointRatio:Number = 0):void

type:使用するグラデーションのタイプを指定。GradientType.LINEAR または GradientType.RADIAL。
colors:グラデーションで使用する RGB 16 進カラー値の配列。最大 15 色まで指定可。各色について、alphas パラメータと ratios パラメータで対応する値を必ず指定。
alphas:colors 配列内の各色に対応するアルファ値の配列。有効な値は 0 ~ 1 。
ratios:色分布比率の配列。0 ~ 255 の範囲の値を指定可。この値は、100% でサンプリングされる色の幅の割合をパーセントで定義。値 0 はグラデーションボックスの左の位置を表し、255 はグラデーションボックスの右の位置を表す。

public static function polar(len:Number, angle:Number):Point
len:極座標ペアの長さ座標。
angle:極座標ペアの角度 (ラジアン単位)

public function DropShadowFilter(distance:Number = 4.0, angle:Number = 45, color:uint = 0, alpha:Number = 1.0, blurX:Number = 4.0, blurY:Number = 4.0, strength:Number = 1.0, quality:int = 1, inner:Boolean = false, knockout:Boolean = false, hideObject:Boolean = false)

distance:シャドウのオフセット距離 (ピクセル単位)
angle:0 ~ 360 度で表されるシャドウの角度 (浮動小数)
color:シャドウのカラー。16 進数形式 (0xRRGGBB) で指定します。
alpha:シャドウカラーのアルファ透明度値。指定できる値は 0.0 ~ 1.0 。
blurX:水平方向のぼかし量です。指定できる値は 0 ~ 255.0 (浮動小数) 。
blurY:垂直方向のぼかし量です。指定できる値は 0 ~ 255.0 (浮動小数) 。
strength:インプリントの強さまたは広がりです。値が大きいほど、シャドウと背景との間のコントラストが強くなる。指定できる値は 0 ~ 255.0 。
quality:フィルタを適用する回数。
inner:シャドウが内側のシャドウであるかどうかを指定。true の場合は、内側シャドウ。値 false は外側シャドウ。
knockout:true の場合は、ノックアウト効果を適用。その結果、オブジェクトの塗りが透明になり、ドキュメントの背景色が表示。
hideObject:オブジェクトが非表示であるかどうかを示します。true を指定すると、オブジェクト自体は描画されず、シャドウだけが表示。

htmlText:String
テキストフィールドの内容を HTML で示す




package {
import flash.display.Sprite;
import flash.geom.Matrix;
import flash.geom.Point;
import flash.filters.DropShadowFilter;
import flash.text.TextField;

public class Main extends Sprite {
// インスタンス変数を宣言
private const LINE_COLOR:uint = 0xffffff;
private const BODY_COLOR1:uint = 0xFFDAED;
private const BODY_COLOR2:uint = 0xFD037F;
private const CORNER:int = 18;
private const RADIUS1:Number = 90;
private const RADIUS2:Number = 65;
private const TEXT:String = "Enter";

// コンストラクタ
public function Main() {
// バッジの小さいほうの直径
var d:Number = Math.min(RADIUS1, RADIUS2) * 2;

// Spriteを作成
var s:Sprite = new Sprite();
s.graphics.lineStyle(1, LINE_COLOR);

// グラデーションの範囲と方向をMatrixオブジェクトに格納
// (d×dの範囲を-45°の方向に)
var matrix:Matrix = new Matrix();
matrix.createGradientBox(d, d, -Math.PI / 4);

// グラデーションの情報を指定
s.graphics.beginGradientFill(
"linear", // 線状のグラデーション
[BODY_COLOR1, BODY_COLOR2], // 色
[1, 1], // 透明度
[0, 255], // 色の位置
matrix); // 範囲と角度

// 星型の描画
var angle:Number = 2 * Math.PI / CORNER;
var p1:Point, p2:Point;
s.graphics.moveTo(RADIUS1, 0);
for(var i:int = 0; i < CORNER; i++) {
p1 = Point.polar(RADIUS2, angle * (i + 0.5));
p2 = Point.polar(RADIUS1, angle * (i + 1));
s.graphics.curveTo(p1.x, p1.y, p2.x, p2.y);
}
s.graphics.endFill();

// 影をつける
s.filters = [new DropShadowFilter(4, 45, 0, 0.5)];

// 中に表示するテキストを作成
var size:int = d / TEXT.length;
var text:TextField = new TextField();
text.htmlText = ''
+ '' + TEXT + '
';
text.x = -text.textWidth / 2;
text.y = -text.textHeight / 2;
text.filters = [new DropShadowFilter(1, 45, 0, 0.8)];
s.addChild(text);

// (100, 100) に表示
s.x = s.y = 100;
addChild(s);
}
}
}
PR

この記事にコメントする

NAME
TITLE
MAIL
URL
COMMENT
PASS

この記事へのトラックバック

この記事にトラックバックする:

PR

カテゴリー

最新記事

アーカイブ

プロフィール

HN:
マドノマグラ
性別:
非公開
職業:
趣味:
駄文書き
自己紹介:
ゲームを作ろうとしているうちに、言語学習に飽きていく。典型的なダメな人パターンに陥るアホな人

リンク

ブログ内検索

バーコード

RSS

忍者ブログ │ [PR]