EVT[EVT_X] и EVT[EVT_Y] выводят системные сообщения

Pixilang по русски
Post Reply
steve.exe
Posts: 1
Joined: Mon Apr 06, 2020 2:43 pm

EVT[EVT_X] и EVT[EVT_Y] выводят системные сообщения

Post by steve.exe » Mon Apr 06, 2020 2:51 pm

Здрасте.
Хочу получить и вывести для себя X и Y мыши на экран. Но На экран в итоге выходят системные строки, типа "ru_RU", "C:/Users/User/AppData/Roaming", "?h?" и подобные. Появляются, правда, если кликать +- по центру. Если иначе, то вообще ничего не выводит. Что не так?
Pixilang v3.7b

Code: Select all

user_mouse = new (3, INT)
.....
while 1
{
    frame ()
    clear()
    while get_event() 
    {
        if EVT[EVT_KEY] == KEY_MOUSE_LEFT && EVT[EVT_TYPE] == EVT_MOUSEBUTTONDOWN
        {           
           user_mouse[0] = EVT[EVT_X]
	   user_mouse[1] = EVT[EVT_Y]
        } 
        if EVT[EVT_TYPE] == EVT_QUIT 
        { 
            halt
        }
    }
    print (user_mouse[0], 0, 20)
    print (user_mouse[1], 0, 30)
}

User avatar
NightRadio
Site Admin
Posts: 3461
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: EVT[EVT_X] и EVT[EVT_Y] выводят системные сообщения

Post by NightRadio » Tue Apr 07, 2020 5:37 pm

print() принимает на вход только строковые контейнеры.
Вот как это может выглядеть:

Code: Select all

//где-то в начале программы создаем пустую строку:
temp_str = ""
...
//заполняем строку данными в указанном формате:
sprintf( temp_str, "X=%d\nY=%d", user_mouse[0], user_mouse[1] )
//выводим строку на экран:
print( temp_str, 0, 20 )

Post Reply