You are not logged in.
Pages: 1
Доброго времени суток Сразу к сути: Есть некий интерфейс (сплошная текстура) с кнопками (на текстуре). Задача: реализовать управление мышкой, т.е. врубить курсор посредством которого можно нажимать эти самые кнопки
1. Каким способом можно сделать курсор как в меню игры?
2. Как перехватить координаты курсора и место его нажатия?
Если можно пример Спасибо.
Offline
я это делал когда-то...к сожалению, исходников нет. но набросать могу))
код не проверял, да и опкодом 0AB1 пользуюсь впервые....полученное выходное значение будет флагом нажатости выведенной картинки.
для каждого нового активного элемента на экране надо вызывать эту функцию.
раньше делал без функции, просто вставлял проверки на коорды мыши после её отрисовки)))
координаты правой и нижней сторон экрана взяты наобум(не помню реальные)
var $mousex:float=320.0 $mousey:float=240.0 0@:float 1@:float $button1_flag:int end :load 0390: load_txd_dictionary 'HUDTXD' 038F: load_texture "CURSOR" as 1 038F: load_texture "BUTTON" as 2 while true wait 0 0A4A: store_joystick_X_offset_to 0@ Y_offset_to 1@ $mousex += 0@ $mousey += 1@ if $mousex<0.0 then $mousex=0.0 end if $mousey<0.0 then $mousey=0.0 end if $mousex<600.0 //screen right corner then $mousex=600.0 //screen right corner end if $mousey<400.0 //screen bottom corner then $mousey=400.0 //screen bottom corner end 03E3: set_texture_to_be_drawn_antialiased 1 038D: draw_texture 1 position $mousex $mousey size 32.0 32.0 RGBA 255 255 255 255 0AB1: call_scm_func @drawelement 14 2 100.0 100.0 32.0 32.0 45.0 255 255 255 255 255 0 0 120 'EASB' $button_flag 03F0: enable_text_draw 0 end :drawelement var 0@:int //tex number 1@:float //x 2@:float //y 3@:float //x scale 4@:float //y scale 5@:float //angle 6@:float //Red 7@:float //Green 8@:float //Blue 9@:float //Alpha 10@:float //mouseover Red 11@:float //mouseover Green 12@:float //mouseover Blue 13@:float //mouseover Alpha 14@:string //text 15@:int=0 //pressed flag end 3@/=2.0 4@/=2.0 1@ += 3@ 2@ += 4@ if and $mousex<1@ $mousey<2@ then 3@*=2.0 4@*=2.0 1@ -= 3@ 2@ -= 4@ if and $mousex>1@ $mousey>2@ then 6@=10@ 7@=11@ 8@=12@ 9@=13@ 3@/=2.0 4@/=2.0 1@ += 3@ 2@ += 4@ if 0AB0: key_pressed 1 then 15@=1 end end end 03E3: set_texture_to_be_drawn_antialiased 1 074B: draw_texture 0@ position 1@ 2@ scale 3@ 4@ angle 5@ color_RGBA 6@ 7@ 8@ 9@ 3@/=2.0 4@/=2.0 1@ += 3@ 2@ += 4@ 033E: set_draw_text_position 1@ 2@ GXT 14@ 0AB2: ret 1 15@
Last edited by 3Doomer (26-01-2010 20:11)
GIMS developer
Offline
Благодарю Попробую до нужного вида довести
Offline
Pages: 1