main
Сергей Ванюшкин 2023-10-31 14:57:54 +03:00
parent 305814989a
commit ff7b8cecd2
1 changed files with 47 additions and 18 deletions

View File

@ -1,13 +1,27 @@
import os import os
import subprocess
import time import time
from tkinter import * from subprocess import Popen
from tkinter import (
BOTH,
LEFT,
RAISED,
RIGHT,
TOP,
Button,
Frame,
Label,
PhotoImage,
StringVar,
Tk,
mainloop,
)
class ClickerGame: class ClickerGame:
""" Перед запуском проверьте и исправьте место установки AHK """Перед запуском проверьте и исправьте место установки AHK
Св-во класса AHK_PATH должно содержать полный путь до запускаемого файла Св-во класса AHK_PATH должно содержать полный путь до запускаемого файла
""" """
AHK_PATH = r"C:\Users\pi3c\AppData\Local\Programs\AutoHotkey\UX\AutoHotkeyUX.exe" AHK_PATH = r"C:\Users\pi3c\AppData\Local\Programs\AutoHotkey\UX\AutoHotkeyUX.exe"
def __init__(self): def __init__(self):
@ -20,15 +34,19 @@ class ClickerGame:
self.process = None self.process = None
self.ahk_flag = False self.ahk_flag = False
self.frame = Frame(self.__root, relief=RAISED, borderwidth=5, bg='green') self.frame = Frame(self.__root, relief=RAISED, borderwidth=5, bg="green")
self.frame.pack(fill=BOTH, expand=True, padx=5, pady=5) self.frame.pack(fill=BOTH, expand=True, padx=5, pady=5)
self.label = Label(self.frame, text="Clicker Game", font=("Arial", 25), bg='green') self.label = Label(
self.frame, text="Clicker Game", font=("Arial", 25), bg="green"
)
self.label.pack(side=TOP) self.label.pack(side=TOP)
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"Your score is: {self.score}")
self.label2 = Label(self.frame, textvariable=self.message, font=("Arial", 15), bg='green') self.label2 = Label(
self.frame, textvariable=self.message, font=("Arial", 15), bg="green"
)
self.label2.pack(side=TOP) self.label2.pack(side=TOP)
self.timer = 0 self.timer = 0
@ -36,20 +54,31 @@ class ClickerGame:
self.timer_message = StringVar() self.timer_message = StringVar()
self.timer_update() self.timer_update()
self.label3 = Label(self.frame, textvariable=self.timer_message, font=("Arial", 12), bg='green') self.label3 = Label(
self.frame,
textvariable=self.timer_message,
font=("Arial", 12),
bg="green",
)
self.label3.pack(side=LEFT) self.label3.pack(side=LEFT)
self.img = PhotoImage(file=os.path.join(os.curdir, 'img.png')) self.img = PhotoImage(file=os.path.join(os.curdir, "img.png"))
self.clicker = Button(self.frame, text="clickme", image=self.img, command=self.increment) self.clicker = Button(
self.clicker.place(relx=0.5, rely=0.5, anchor='center') self.frame, text="clickme", image=self.img, command=self.increment
)
self.clicker.place(relx=0.5, rely=0.5, anchor="center")
self.ahk_button = Button(self.__root, text="Manual run AHK", command=self.switcher_ahk) self.ahk_button = Button(
self.__root, text="Manual run 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="EXIT", 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.__root, text="Clicker RESET", command=self.clicker_reset) self.ahk_button = Button(
self.__root, text="Clicker RESET", 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()
@ -72,8 +101,8 @@ class ClickerGame:
if keys is not None: if keys is not None:
"""Данный блок необходим, чтоб среда не ругалась на неиспользуемый """Данный блок необходим, чтоб среда не ругалась на неиспользуемый
аргумент keys. При связывании горячей клавиши методом bind, сюда аргумент keys. При связывании горячей клавиши методом bind, сюда
передается инфо о нажатой комбинации. Тут она мне не нужна, поэтому ставим тупо передается инфо о нажатой комбинации. Тут она мне не нужна, поэтому
заглушку""" ставим тупо заглушку"""
pass pass
self.score += 1 self.score += 1
@ -88,13 +117,13 @@ class ClickerGame:
else: else:
print("run clicker") print("run clicker")
self.ahk_flag = True self.ahk_flag = True
self.process = subprocess.Popen( self.process = Popen([self.AHK_PATH, "clicker.ahk"])
[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(f"Elapsed time:\n{self.timer // 60}min. {self.timer % 60} sec.") self.timer_message.set(
f"Elapsed time:\n{self.timer // 60}min. {self.timer % 60} sec."
)
self.__root.after(1000, self.timer_update) self.__root.after(1000, self.timer_update)
def clicker_reset(self): def clicker_reset(self):