GameMaker 日本語掲示板

view_xport+=1で動かしたとき背景がおかしくなってしまいます / 8

9 コメント
views
17 フォロー
8
asa 2024/01/15 (月) 15:00:29 修正

画面をスクロールさせる(カメラを動かす)には、
view_portではなくcamera viewの位置を動かします。

// Stepイベント
viewx += 1;
camera_set_view_pos(view_camera[0], viewx, viewy);

こんな感じです。

playerが所定の位置まで行ったら操作受付を止めて自動スクロールするには例えば下記のようになります
ロジックは一例ですのでご自分のやり方で書いてください
(roomのカメラのObject Followingがセットされているとカメラを自前で制御できないので"No Object"にしてください)
playerオブジェクト

// Createイベント
view_x = 0;
view_y = 0;
state = "walk";
view_w = camera_get_view_width(view_camera[0]);

// Stepイベント
if (state == "walk")
{
	if (keyboard_check(vk_right)) x += 5;
	if (keyboard_check(vk_left)) x -= 5;
	
	camera_set_view_pos(view_camera[0], x-view_w/2, 0);
	
	if (x >= 500)
	{
		view_x = camera_get_view_x(view_camera[0]);
		state = "auto_scroll";
	}
}
else if (state == "auto_scroll")
{
	if (view_x < 400)
	{
		view_x++;
		camera_set_view_pos(view_camera[0], view_x, view_y);
	}
}
通報 ...