リファレンス URL:surface_set_target(index);
「ブール型 (Boolean) 」として戻り値。 指定された Surface ID で draw 関数のターゲットを切り替える。 Surfaces が事前に作成されている必要があり、無事にターゲットを切り替えることができたら関数は戻り値として true を返す。失敗した場合は false 。 本来ブロックステートメント的に用いる関数で、ターゲットを切り替えたらまたターゲットを元に戻す処理( surface_reset_target )とセットで利用する。surface_set_target(surf1); draw_text(32, 32, "Surface1"); surface_reset_target();複数のターゲットを扱う場合はターゲット毎にセット/リセットを組み合わせる。以下はダメな書き方。
surface_set_target(surf1); draw_text(32, 32, "surface1"); surface_set_target(surf2); draw_text(32, 64, "surface2"); surface_reset_target(); //ターゲットを二つセットして、リセットは一度しか行われていない正しい使い方はターゲットを切り替える毎にセットとリセットを行う。
surface_set_target(surf1); draw_text(32, 32, "surface1"); surface_reset_target(); surface_set_target(surf2); draw_text(32, 64, "surface2"); surface_reset_target();上記コードは以下のように書いても良い。
surface_set_target(surf1); draw_text(32, 32, "surface1"); surface_set_target(surf2); draw_text(32, 64, "surface2"); surface_reset_target(); surface_reset_target();スクリプト・サンプル
/* このコードは Surface というより views の仕組みが分かっていないと 訳がわからないと思われるため、views の仕組みを知らない場合は まだ理解しなくてよい ※ views は負荷軽減のため、描画を交互に行うことができる ※ 本家のサンプルコード間違いがある 誤 if view_current = 0 正 if view_current == 0 */ if view_current == 0 { surface_set_target(surf); with (obj_Effect) { draw_self(); } surface_reset_target(); } else { draw_surface(surf, 0, 0); }Functions/surface_set_target