Дмитрий Солов
Ученик
(156)
2 недели назад
function draw_player()
{
if (global.palettetexture = -4)
{
pal_swap_set(spr_pavel_pal,paletteselect,false)
draw_self()
pal_swap_reset()
}
else
{
// Применяем шейдер
shader_set(shd_replace_with_sprite);
// Получаем ID текстуры
var sprite_texture_id = sprite_get_texture(spr_paltexture, 0); // Получаем ID текстуры из спрайта
// Устанавливаем текстуру в шейдер
texture_set(sprite_texture_id, 0); // Устанавливаем текстуру для первого слота (0)
// Получаем униформы
var texture_uniform = shader_get_uniform(shd_replace_with_sprite, "altTexture");
var texture_scale = shader_get_uniform(shd_replace_with_sprite, "patternScale");
// Устанавливаем индекс текстуры в шейдер
shader_set_uniform_i(texture_uniform, 0); // 0 — это индекс текстуры, который мы установили с помощью texture_set()
// Устанавливаем масштаб узора
shader_set_uniform_f(texture_scale, 16);
// Рисуем объект
draw_self();
// Сброс шейдера
shader_reset();
}
}
но вместо желаемого результата я получаю
Entering main loop.
**********************************.
############################################################################################
ERROR in action number 1
of Draw Event for object obj_drawcontroller:
shader_set_uniform_i argument 2 incorrect type (ptr) expecting a Number (YYGR)
at gml_Script_draw_player (line 22) - shader_set_uniform_i(texture_uniform, sprite_texture); // Передаем текстуру
############################################################################################
gml_Script_draw_player (line 22)
gml_Object_obj_drawcontroller_Draw_0 (line 5) - draw_player()
Попробуй теперь
{
if (global.palettetexture = -4)
{
pal_swap_set(spr_pavel_pal,paletteselect,false)
draw_self()
pal_swap_reset()
}
else
{
// Применяем шейдер
shader_set(shd_replace_with_sprite);
// Получаем ID текстуры
var sprite_texture_id = sprite_get_texture(spr_paltexture, 0); // Получаем ID текстуры из спрайта
// Устанавливаем текстуру в шейдер
texture_set(sprite_texture_id, 0); // Устанавливаем текстуру для первого слота (0)
// Получаем униформы
var texture_uniform = shader_get_uniform(shd_replace_with_sprite, "altTexture");
var texture_scale = shader_get_uniform(shd_replace_with_sprite, "patternScale");
// Устанавливаем индекс текстуры в шейдер
shader_set_uniform_i(texture_uniform, 0); // 0 — это индекс текстуры, который мы установили с помощью texture_set()
// Устанавливаем масштаб узора
shader_set_uniform_f(texture_scale, 16);
// Рисуем объект
draw_self();
// Сброс шейдера
shader_reset();
}
}
но вместо желаемого результата я получаю
Entering main loop.
**********************************.
ERROR!!! :: ############################################################################################
ERROR in action number 1
of Draw Event for object obj_drawcontroller:
shader_set_uniform_i argument 2 incorrect type (ptr) expecting a Number (YYGR)
at gml_Script_draw_player (line 22) - shader_set_uniform_i(texture_uniform, sprite_texture); // Передаем текстуру
############################################################################################
gml_Script_draw_player (line 22)
gml_Object_obj_drawcontroller_Draw_0 (line 5) - draw_player()