GameMaker 日本語掲示板

複数の画面全体効果をかけたい / 2

3 コメント
views
17 フォロー
2
名前なし 2023/01/31 (火) 21:55:34 修正 >> 1

サンプルが一つのオブジェクトで複数の効果だったので求めてたものとはちょっと違いましたがご教授いただきありがとうございました!
考え方を知れたのでうまく実装することができました。
surface_copyとか使わないんですね・・・。

複数オブジェクトでの実装方法を書いておきます。

Createイベント

isSurface = false;

objSurface1(レイヤーが一番下)のStepイベント

isSurface = (instance_exists(objSurface2) || instance_exists(objSurface3)); //レイヤーが下であるほど多くなる

objSurface3(レイヤーが一番上)のDrawGUIイベント

var sfc = application_surface;
if(instance_exists(objSurface1)) sfc = objSurface1._surf; //レイヤーが上であるほど多くなる
if(instance_exists(objSurface2)) sfc = objSurface2._surf; 
	
if (!surface_exists(_surf)){
	var w = surface_get_width(application_surface);
	var h = surface_get_height(application_surface);
	_surf= surface_create(w,h);
}
if(isSurface) surface_set_target(_surf);
	shader_set(shd_grayscale);
		draw_surface(sfc, 0, 0);
	shader_reset();
if(isSurface) surface_reset_target();
通報 ...