Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 3, 2020 18:07:58

Kadony
Зарегистрирован: 2020-02-01
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите разобраться с функцией

PEHDOM
Спасибо шеф, нужен только один пиксель

Офлайн

#2 Фев. 3, 2020 18:16:18

Kadony
Зарегистрирован: 2020-02-01
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите разобраться с функцией

http://rosettacode.org/wiki/Color_of_a_screen_pixel#Python - вот ссылка откуда я взял вот тот код , сверху
Всё я разобрался как выводить, теперь нужно понять как внедрить сравнение цветов в IF

Отредактировано Kadony (Фев. 3, 2020 18:34:21)

Офлайн

#3 Фев. 3, 2020 20:14:04

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Помогите разобраться с функцией

Kadony
теперь нужно понять как внедрить сравнение цветов в IF
ну оно же вам возвращает цвет в виде (R,G,B), просто берете и сравниваете
 >>> (10,10,10) == (10,10,10)
True
>>> (10,10,10) == (255, 255, 255)
False
>>>



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#4 Фев. 4, 2020 23:46:33

Kadony
Зарегистрирован: 2020-02-01
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите разобраться с функцией

PEHDOM
Обьясни пожалуйста, Я в ахк пишу
PixelGetColor, color , 545, 544, alt - колор - это имя переменной где будет храниться значение цвета
PixelGetColor, color, 1242, 420, alt

if ( color = 0xFFFFFF )

то что то делается

Вот что я написал на питоне , почему не получается?
 def get_pixel_colour(i_x = 500, i_y = 500):
	import win32gui
	i_desktop_window_id = win32gui.GetDesktopWindow()
	i_desktop_window_dc = win32gui.GetWindowDC(i_desktop_window_id)
	long_colour = win32gui.GetPixel(i_desktop_window_dc, i_x, i_y)
	i_colour = int(long_colour)
	return (i_colour & 0xff), ((i_colour >> 8) & 0xff), ((i_colour >> 16) & 0xff)
 	
print (get_pixel_colour())
if  get_pixel_colour == (30, 30, 30)
	print("jesus")
Ошибка invalid syntax в 11 строке , тоесть в условии if

Офлайн

#5 Фев. 5, 2020 13:22:20

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Помогите разобраться с функцией

Kadony
почему не получается?
скобочек не хватает, и двоеточия
 if  get_pixel_colour() == (30, 30, 30):

ЗЫ да и импорт таки лучше вынести из функции и поместить в начало скрипта, несмотря на то что“умный” пайтон позволяет производить импорт в любом месте и не импортирует модуль если он уже импортирован, так правильнее с точки зрения читабельности кода.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Фев. 5, 2020 13:23:33)

Офлайн

#6 Фев. 5, 2020 17:58:44

Kadony
Зарегистрирован: 2020-02-01
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите разобраться с функцией

PEHDOM
Спасибо, вы серьезно ускорили мое обучение

Офлайн

#7 Фев. 21, 2020 19:12:52

justicek
Зарегистрирован: 2020-02-19
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите разобраться с функцией

вот я починил как мне теперь указать координаты для того чтобы с определённой точки получать цвет пикселя

Офлайн

#8 Фев. 23, 2020 13:28:31

Kadony
Зарегистрирован: 2020-02-01
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите разобраться с функцией

justicek
вот я починил как мне теперь указать координаты для того чтобы с определённой точки получать цвет пикселя
 import PIL.ImageGrab
import pyautogui
import time
def get_pixel_colour(i_x = 1051, i_y = 903):
	return PIL.ImageGrab.grab().load()[i_x, i_y]
def inventory(i_x = 1575, i_y = 439):
	return PIL.ImageGrab.grab().load()[i_x, i_y]
def check(i_x = 784, i_y = 1069):
	return PIL.ImageGrab.grab().load()[i_x, i_y]
def fishing():
    x = 1
    while x < 2:
	    pyautogui.click(x=550, y=540, clicks=4)
	    time.sleep(2)
	    pyautogui.press('i')
	    if inventory() == (262, 95, 28):
	    	x += 1
	    else:
	    	time.sleep(2)
	    	pyautogui.click(x=550, y=414, interval=0.5)
	    	pyautogui.click(x=550, y=532, interval=0.5)
	    	while check() != (78, 255, 0):
	    		if get_pixel_colour() == (255, 0, 0):
	    			time.sleep(0.5)
		    		pyautogui.click(x=1053, y=903, clicks=3200)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version