Форум программистов, компьютерный форум CyberForum.ru

Программа работает только с одним разрешением экрана, как сделать чтобы она была универсальна - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Какой фигурой обозначаются в блок схеме http://www.cyberforum.ru/cpp-beginners/thread1172985.html
Какой фигурой обозначаются в блок схеме запись в файл/чтение из файла? к примеру: для fout.open("input.txt");? fout <<...;?
C++ Создание класса с указателем Всем привет :) Есть такая часть задания: Нужно создать класс АВТОМОБИЛЬ, который имеет марку (указатель на строку), цвет, объем двигателя, мощность. public class Automobile { public CarBrand Brand { get; set; } public Color Color { get; set; } public Double EngineVolume { get; set; } public Double EngineCapacity { get; set; } http://www.cyberforum.ru/cpp-beginners/thread1172975.html
Как считать символ два раза C++
char ch = ' '; cin.get(ch); нужно первый раз считать символ функцией-членом .get() которая не пропускает разделители, для того, что бы выловить переход на новую строку функцией isspace(ch); второй раз считать cin>>ch; что бы разделители не учитывались, и программа работала корректно!\ Или, подскажите такую функцию, что бы ловила только нажатие Enter, что бы , если это не...
C++ Клеточные автоматы для треугольной решетки
Пожалуйста подскажите как это реализовать? я так понимаю, что это что-то на подобии игры "жизнь".
C++ Определение конструкторов, деструкторов в классе "Автомобиль" http://www.cyberforum.ru/cpp-beginners/thread1172947.html
Здравствуйте уважаемые форумчане! У меня есть класс Автомобиль public class Automobile { public CarBrand Brand { get; set; } public Color Color { get; set; } public Double EngineVolume { get; set; } public Double EngineCapacity { get; set; } public Automobile()
C++ Определить количество членов последовательности, имеющих четные порядковые номера и являющихся нечетными Условие: Даны натуральные числа n, A1, A2,....An.Определить количество членов Ak последовптельности A1,...An: имеющих четные порядковые номера и являющихся нечетными числами Написал программу,а преподаватель говорит,что там ошибка,но не говорит где! помогите исправить,пожалуйста #incluse <stdio.h> int main() { подробнее

Показать сообщение отдельно
Nalik
 Аватар для Nalik
44 / 25 / 9
Регистрация: 30.11.2012
Сообщений: 582
12.05.2014, 10:50  [ТС]     Программа работает только с одним разрешением экрана, как сделать чтобы она была универсальна
Вот например. В вызванных функциях так же идут обращения к координатам, но весь код заточен под разрешения экрана винды 1366х768 и разрешение игры 1024х768.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
//РЕЖИМ 2: ФАРМ НА МЕСТЕ
 
void mode2 (HWND Handle_ArcheAge)
{
    //int i;
    cout << "\nРежим 2: фарм на месте\n";
    time_t Time= time(NULL);    //счетчик времени
    while(1)
    //{
        //cout <<"Кидаю баффы\n";
        //F1 (Handle_ArcheAge);
        //altu (Handle_ArcheAge);
        //send9 (Handle_ArcheAge);
        //for (i=0;i<10;i++)
        {
            //в курсоре моб (красный) - предположительно маленький, если большой, то бить будет не до конца
            COLORREF minLimit = RGB(134,29,29); //диапазон минимального цвета
            COLORREF maxLimit = RGB(180,70,70); //диапазон максимального цвета
 
            HDC hdc=GetDC(Handle_ArcheAge);
            COLORREF  d = GetPixel (hdc, 389-3, 63-25); // координаты определения пикселя
            ReleaseDC(Handle_ArcheAge,hdc);
            if(GetRValue(d) >= GetRValue(minLimit) && GetRValue(d) <= GetRValue(maxLimit) &&
            GetGValue(d) >= GetGValue(minLimit) && GetGValue(d) <= GetGValue(maxLimit) &&
            GetBValue(d) >= GetBValue(minLimit) && GetBValue(d) <= GetBValue(maxLimit))
            {   
                kritHP (Handle_ArcheAge); //критическое состояние, нажимаю Z
                health80lutnya (Handle_ArcheAge); //
                mana80fleyta (Handle_ArcheAge);
                cout <<" >> Атакую..\n";
                Sleep(1000);
                send1 (Handle_ArcheAge); //клавиша 1
                send2 (Handle_ArcheAge); //клавиша 2
                send3 (Handle_ArcheAge); //клавиша 3
                send4 (Handle_ArcheAge); //клавиша 4
                send5 (Handle_ArcheAge); //клавиша 5
                send6 (Handle_ArcheAge); //клавиша 6
                send7 (Handle_ArcheAge); //клавиша 7
                send8 (Handle_ArcheAge); //клавиша 8
                F (Handle_ArcheAge); //поднять предмет
            }
            else //в курсоре нет красного цвета (нету моба)
            {
                //делаем проверку есть ли в курсоре вообще моб (может быть большим или мертвым) (коричневый)
                HDC hdc=GetDC(Handle_ArcheAge);
                COLORREF  c = GetPixel (hdc, 633-3, 61-25); // координаты определения пикселя
                ReleaseDC(Handle_ArcheAge,hdc);
                if (Handle_ArcheAge, c ==RGB(55,42,17)) //RGB коды цветов
                {
                    //делаем проверку большой ли это моб (красный)
                    COLORREF minLimit = RGB(134,29,29); //диапазон минимального цвета
                    COLORREF maxLimit = RGB(180,70,70); //диапазон максимального цвета
 
                    HDC hdc=GetDC(Handle_ArcheAge);
                    COLORREF  d = GetPixel (hdc, 333-3, 63-25); // координаты определения пикселя
                    ReleaseDC(Handle_ArcheAge,hdc);
                    if(GetRValue(d) >= GetRValue(minLimit) && GetRValue(d) <= GetRValue(maxLimit) &&
                    GetGValue(d) >= GetGValue(minLimit) && GetGValue(d) <= GetGValue(maxLimit) &&
                    GetBValue(d) >= GetBValue(minLimit) && GetBValue(d) <= GetBValue(maxLimit))
                    {
                        kritHP (Handle_ArcheAge); //критическое состояние, нажимаю Z
                        health80lutnya (Handle_ArcheAge); //
                        mana80fleyta (Handle_ArcheAge);
                        agr (Handle_ArcheAge);
                        cout <<" >> Атакую..\n";
                        Sleep(1000);
                        send1 (Handle_ArcheAge); //клавиша 1
                        send2 (Handle_ArcheAge); //клавиша 2
                        send3 (Handle_ArcheAge); //клавиша 3
                        send4 (Handle_ArcheAge); //клавиша 4
                        send5 (Handle_ArcheAge); //клавиша 5
                        send6 (Handle_ArcheAge); //клавиша 6
                        send7 (Handle_ArcheAge); //клавиша 7
                        send8 (Handle_ArcheAge); //клавиша 8
                        F (Handle_ArcheAge); //поднять предмет
                    }
                    else //в курсоре есть коричневый цвет, но нет красного, моб полностью убит
                    {
                        cout <<"В КУРСОРЕ ЕСТЬ КОРИЧНЕВЫЙ ЦВЕТ, НО НЕТ КРАСНОГО, МОБ полностью убит\n";
                        kritHP (Handle_ArcheAge);
                        health80lutnya (Handle_ArcheAge);
                        mana80fleyta (Handle_ArcheAge);
                        agr (Handle_ArcheAge);
                        send1(Handle_ArcheAge); //клавиша 1
                        F (Handle_ArcheAge); //поднять предмет
                        D (Handle_ArcheAge); //повернуться
                        K (Handle_ArcheAge); //открыть - закрыть окно умений
                    }
                }
                else //в курсоре нет красного и нет коричневого
                {
                    cout <<"В КУРСОРЕ НЕТУ КРАСНОГО И НЕТУ КОРИЧНЕВОГО\n";
                    kritHP (Handle_ArcheAge);
                    health80lutnya (Handle_ArcheAge);
                    mana80fleyta (Handle_ArcheAge);
                    send1(Handle_ArcheAge); //клавиша 1
                    F (Handle_ArcheAge); //поднять предмет
                    D (Handle_ArcheAge); //повернуться
                    K (Handle_ArcheAge); //открыть - закрыть окно умений
                }
            }
            //закончено выполнения цикла, не более не менее
            //проверяется R пиксель из RGB цвета и если он совпадает выполняются эти действия
            cout <<"ЗАКОНЧЕНО ВЫПОЛНЕНИЕ ЦИКЛА, ИДЁМ НА СЛЕДУЮЩУЮ СТУПЕНЬ\n";
            //if ( kritHP &&
            //health80lutnya  &&
            //mana80fleyta  )
            //{
            //  cout <<"в курсоре вообще никого нет, смотрим крит, жизни и ману и ищем цель\n";
            //send1(Handle_ArcheAge); //клавиша 1
            //F (Handle_ArcheAge); //поднять предмет
            //D (Handle_ArcheAge); //повернуться
            //K (Handle_ArcheAge); //открыть - закрыть окно умений
            //}
 
        }
    //}
}
Знакомый посоветовал использовать оффсеты окна. Определять с каким разрешением запущено окно и к моим координатам прибавлять или отнимать разницу, чтобы программа жала на нужные кнопочки
 
Текущее время: 19:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru