この記事では、GameMakerで用意されている、基本的な図形の描画関数とその使用例をまとめています。より詳細な関数の仕様については下記公式ドキュメントのページをご参照ください。
参考ページ:
GameMaker Manual
描画の基本
描画関数を利用する際には、描画処理の基本として以下のポイントを押さえておきましょう。
描画色の設定
描画を行う際の「色」を設定は、以下のように行います。
draw_set_colour(c_blue); //描画色の設定
draw_set_colour($00ff00); //$を用いて16進数表記での指定も可能
//カラーチャンネルを用いた設定
colour = make_colour_rgb(50,50,50); //カラー変数の作成
draw_set_colour(colour); //変数で描画色を指定
一言コメント
色情報の変数はマクロやグローバル変数として用意しておくことで、よく使う色を使いまわすときに便利です。
図形の描画
点の描画
//点の描画:(X,Y,描画色)
draw_point_colour(130, 30, c_red);
直線の描画
//直線の描画:(始点X,始点Y,終点X,終点Y,直線幅,始点色,終点色)
//単色の直線。始点色=終点色
draw_line_width_colour(30, 60, 90, 60, 3, c_red, c_red);
//グラデーション直線。始点色!=終点色
draw_line_width_colour(30, 90, 90, 90, 3, c_red, c_blue);
矢印の描画
//矢印の描画:(始点X,始点Y,終点X,終点Y,矢印頭のサイズ)
draw_arrow(30, 30, 90, 30, 10);
円の描画
//円の描画:(始点X,始点Y,円の半径,中心色,円周色,t:輪郭のみ/f:塗りつぶし)
//輪郭のみの描画。(中心色の引数は無視される)
draw_circle_colour(45, 130, 15, c_red, c_red, true);
//塗りつぶしの描画。中心色=円周色
draw_circle_colour(45, 180, 15, c_red, c_red, false);
//グラデーション描画。中心色!=円周色
draw_circle_colour(45, 230, 15, c_red, c_white, false);
楕円の描画
//楕円の描画:(始点X,始点Y,終点X,終点Y,円の半径,中心色,円周色,t:輪郭のみ/f:塗りつぶし)
//輪郭のみの描画。(中心色の引数は無視される)
draw_ellipse_colour(30, 280, 100, 310, c_red, c_red, true);
//塗りつぶしの描画。中心色=円周色
draw_ellipse_colour(30, 330, 100, 360, c_red, c_red, false);
//グラデーション描画。中心色!=円周色
draw_ellipse_colour(30, 380, 100, 410, c_red, c_white, false);
矩形の描画
////矩形の描画:(始点X,始点Y,終点X,終点Y,左上の色,右上の色,右下の色,左下の色,t:輪郭のみ/f:塗りつぶし)
//輪郭のみの描画。
draw_rectangle_colour(110, 110, 170, 140, c_red, c_white, c_red, c_white, true);
//塗りつぶしの描画。中心色=外周色
draw_rectangle_colour(110, 160, 170, 190, c_red, c_red, c_red, c_red, false);
//グラデーション描画。中心色!=外周色
draw_rectangle_colour(110, 210, 170, 240, c_red, c_white, c_red, c_white, false);
応用:中心に向かってグラデーションする直線
//応用:中心に向かってグラデーションする直線
draw_rectangle_colour(110, 270, 170, 270, c_red, c_white, c_red, c_white, false);
丸みを帯びた矩形の描画
////丸みを帯びた矩形の描画:(始点X,始点Y,終点X,終点Y,中心色,外周色,t:輪郭のみ/f:塗りつぶし)
//輪郭のみの描画。(中心色の引数は無視される)
draw_roundrect_colour(110, 320, 170, 350, c_red, c_red, true);
//塗りつぶしの描画。中心色=外周色
draw_roundrect_colour(110, 370, 170, 400, c_red, c_red, false);
//グラデーション描画。中心色!=外周色
draw_roundrect_colour(110, 420, 170, 450, c_red, c_white, false);
丸みを帯びた矩形の描画-丸みの調整
//丸みを帯びた矩形の描画-丸みの調整:(始点X,始点Y,終点X,終点Y,角のX軸半径,角のY軸半径,中心色,外周色,t:輪郭のみ/f:塗りつぶし)
//輪郭のみの描画。(中心色の引数は無視される)
draw_roundrect_colour_ext(110, 470, 170, 500, 30, 30, c_red, c_red, true);
//塗りつぶしの描画。中心色=外周色
draw_roundrect_colour_ext(110, 520, 170, 550, 30, 30, c_red, c_red, false);
//グラデーション描画。中心色!=外周色
draw_roundrect_colour_ext(110, 570, 170, 600, 30, 30, c_red, c_white, false);
三角形の描画
//三角形の描画:(頂点aのX,頂点aのY,頂点bのX,頂点bのY,頂点cのX,頂点cのY,頂点aの色,頂点bの色,頂点cの色,t:輪郭のみ/f:塗りつぶし)
//輪郭のみの描画。
draw_triangle_colour(225, 30, 200, 60, 250, 60, c_red, c_blue, c_yellow, true);
//塗りつぶしの描画。中心色=外周色
draw_triangle_colour(225, 80, 200, 110, 250, 110, c_red, c_red, c_red, false);
//グラデーション描画。中心色!=外周色
draw_triangle_colour(225, 130, 200, 160, 250, 160, c_red, c_blue, c_yellow, false);
コメント