リファレンス URL:texture_set_repeat(repeat);
戻り値無し(Returns: N/A) 反復型テクスチャ(ラップ=wrap)の利用をオン・オフで切り替えます。 デフォルトではオフとなっている設定で、この関数から行う設定の変更はスプライトおよび背景をテクスチャとして利用する際の表示に影響を与えます。オンの場合、テクスチャが継ぎ目なくラップされるようになります。 2D プリミティヴを利用する際に、この設定をオンにすることで UVスクロールを実現できます。参考URL(2dgames.jp):GameMakerでUVスクロールする方法
ただしテクスチャサイズの設定を間違えると隙間が空いてしまうため上手にラップされません。テクスチャは正方形で有る必要はなく長方形でも大丈夫ですが、テクスチャとして扱うことのできる最大サイズから上手にラップできるサイズを割り出していく方法が確実。 普通に正方形で利用することを考えたほうが効率的ではあります。 グローバルゲームセッティングからテクスチャページのサイズを見ます。デフォルトだと 2048x2048なので、これを2で割っていけばラップで使える安全なテクスチャサイズが求められます。
-
1024x1024
1024x512
512x512
512x256
256x256
256x128
128x128
128x64
64x32
32x32
32x16
16x16
..
.
以下略
/* このソースコードは http://2dgames.jp/2014/02/07/uv/ の物を改変しました テクスチャグループはUVスクロール用に新規作成してそちらに格納すること */ self.timer--; var bk = sky_background;/* background image */ background_index[0] = bk; draw_set_colour(-1);/* -1 or c_white */ texture_set_repeat(true);/* repeat ON */ var tex = background_get_texture(bk); var v1 = (timer%room_speed)/room_speed;/* 0 ~ 1 */ var v2 = v1+1;/* 1 ~ 2 */ /* Begin Statement */ draw_primitive_begin_texture(pr_trianglefan, tex); var a,b; a = background_width[0] *2;/* 128 px */ b = background_height[0]*2;/* 128 px */ draw_vertex_texture(0, 0, 0, v1);/* vert 1 */ draw_vertex_texture(a, 0, 1, v1);/* vert 2 */ draw_vertex_texture(a, b, 1, v2);/* vert 3 */ draw_vertex_texture(0, b, 0, v2);/* vert 4 */ /* End Statement */ draw_primitive_end(); texture_set_repeat(false);/* repeat OFF */ draw_text(100,100,v1);/* For Debug */
Functions/texture_set_repeat