首先,去下载纹理
然后,给shader设置代码
这里需要gd代码传递一个缩放比
贴图纹理支持旋转
shader_type canvas_item;
uniform float scale_ratio = 1.0;
vec2 rot(vec2 uv, float a){
return vec2(uv.x * cos(a) - uv.y * sin(a), uv.y * cos(a) + uv.x * sin(a));
}
void fragment(){
vec2 uv = UV/scale_ratio;
uv.y*=scale_ratio;
vec4 cc = texture(TEXTURE, rot(uv, 30));
COLOR = cc;
}
gd代码
获得屏幕的默认缩放比,然后根据这个缩放比进行比较,获得新缩放比需要的贴图缩放关系。 当窗体越大时,贴图缩放相对越小
extends TextureRect
var scaleRatio = 0;
func _ready():
var winSize = OS.window_size;
scaleRatio = winSize.x/winSize.y;
func _on_game_bg_resized():
var winSize = OS.window_size;
var newScaleRatio = winSize.x/winSize.y;
material.set_shader_param('scale_ratio', scaleRatio/newScaleRatio);
试试吧,当你拖拽缩放窗体大小是,桌布只是跟着扩展,而不是变形或缩放
转载于:https://www.jianshu.com/p/54bf513bdf62