Kibor |
Отправлено: 23 Ноября, 2014 - 03:27:11
|
Эксперт
Покинул форум
Сообщений всего: 8225
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Kibor пишет: textbkcolor (65535,8421376);
textout(0, 100, 100, "Строка 1", 0);
textbkcolor (8421376,8388608);
textout(1, 100, 120, "Строка 2. Через 2 сек изменится", 0);
textout(2, 100, 140, "Строка 3", 0);
textbkcolor (4194368,32768);
textout(3, 100, 160, "Строка 4", 0);
sleep(2000);
textbkcolor (255,4259584);
textout(1, 100, 120, "Строка 2 изменилась", 2);
sleep(1000);
int x, y;
textbkcolor (255,0);
a: getmouse(x, y);
textout(4, x+20, y+20, "X "+format (x)+" Y "+format (y)+" цвет "+format (getcolor(x, y)), 1);
sleep(10);
goto a; |
|
|
DimS |
Отправлено: 24 Ноября, 2014 - 04:04:49
|
Прохожий
Покинул форум
Сообщений всего: 5
Дата рег-ции: Окт. 2014
Репутация: 0
|
В моём представлении для вывода меняющейся информации в одно и тоже место на экране можно было бы один раз задать координаты и потом по номеру менять текст, использую функцию с другим количеством параметров (по-моему это называется перегруженная функция). Если надо передвинуть, то применять первый вариант функции. То есть в вашем примере:
textbkcolor (65535,8421376);
textout(0, 100, 100, "Строка 1", 0);
textbkcolor (8421376,8388608);
textout(1, 100, 120, "Строка 2. Через 2 сек изменится", 0);
textout(2, 100, 140, "Строка 3", 0);
textbkcolor (4194368,32768);
textout(3, 100, 160, "Строка 4", 0);
sleep(2000);
textbkcolor (255,4259584);
textout(1, "Строка 2 изменилась", 2);//здесь не надо писать снова те же координаты
sleep(1000);
int x, y;
textbkcolor (255,0);
a: getmouse(x, y);
textout(4, x+20, y+20, "X "+format (x)+" Y "+format (y)+" цвет "+format (getcolor(x, y)), 1);
sleep(10);
goto a;
Конечно, можно спокойно обойтись и без этого. Я просто уточнял функциональность). Вообще программа очень достойная и становится всё лучше).(Отредактировано автором: 24 Ноября, 2014 - 04:05:36) |
|
|
Kibor |
Отправлено: 24 Ноября, 2014 - 13:18:25
|
Эксперт
Покинул форум
Сообщений всего: 8225
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
можно самому сделать так
CODE:int x[100], y[100];
x[0]=100; y[0]=100; textout(0, x[0], y[0], "Строка 1", 0);
x[1]=200; y[1]=150; textout(1, x[1], y[1], "Строка 2", 0);
text(0, "текст новый");
text(1, "текст новый вторая");
pause (1000);
text(0, " бла бла");
text(1, "строка 2 бла бла");
pause (1000);
text(0, "опять новый");
text(1, "опять новый вторая");
pause (1000);
function text(int p, string s)
{
textout(p, x[p], y[p], s, 2);
} |
|
|
kunni |
Отправлено: 14 Апреля, 2015 - 12:10:35
|
Наблюдатель
Покинул форум
Сообщений всего: 37
Дата рег-ции: Дек. 2014
Репутация: 2
|
Здравствуйте! Есть вопрос по функции вывода текста.
Бот крутится на виртуалбоксе, т.е. ресурсы слегка ограничены (2 ГБ оперативки, 128 Мб видеопамять виртуалбокса).
В процессе работы бот выводит статистическую инфу на кран, параметр обновления во всех записях выставлен в НОЛЬ, т.е. textout(......, 0);
Всего текстовых строк около 40-50 одновременно на экране (есть длинные строки, но больше половины - вывод всего 5 символов)
При работе скрипта начинает подглючивать игра, не дорисовываются некоторые элементы игры. Если в начало скрипта вставить отключение вывода надписей, игра идет ровно.
Когда надписей было меньше, тоже глюков не наблюдалось, тогда и параметр обновления во всех записях выставлен в ДВА, т.е. textout(......, 2); , и при этом глюков не было.
Что посоветуете? Как выйти из ситуации?(Отредактировано автором: 14 Апреля, 2015 - 12:11:21) |
|
|
|