test2
parent
2ed791378c
commit
fbc48c2f25
|
@ -1,5 +1,6 @@
|
||||||
import os
|
import os
|
||||||
import time
|
import time
|
||||||
|
from pathlib import Path
|
||||||
from subprocess import Popen
|
from subprocess import Popen
|
||||||
from tkinter import (
|
from tkinter import (
|
||||||
BOTH,
|
BOTH,
|
||||||
|
@ -16,7 +17,6 @@ from tkinter import (
|
||||||
mainloop,
|
mainloop,
|
||||||
messagebox,
|
messagebox,
|
||||||
)
|
)
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
|
|
||||||
class ClickerGame:
|
class ClickerGame:
|
||||||
|
@ -24,23 +24,36 @@ class ClickerGame:
|
||||||
Св-во класса AHK_PATH должно содержать полный путь до запускаемого файла,
|
Св-во класса AHK_PATH должно содержать полный путь до запускаемого файла,
|
||||||
если приложение установлено не в папки по умолчанию
|
если приложение установлено не в папки по умолчанию
|
||||||
"""
|
"""
|
||||||
|
|
||||||
AHK_PATH = "<Введите сюда путь до приложения AutoHotKey>"
|
AHK_PATH = "<Введите сюда путь до приложения AutoHotKey>"
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
# Поиск места установки AutoHotKey
|
# Поиск места установки AutoHotKey
|
||||||
self.is_ahk_path_set = False
|
self.is_ahk_path_set = False
|
||||||
if os.path.isfile(app_exe := os.path.join(
|
if os.path.isfile(
|
||||||
Path.home(), "AppData", "Local", "Programs", "AutoHotkey", "UX", "AutoHotkeyUX.exe"
|
app_exe := os.path.join(
|
||||||
)):
|
Path.home(),
|
||||||
|
"AppData",
|
||||||
|
"Local",
|
||||||
|
"Programs",
|
||||||
|
"AutoHotkey",
|
||||||
|
"UX",
|
||||||
|
"AutoHotkeyUX.exe",
|
||||||
|
)
|
||||||
|
):
|
||||||
self.AHK_PATH = app_exe
|
self.AHK_PATH = app_exe
|
||||||
self.is_ahk_path_set = True
|
self.is_ahk_path_set = True
|
||||||
elif os.path.isfile(app_exe := os.path.join(r'c:\\', 'Program Files', "AutoHotkey", "UX", "AutoHotkeyUX.exe")):
|
elif os.path.isfile(
|
||||||
|
app_exe := os.path.join(
|
||||||
|
r"c:\\", "Program Files", "AutoHotkey", "UX", "AutoHotkeyUX.exe"
|
||||||
|
)
|
||||||
|
):
|
||||||
self.AHK_PATH = app_exe
|
self.AHK_PATH = app_exe
|
||||||
self.is_ahk_path_set = True
|
self.is_ahk_path_set = True
|
||||||
else:
|
else:
|
||||||
messagebox.showerror(
|
messagebox.showerror(
|
||||||
"Can't find AutoHotKey",
|
"Can't find AutoHotKey",
|
||||||
"""Set AHK_PATH in app.py Until then, the clicker will not work""",
|
"""Пропишите AHK_PATH До этого, автокликер работать не будет""",
|
||||||
)
|
)
|
||||||
|
|
||||||
self.__root = Tk()
|
self.__root = Tk()
|
||||||
|
@ -61,7 +74,7 @@ class ClickerGame:
|
||||||
|
|
||||||
self.score = 0
|
self.score = 0
|
||||||
self.message = StringVar()
|
self.message = StringVar()
|
||||||
self.message.set(f"Your score is: {self.score}")
|
self.message.set(f"Ваш счет: {self.score}")
|
||||||
self.label2 = Label(
|
self.label2 = Label(
|
||||||
self.frame, textvariable=self.message, font=("Arial", 15), bg="green"
|
self.frame, textvariable=self.message, font=("Arial", 15), bg="green"
|
||||||
)
|
)
|
||||||
|
@ -84,26 +97,32 @@ class ClickerGame:
|
||||||
self.clicker.place(relx=0.5, rely=0.5, anchor="center")
|
self.clicker.place(relx=0.5, rely=0.5, anchor="center")
|
||||||
|
|
||||||
self.ahk_button = Button(
|
self.ahk_button = Button(
|
||||||
self.__root, text="Manual run AHK", command=self.switcher_ahk
|
self.__root, text="Запустить AHK", command=self.switcher_ahk
|
||||||
)
|
)
|
||||||
self.ahk_button.pack(side=LEFT, padx=10, pady=10)
|
self.ahk_button.pack(side=LEFT, padx=10, pady=10)
|
||||||
|
|
||||||
self.close_button = Button(self.__root, text="EXIT", command=self.quit)
|
self.close_button = Button(self.__root, text="Выход", command=self.quit)
|
||||||
self.close_button.pack(side=RIGHT, padx=10, pady=10)
|
self.close_button.pack(side=RIGHT, padx=10, pady=10)
|
||||||
|
|
||||||
self.ahk_button = Button(
|
self.ahk_button = Button(
|
||||||
self.__root, text="Clicker RESET", command=self.clicker_reset
|
self.__root, text="Сброс игры", command=self.clicker_reset
|
||||||
)
|
)
|
||||||
self.ahk_button.pack(side=RIGHT, padx=10, pady=10)
|
self.ahk_button.pack(side=RIGHT, padx=10, pady=10)
|
||||||
|
|
||||||
mainloop()
|
mainloop()
|
||||||
|
|
||||||
def __del__(self):
|
def __del__(self):
|
||||||
"""Завершаем поток АНК ели он запущен при выходе"""
|
"""Завершаем поток АНК ели он запущен при
|
||||||
|
уничтожении игры.
|
||||||
|
Можно было и в метод quit разместить, но
|
||||||
|
правильнее добавить деструктор обекта"""
|
||||||
if self.ahk_flag:
|
if self.ahk_flag:
|
||||||
self.switcher_ahk()
|
self.switcher_ahk()
|
||||||
|
|
||||||
def key(self, event):
|
def key(self, event):
|
||||||
|
"""Отлавливаем все event в игре, в т.ч и
|
||||||
|
нажатия клавиш клавиатуры. Обрабатываем
|
||||||
|
интересующие нас"""
|
||||||
if event.keycode == 97:
|
if event.keycode == 97:
|
||||||
# Переключаем статус АНК по numpad1
|
# Переключаем статус АНК по numpad1
|
||||||
self.switcher_ahk()
|
self.switcher_ahk()
|
||||||
|
@ -121,29 +140,28 @@ class ClickerGame:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
self.score += 1
|
self.score += 1
|
||||||
self.message.set(f"Your score is: {self.score}")
|
self.message.set(f"Ваш счет: {self.score}")
|
||||||
|
|
||||||
def switcher_ahk(self):
|
def switcher_ahk(self):
|
||||||
"""Переключаем состояние скрипта кликера, если путь к нему установлен"""
|
"""Переключаем состояние кликера(вкл/выкл),
|
||||||
|
если путь к нему установлен или выводим
|
||||||
|
сообщение с предупреждением"""
|
||||||
if not self.is_ahk_path_set:
|
if not self.is_ahk_path_set:
|
||||||
messagebox.showerror(
|
messagebox.showerror(
|
||||||
"Can't find AutoHotKey",
|
"Can't find AutoHotKey",
|
||||||
"""Set AHK_PATH in app.py Until then, the clicker will not work""",
|
"""Не могу запустить автокликер. Не указан путь к AutoHotKey""",
|
||||||
)
|
)
|
||||||
elif self.ahk_flag:
|
elif self.ahk_flag:
|
||||||
print("Stop clicker")
|
|
||||||
self.ahk_flag = False
|
self.ahk_flag = False
|
||||||
self.process.kill()
|
self.process.kill()
|
||||||
|
|
||||||
else:
|
else:
|
||||||
print("run clicker")
|
|
||||||
self.ahk_flag = True
|
self.ahk_flag = True
|
||||||
self.process = Popen([self.AHK_PATH, "clicker.ahk"])
|
self.process = Popen([self.AHK_PATH, "clicker.ahk"])
|
||||||
|
|
||||||
def timer_update(self):
|
def timer_update(self):
|
||||||
self.timer = int(time.time() - self.start_time)
|
self.timer = int(time.time() - self.start_time)
|
||||||
self.timer_message.set(
|
self.timer_message.set(
|
||||||
f"Elapsed time:\n{self.timer // 60}min. {self.timer % 60} sec."
|
f"Время игры:\n{self.timer // 60}мин. {self.timer % 60} сек."
|
||||||
)
|
)
|
||||||
self.__root.after(1000, self.timer_update)
|
self.__root.after(1000, self.timer_update)
|
||||||
|
|
||||||
|
@ -151,7 +169,7 @@ class ClickerGame:
|
||||||
if self.ahk_flag:
|
if self.ahk_flag:
|
||||||
self.switcher_ahk()
|
self.switcher_ahk()
|
||||||
self.score = 0
|
self.score = 0
|
||||||
self.message.set(f"Your score is: {self.score}")
|
self.message.set(f"Ваш счет: {self.score}")
|
||||||
self.timer = 0
|
self.timer = 0
|
||||||
self.start_time = time.time()
|
self.start_time = time.time()
|
||||||
self.timer_update()
|
self.timer_update()
|
||||||
|
@ -160,4 +178,5 @@ class ClickerGame:
|
||||||
self.__root.destroy()
|
self.__root.destroy()
|
||||||
|
|
||||||
|
|
||||||
game = ClickerGame()
|
if __name__ == "__main__":
|
||||||
|
game = ClickerGame()
|
||||||
|
|
Loading…
Reference in New Issue