Author Topic: Кликер в Пара Па  (Read 3793 times)

0 Members and 1 Guest are viewing this topic.

LaaLaN

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Кликер в Пара Па
« on: March 08, 2016, 09:41:23 PM »
Народ помогите сделать. бьюсь второй день, голова все никак не осилит.

Суть такая.
Есть 2 задачи:
1. искать картинку на экране и в случае нахождения выполнять действие.
2. в области ИСКАТЬ (без перерыва до выполнения) пиксель.
3. повторять до выключения пользователем.

Есть 4 картинки: left, right, down, up.bmp .

как это все оформить?
это я понимаю вторая часть кода и то не очень подходит. так как работает только 1 круг. =(
Code: [Select]
getscreen
if_pixel_in(760, 579, 795, 579, 16760469)
   move($_return1,$_return2)
   keydown(32)
   waitms(50)
   keyup(32)
else
waitms(50)
end_if 

---
кто со мной впишется в разработку?
« Last Edit: March 08, 2016, 10:13:51 PM by LaaLaN »

tekton

  • Освоившийся
  • **
  • Posts: 29
    • View Profile
Re: Кликер в Пара Па
« Reply #1 on: March 08, 2016, 10:55:03 PM »
Code: [Select]

getscreen

IF_PICTURE_IN (10,20, 300, 300, "left.bmp") // left.bmp картинка которую ищем
      DEFINE ($pixcolor, XXXXXXXX)   
          mysub()   // Вызов подпрограммы поиска пикселя
             END_IF
//--------------------------------------------------------------------
IF_PICTURE_IN (10,20, 300, 300, "right.bmp")
 DEFINE ($pixcolor, XXXXXXXX)
     mysub()   
          END_IF
//--------------------------------------------------------------------
IF_PICTURE_IN (10,20, 300, 300, "down.bmp")
 DEFINE ($pixcolor, XXXXXXXX) 
     mysub()   
          END_IF
//--------------------------------------------------------------------
IF_PICTURE_IN (10,20, 300, 300, "up.bmp")
   DEFINE ($pixcolor, XXXXXXXX)
     mysub()   
         END_IF
//--------------------------------------------------------------------

// ### Подпрограмма поиска пикселя ###

sub(mysub)
     getscreen
        if_pixel_in(760, 579, 795, 579, $pixcolor) // проверяем цвет пикселя
   move($_return1,$_return2) // устанавливаем курсор в позицию
    keydown(32)
     waitms(50)
       keyup(32)
else
waitms(50)
   END_IF
 
     end_sub

Что то тип такого наверное.

LaaLaN

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Re: Кликер в Пара Па
« Reply #2 on: March 08, 2016, 11:34:28 PM »
Code: [Select]
getscreen
IF_PICTURE_IN (10,20, 300, 300, "left.bmp") // left.bmp картинка которую ищем
      DEFINE ($pixcolor, XXXXXXXX)   
          mysub()   // Вызов подпрограммы поиска пикселя
             END_IF
...

Что то тип такого наверное.

Давайте даже сойдемся на другом. забьем на пиксель. сосредоточимся на решении первой задачи, картинок и только.
вот такая мысль РАЗВЕРНИТЕ [spoiler] [/spoiler]
И еще. а зона картинки должна быть строгая? я хотел бы что бы программа искала её на экране. Это реально?
« Last Edit: March 08, 2016, 11:36:13 PM by LaaLaN »

tekton

  • Освоившийся
  • **
  • Posts: 29
    • View Profile
Re: Кликер в Пара Па
« Reply #3 on: March 09, 2016, 12:06:02 AM »
Пункт  "Есть картинка в зоне" не совсем понятен.
А если нет картинки вообще то что там?  Фон?  Однотонный?  Какого цвета?


Code: [Select]
GETSCREEN ([x1, y1, x2, y2])   //- делает снимок части экрана  x1, y1 верхняя левая точка,  x2, y2 нижняя правая точка

//--------------------------------------------------
// Проверка есть ли картинка
IF(PXL(10,10) <> xxxxxx) //Выбираем какой нибудь пиксел который перекрывают все картинки
                                        //Если цвет пиксела не равен цвету фона, то значит
// какая то картинка есть

//--------------------------------------------------
// Начинаем анализ что за картинка

//----------------------- Правая ? ---------------------------------------------
IF_PICTURE_IN (10,20, 300, 300, "right.bmp")
 
Действия
   
          END_IF
//----------------------- Левая ? ---------------------------------------------
IF_PICTURE_IN (10,20, 300, 300, "left.bmp")

Действия
       
  END_IF
//------------------------ В верх ? --------------------------------------------
IF_PICTURE_IN (10,20, 300, 300, "down.bmp")
 
Действия
 
         END_IF

//------------------------ В низ ? --------------------------------------------
IF_PICTURE_IN (10,20, 300, 300, "up.bmp")
   
Действия

         END_IF
//--------------------------------------------------
           END_IF

Код без комментов
[spoiler]
Code: [Select]
GETSCREEN ([x1, y1, x2, y2])
    IF(PXL(10,10) <> xxxxxx)
IF_PICTURE_IN (10,20, 300, 300, "right.bmp")
          Действия
             END_IF
IF_PICTURE_IN (10,20, 300, 300, "left.bmp")
          Действия
             END_IF   
IF_PICTURE_IN (10,20, 300, 300, "down.bmp")
         Действия
             END_IF
IF_PICTURE_IN (10,20, 300, 300, "up.bmp")
         Действия
            END_IF
                 END_IF
[/spoiler]

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Кликер в Пара Па
« Reply #4 on: March 09, 2016, 09:09:45 AM »
И еще. а зона картинки должна быть строгая? я хотел бы что бы программа искала её на экране. Это реально?

Поиск картинки на всем экране.
Code: (clickermann) [Select]
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 100)

LaaLaN

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Re: Кликер в Пара Па
« Reply #5 on: March 10, 2016, 06:10:12 AM »
Спасибо что взялись помочь разобраться, на выходных буду кроить , посмотри как будет работать. сейчас работа и поздно вечером домой.

LaaLaN

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Re: Кликер в Пара Па
« Reply #6 on: March 12, 2016, 11:33:17 AM »
Все прочитал, есть пару проблем в решении:
PXL (х,у) - мы не можем точно сказать где будет данный пиксель, так как он меняется всегда.
границы [381,529   1029,656.] цвет пикселя например 16777017 (или 1677217) тут все время все прыгает в цветах, очень не стабильная гамма. =(
картинка стрелок в соответствии направления. вот и хочу сделать кликера, который сам бы прожимал то что видит.