Posts: 63
Threads: 14
Joined: Oct 2020
(Apr-11-2021, 10:57 PM)Yoriz Wrote: Sorry but I read your previous post and I don't understand what it is you are trying to do 
THis:
http://forum.alienslegacy.com/download/f...&mode=view
then this:
http://forum.alienslegacy.com/download/f...&mode=view
then this
http://forum.alienslegacy.com/download/f...&mode=view
reload goes to the first
first screen automatically transitions to the second screen
This is the cosplay forum where I have been documenting trying to get this build off the ground:
http://forum.alienslegacy.com/viewtopic.php?f=3&t=19394
Posts: 63
Threads: 14
Joined: Oct 2020
And this is the latest progress I have made thus far:
import tkinter.ttk as ttk
import tkinter as tk
# sets ammo count to initial value of 500
INITIAL_COUNTER_VALUE = 500
# sets initial time at 100%
INITIAL_TIMER_VALUE = 33000
# sets initial gun terminal ID
#sets gun rate
RMMAX = 0
# sets initial temparature
TEMP_INITIAL = 30
# sets text string for ammo/temp/low ammo status button
STATUS = "OK"
# initial class declaration for main body of program
class TkApp(tk.Tk):
# these arguments initialize the class and how to form arguments within
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
# set screen options
self.geometry("640x400")
self.configure(bg='black')
self.title("Sentry Terminal")
# locally initialize ammo count down
self.counter = tk.IntVar()
self.counter.set(INITIAL_COUNTER_VALUE)
# locally sets the timer count down at 100%
self.timer = tk.IntVar()
self.timer.set(INITIAL_TIMER_VALUE)
# locally sets rmbar to 0%
self.rmcount = tk.IntVar()
self.rmcount.set(RMMAX)
# locally sets tempbar
self.temperature = tk.IntVar()
self.temperature.set(TEMP_INITIAL)
# locally sets text string for ammo status button
self.stat = tk.StringVar()
self.stat.set(STATUS)
# this arranges the grid row and column groupings.
tk.Grid.rowconfigure(self, 0, weight=1, uniform='c')
tk.Grid.rowconfigure(self, 1, weight=1, uniform='b')
tk.Grid.rowconfigure(self, 2, weight=1, uniform='b')
tk.Grid.rowconfigure(self, 3, weight=1, uniform='b')
tk.Grid.rowconfigure(self, 4, weight=1, uniform='b')
tk.Grid.rowconfigure(self, 5, weight=1, uniform='b')
tk.Grid.rowconfigure(self, 6, weight=1, uniform='b')
tk.Grid.rowconfigure(self, 7, weight=1, uniform='b')
tk.Grid.rowconfigure(self, 8, weight=1, uniform='b')
tk.Grid.columnconfigure(self, 0, weight=1, uniform='a')
tk.Grid.columnconfigure(self, 1, weight=1, uniform='a')
tk.Grid.columnconfigure(self, 2, weight=1, uniform='a')
tk.Grid.columnconfigure(self, 3, weight=1, uniform='a')
tk.Grid.columnconfigure(self, 4, weight=1, uniform='a')
tk.Grid.columnconfigure(self, 5, weight=1, uniform='a')
# these are the button and label declarations
rounds = tk.Label(self, justify=tk.CENTER, textvariable=self.counter)
rounds.grid(row=3, column=2, columnspan=1, sticky="EW")
label1 = tk.Label(self, textvariable=self.timer)
label1.grid(row=7, column=2, sticky="EW")
temp = tk.Button(self,justify=tk.CENTER,text="Temp",bg='black', fg='yellow', highlightbackground='yellow', highlightcolor='black',activebackground='yellow')
temp.grid(row=2,column=4,sticky="NSEW")
rm = tk.Button(self,justify=tk.CENTER,text="R(M)",bg='black', fg='yellow', highlightbackground='yellow', highlightcolor='black',activebackground='yellow')
rm.grid(row=2,column=5,sticky="NSEW")
# rounds rate bar
rmbar = ttk.Progressbar(self, orient="vertical", variable=self.rmcount)
rmbar.grid(row=3,column=5,rowspan=6, sticky="NS")
# temperature bar
tempbar = ttk.Progressbar(self, orient="vertical", variable=self.temperature)
tempbar.grid(row=3,column=4,rowspan=6,sticky="NS")
# declarative buttons
timestat = tk.Button(self,bg='black',state=tk.DISABLED, fg='yellow',disabledforeground='yellow',highlightbackground='yellow',borderwidth=2,justify=tk.CENTER,text="TIME AT 100% \n (msecs)")
timestat.grid(row=7,column=0,columnspan=2,sticky="NSEW")
roundsr = tk.Button(self,bg='black',state=tk.DISABLED, fg='yellow',disabledforeground='yellow',highlightbackground='yellow',borderwidth=2,justify=tk.CENTER,text="Rounds \n Remaining")
roundsr.grid(row=3,column=0,columnspan=2,sticky="NS")
# crit menu bar
crit = tk.Button(self,justify=tk.CENTER,textvariable=self.stat, bg='black', fg='yellow', highlightbackground='yellow', highlightcolor='black',activebackground='yellow')
crit.grid(row=5,column=0,columnspan=2,sticky="NSEW")
# static center header
headernew = tk.Button(self, bg='black',state=tk.DISABLED,justify=tk.CENTER, text="UA 571-C \n REMOTE SENTRY WEAPON SYSTEM")
headernew.grid(row=0,column=1,columnspan=4,rowspan=2,sticky="NSEW")
# displays gun id on top left and right of screen
gun_1 = tk.Label(self, borderwidth=7,bg='black',fg='yellow',disabledforeground='yellow',state=tk.DISABLED,text="kp")
gun_1.grid(row=0,column=0,rowspan=2,sticky="NS")
gun_2 = tk.Button(self, borderwidth=7,bg='black',fg='yellow',disabledforeground='yellow',state=tk.DISABLED,text="kp")
gun_2.grid(row=0,column=5,rowspan=2,sticky="NS")
# this quits by clicking a button labeled q
quit = tk.Button(self, bg='black', fg='yellow', text='q', command=self.quit)
quit.grid(row=8,column=0,sticky="SW")
# these are the attachments for input from keyboard into the application
# These are the button inputs from the original flash app that were used
# I added a q as well to quit and close window in case there was a need to close
self.bind("<KeyPress-f>", self.on_keypress_f)
self.bind("<KeyRelease-f>", self.on_keyrelease_f)
self.bind("<KeyPress-a>", self.on_keypress_a)
self.bind("<KeyPress-b>", self.on_keypress_b)
self.bind("<KeyPress-c>", self.on_keypress_c)
self.bind("<KeyPress-d>", self.on_keypress_d)
self.bind("<KeyPress-r>", self.on_keypress_r)
self.bind("<KeyPress-q>", self.on_keypress_q)
self.bind("<KeyPress-space>", self.on_keypress_space)
# this defines the fire ammo count down sequence and resets
def on_keypress_f(self, evet):
counter_value = self.counter.get()
counter_value = counter_value-1 or INITIAL_COUNTER_VALUE
self.counter.set(counter_value)
# this is logic to try and get ammo warnings
if counter_value == 490:
stat_value = "OUT"
else:
stat_value = "OK"
self.stat.set(stat_value)
# this sets the time at 100%
timer_value = self.timer.get()
timer_value = timer_value-66 or INITIAL_TIMER_VALUE
self.timer.set(timer_value)
# this sets the rmbar to 40%
rmcount_count = self.rmcount.get()
rmcount_count = 40
self.rmcount.set(rmcount_count)
# this sets the temperature
temperature_count = self.temperature.get()
temperature_count = temperature_count+1
self.temperature.set(temperature_count)
def on_keyrelease_f(self, evet):
#this adds logic to say rate is zero if not firing
rmcount_count = self.rmcount.get()
rmcount_count = 0
self.rmcount.set(rmcount_count)
# this adds logic to say if not firing cool down
temperature_count = self.temperature.get()
temperature_count = temperature_count-10
self.temperature.set(temperature_count)
# this sets the gun terminal identification
# this can also be expanded to do other things if you want to alter the script
def on_keypress_a(self, evet):
counter_value = self.counter.get()
counter_value = counter_value-1 or INITIAL_COUNTER_VALUE
self.counter.set(counter_value)
def on_keypress_b(self, evet):
counter_value = self.counter.get()
counter_value = counter_value-1 or INITIAL_COUNTER_VALUE
self.counter.set(counter_value)
def on_keypress_c(self, evet):
counter_value = self.counter.get()
counter_value = counter_value-1 or INITIAL_COUNTER_VALUE
self.counter.set(counter_value)
def on_keypress_d(self, evet):
counter_value = self.counter.get()
counter_value = counter_value-1 or INITIAL_COUNTER_VALUE
self.counter.set(counter_value)
def on_keypress_space(self, evet):
counter_value = self.counter.get()
counter_value = counter_value-1 or INITIAL_COUNTER_VALUE
self.counter.set(counter_value)
# this reloads the window, you have to click it to make it the active window again
def on_keypress_r(self, evet):
self.destroy()
self.__init__()
# this quits and closes the window by hitting a single key
def on_keypress_q(self, evet):
self.quit()
# this executes the main loop and tkinter self delcared class. It declares the function then runs it in the main loop.
tk_app = TkApp()
tk_app.mainloop()
Posts: 2,168
Threads: 35
Joined: Sep 2016
This may help you figure out what you are looking for.
A splash screen will show and close automatically after a delay, then the main window that has a button to open up a second window.
import tkinter as tk
class TkApp(tk.Tk):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.geometry('300x300')
tk.Label(self, text='MainFrame').pack()
tk.Button(self, text='SecondFrame', command=self.on_button).pack()
self.create_splashframe()
def create_splashframe(self):
splashframe = SplashFrame(self)
self.withdraw()
self.wait_window(splashframe)
self.deiconify()
def on_button(self):
secondframe = SecondFrame(self)
self.withdraw()
self.wait_window(secondframe)
self.deiconify()
class SplashFrame(tk.Toplevel):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
tk.Label(self, text='SplashFrame').pack()
self.geometry('200x200')
self.overrideredirect(True)
self.after(3000, self.destroy)
class SecondFrame(tk.Toplevel):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.geometry('300x300')
tk.Label(self, text='SecondFrame').pack()
tk.Button(self, text='Close', command=self.destroy).pack()
tk_app = TkApp()
tk_app.mainloop() Note this post is going off-topic, has the original question been resolved?
Posts: 63
Threads: 14
Joined: Oct 2020
Apologies. I will start a new thread on the next separate issue on this setup.
(Apr-12-2021, 06:03 PM)Yoriz Wrote: This may help you figure out what you are looking for.
A splash screen will show and close automatically after a delay, then the main window that has a button to open up a second window.
import tkinter as tk
class TkApp(tk.Tk):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.geometry('300x300')
tk.Label(self, text='MainFrame').pack()
tk.Button(self, text='SecondFrame', command=self.on_button).pack()
self.create_splashframe()
def create_splashframe(self):
splashframe = SplashFrame(self)
self.withdraw()
self.wait_window(splashframe)
self.deiconify()
def on_button(self):
secondframe = SecondFrame(self)
self.withdraw()
self.wait_window(secondframe)
self.deiconify()
class SplashFrame(tk.Toplevel):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
tk.Label(self, text='SplashFrame').pack()
self.geometry('200x200')
self.overrideredirect(True)
self.after(3000, self.destroy)
class SecondFrame(tk.Toplevel):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.geometry('300x300')
tk.Label(self, text='SecondFrame').pack()
tk.Button(self, text='Close', command=self.destroy).pack()
tk_app = TkApp()
tk_app.mainloop() Note this post is going off-topic, has the original question been resolved?
Posts: 63
Threads: 14
Joined: Oct 2020
I have some initial workings of the menu based on your bare frame work. So thanks for that, it helped, a lot. I also had to learn about more of tkinter to get things to display properly.
import tkinter as tk
from tkinter import *
#import PIL.ImageTk
#import image
#import PIL
#import PIL.Image
import tkinter.ttk as ttk
import datetime as dt
import time
import os
from tkinter import messagebox
#
# global variables will be declared here
# end global variables section
#
# This is the initial screen that loads and then disappears after 8 seconds
# I used 3 images to make the main deal. The issue was that pygame allowed for line draws
# tkinter only allows for drawing of boxes.
# should this change I will change from using images.
class SplashFrame(tk.Toplevel):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.geometry('640x400')
self.title("Iniitaling")
self.img = tk.PhotoImage(file='load5.png')
self.configure(background='black')
self.overrideredirect(True)
tk.Grid.rowconfigure(self, 0, weight=1, uniform='a')
tk.Grid.columnconfigure(self, 0, weight=1, uniform='a')
tk.Grid.rowconfigure(self, 1, weight=1, uniform='a')
tk.Grid.rowconfigure(self, 2, weight=1, uniform='a')
tk.Grid.columnconfigure(self, 1, weight=1, uniform='a')
tk.Grid.columnconfigure(self, 2, weight=1, uniform='a')
self.leftimage = PhotoImage(file='loadleft22.png')
left = ttk.Label(self, style="TLabel", image=self.leftimage)
left.grid(row=2, column=0, sticky="NSEW")
self.rightimage = PhotoImage(file='loadright3.png')
right = ttk.Label(self, style="TLabel", image=self.rightimage)
right.grid(row=2, column=2, sticky="NSEW")
btn = tk.Label(self, image=self.img)
btn.grid(row=0, rowspan=2, column=0, columnspan=3, sticky="NSEW")
styled = ttk.Style()
styled.theme_use('clam')
styled.configure("TLabel", background='black', darkcolor='black', bordercolor='black', relief='none', lightcolor='black', highlightcolor='black', foreground='black', shiftrelief=-5, highlightthickness=0, width=0, anchor="NSEW")
styled.configure("Horizontal.TProgressbar", foreground = 'black', background = 'yellow', bordercolor='black', darkcolor='black', throughcolor='black', lightcolor='black')
loadingbar = ttk.Progressbar(self, style="Horizontal.TProgressbar", orient="horizontal", length = 200, mode='indeterminate', maximum=100)
loadingbar.grid(row=2, column=1, sticky="NEW")
loadingbar.start([78])
self.overrideredirect(True)
# self.after has a timer in msecs. Just change this to your desired value. I have logic on loading bar set for 8 seconds so if you change that
# you will need to adjust the loadingbar.start number. Remember it is 200 units long and you divide that by the time in msecs to figure out how to divide up the movement
self.after(1000, self.destroy)
#
# End of splash screen defined class and related functions
#
# Begin select menu defined class and related functions
# This is the script's core window so more code will be present here than in other sections
#
# This is the next screen to load after the initial splash screen
class TkApp(tk.Tk):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.geometry('640x400')
self.title("Select Screen")
tk.Grid.rowconfigure(self, 0, weight=1, uniform='a')
tk.Grid.columnconfigure(self, 0, weight=1, uniform='a')
tk.Button(self, text='SecondFrame', command=self.on_button).grid(row=0, column=0, sticky="NSEW")
self.create_splashframe()
# These are the bind key definitions
self.bind("<KeyPress-a>", self.on_keypress_a)
self.bind("<KeyPress-b>", self.on_keypress_b)
self.bind("<KeyPress-c>", self.on_keypress_c)
self.bind("<KeyPress-d>", self.on_keypress_d)
self.bind("<KeyPress-r>", self.on_keypress_r)
self.bind("<KeyPress-q>", self.on_keypress_q)
self.bind("<KeyPress-space>", self.on_keypress_space)
self.bind("<KeyPress-k>", self.on_keypress_k)
# this appears to launch the initial window
def create_splashframe(self):
splashframe = SplashFrame(self)
self.withdraw()
self.wait_window(splashframe)
self.deiconify()
# this launches the next screen, the fire select screen
def on_button(self):
secondframe = SecondFrame(self)
self.withdraw()
self.wait_window(secondframe)
self.deiconify()
def kudos(self):
kudosframe = KudosFrame(self)
self.withdraw()
self.wait_window(kudosframe)
self.deiconify()
# this reloads the game, you have to click it to make it the active window again
def on_keypress_r(self, evet):
self.destroy()
self.__init__()
def on_keypress_k(self, evet):
print("k pressed")
self.kudos()
def on_keypress_a(self, evet):
print("a pressed")
def on_keypress_b(self, evet):
print("b pressed")
def on_keypress_c(self, evet):
print("c pressed")
def on_keypress_d(self, evet):
print("d pressed")
# this launches you to window three, the fire select window
def on_keypress_space(self, evet):
print("space pressed")
self.on_button()
# this quits and closes the window by hitting a single key
def on_keypress_q(self, evet):
self.quit()
#
#
#
#
# this is the third fire screen
class SecondFrame(tk.Toplevel):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.geometry('640x400')
self.title("Fire status screen")
tk.Grid.rowconfigure(self, 0, weight=1, uniform='a')
tk.Grid.columnconfigure(self, 0, weight=1, uniform='a')
tk.Button(self, text='Close', command=self.destroy).grid(row=0, column=0, sticky="NSEW")
#
#
# End fire menu class and related functions
#
#
#Begin secret credits(kudos) screen
#
#
class KudosFrame(tk.Toplevel):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.geometry('640x400')
self.title("Secret credits screen")
tk.Grid.rowconfigure(self, 0, weight=1, uniform='a')
tk.Grid.columnconfigure(self, 0, weight=1, uniform='a')
tk.Button(self, text='Close', command=self.destroy).grid(row=0, column=0, sticky="NSEW")
#
# End secret credits(kudos) screen
#
#
#
# The below two commands run the entire script
#
tk_app = TkApp()
tk_app.mainloop()
Posts: 63
Threads: 14
Joined: Oct 2020
Apr-19-2021, 01:56 AM
(This post was last modified: Apr-19-2021, 01:57 AM by knoxvilles_joker.)
current version:
import tkinter as tk
from tkinter import *
#import PIL.ImageTk
#import image
#import PIL
#import PIL.Image
import tkinter.ttk as ttk
import datetime as dt
import time
import os
from tkinter import messagebox
from collections import deque
from itertools import islice
from threading import Thread
from playsound import playsound
#
# global variables will be declared here
GUN = ""
# sets ammo count to initial value of 500
INITIAL_COUNTER_VALUE = 500
# sets initial time at 100%
INITIAL_TIMER_VALUE = 33000
# sets initial gun terminal ID
#sets gun rate
RMMAX = 0
# sets initial temparature
TEMP_INITIAL = 20
# sets text string for ammo/temp/low ammo status button
STATUS = ""
COOLED = 20
# end global variables section
#
# This is the initial screen that loads and then disappears after 8 seconds
# I used 3 images to make the main deal. The issue was that pygame allowed for line draws
# tkinter only allows for drawing of boxes.
# should this change I will change from using images.
class SplashFrame(tk.Toplevel):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.geometry('640x400')
self.title("Iniitaling")
self.img = tk.PhotoImage(file='load5.png')
self.configure(background='black')
self.overrideredirect(True)
tk.Grid.rowconfigure(self, 0, weight=1, uniform='a')
tk.Grid.columnconfigure(self, 0, weight=1, uniform='a')
tk.Grid.rowconfigure(self, 1, weight=1, uniform='a')
tk.Grid.rowconfigure(self, 2, weight=1, uniform='a')
tk.Grid.columnconfigure(self, 1, weight=1, uniform='a')
tk.Grid.columnconfigure(self, 2, weight=1, uniform='a')
self.leftimage = PhotoImage(file='loadleft22.png')
left = ttk.Label(self, style="TLabel", image=self.leftimage)
left.grid(row=2, column=0, sticky="NSEW")
self.rightimage = PhotoImage(file='loadright3.png')
right = ttk.Label(self, style="TLabel", image=self.rightimage)
right.grid(row=2, column=2, sticky="NSEW")
btn = tk.Label(self, image=self.img)
btn.grid(row=0, rowspan=2, column=0, columnspan=3, sticky="NSEW")
styled = ttk.Style()
styled.theme_use('clam')
styled.configure("TLabel", background='black', darkcolor='black', bordercolor='black', relief='none', lightcolor='black', highlightcolor='black', foreground='black', shiftrelief=-5, highlightthickness=0, width=0, anchor="NSEW")
styled.configure("Horizontal.TProgressbar", foreground = 'black', background = 'yellow', bordercolor='black', darkcolor='black', throughcolor='black', lightcolor='black')
loadingbar = ttk.Progressbar(self, style="Horizontal.TProgressbar", orient="horizontal", length = 200, mode='indeterminate', maximum=100)
loadingbar.grid(row=2, column=1, sticky="NEW")
loadingbar.start([78])
self.overrideredirect(True)
# self.after has a timer in msecs. Just change this to your desired value. I have logic on loading bar set for 8 seconds so if you change that
# you will need to adjust the loadingbar.start number. Remember it is 200 units long and you divide that by the time in msecs to figure out how to divide up the movement
self.after(1000, self.destroy)
#
# End of splash screen defined class and related functions
#
#------------begin select screen------------------------------
# Begin select menu defined class and related functions
# This is the script's core window so more code will be present here than in other sections
#
# This is the next screen to load after the initial splash screen
class TkApp(tk.Tk):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.geometry('640x400')
self.title("Select Screen")
self.configure(bg='black')
self.gun = tk.StringVar()
self.gun.set(GUN)
# Specify Grid
tk.Grid.rowconfigure(self, 0, weight=1, uniform='a')
tk.Grid.rowconfigure(self, 1, weight=1, uniform='b')
tk.Grid.rowconfigure(self, 2, weight=1, uniform='b')
tk.Grid.rowconfigure(self, 3, weight=1, uniform='b')
tk.Grid.rowconfigure(self, 4, weight=1, uniform='b')
tk.Grid.rowconfigure(self, 5, weight=1, uniform='b')
tk.Grid.rowconfigure(self, 6, weight=1, uniform='b')
tk.Grid.rowconfigure(self, 7, weight=1, uniform='b')
tk.Grid.rowconfigure(self, 8, weight=1, uniform='b')
tk.Grid.rowconfigure(self, 9, weight=1, uniform='b')
tk.Grid.columnconfigure(self, 0, weight=1, uniform='d')
tk.Grid.columnconfigure(self, 1, weight=1, uniform='d')
tk.Grid.columnconfigure(self, 2, weight=1, uniform='d')
tk.Grid.columnconfigure(self, 3, weight=1, uniform='d')
tk.Grid.columnconfigure(self, 4, weight=1, uniform='d')
tk.Grid.columnconfigure(self, 5, weight=1, uniform='d')
tk.Grid.columnconfigure(self, 6, weight=1, uniform='d')
tk.Grid.columnconfigure(self, 7, weight=1, uniform='d')
button_1 = tk.Button(self, justify=tk.CENTER, text="AUTO-REMOTE", bg='black', fg='yellow',highlightbackground='yellow', highlightcolor='black', activebackground='yellow')
button_2 = tk.Button(self, justify=tk.CENTER, text="HARD", bg='black', fg='yellow',highlightbackground='yellow', highlightcolor='black', activebackground='yellow')
button_3 = tk.Button(self, justify=tk.CENTER, text="SEMIHARD", bg='black', fg='yellow',highlightbackground='yellow', highlightcolor='black', activebackground='yellow')
button_4 = tk.Button(self, justify=tk.CENTER, text="SOFT", bg='black', fg='yellow',highlightbackground='yellow', highlightcolor='black', activebackground='yellow')
sbutton_1 = tk.Button(self, justify=tk.CENTER, text="BIO", bg='black', fg='yellow',highlightbackground='yellow', highlightcolor='black', activebackground='yellow')
sbutton_2 = tk.Button(self, justify=tk.CENTER, text="INERT", bg='black', fg='yellow',highlightbackground='yellow', highlightcolor='black', activebackground='yellow')
tsbutton_1 = tk.Button(self, justify=tk.CENTER, text="MULTI SPEC", bg='black', fg='yellow',highlightbackground='yellow', highlightcolor='black', activebackground='yellow')
tsbutton_2 = tk.Button(self, justify=tk.CENTER, text="INFRA RED", bg='black', fg='yellow',highlightbackground='yellow', highlightcolor='black', activebackground='yellow')
tsbutton_3 = tk.Button(self, justify=tk.CENTER, text="UV", bg='black', fg='yellow',highlightbackground='yellow', highlightcolor='black', activebackground='yellow')
wsbutton_1 = tk.Button(self, justify=tk.CENTER, text="SAFE", bg='black', fg='yellow',highlightbackground='yellow', highlightcolor='black', activebackground='yellow')
wsbutton_2 = tk.Button(self, justify=tk.CENTER, text="ARMED", bg='black', fg='yellow',highlightbackground='yellow', highlightcolor='black', activebackground='yellow')
isbutton_1 = tk.Button(self, justify=tk.CENTER, text="SEARCH", bg='black', fg='yellow',highlightbackground='yellow', highlightcolor='black', activebackground='yellow')
isbutton_2 = tk.Button(self, justify=tk.CENTER, text="TEST", bg='black', fg='yellow',highlightbackground='yellow', highlightcolor='black', activebackground='yellow')
isbutton_3 = tk.Button(self, justify=tk.CENTER, text="ENGAGED", bg='black', fg='yellow',highlightbackground='yellow', highlightcolor='black', activebackground='yellow')
isbutton_4 = tk.Button(self, justify=tk.CENTER, text="INTERROGATE", bg='black', fg='yellow',highlightbackground='yellow', highlightcolor='black', activebackground='yellow')
trbutton_1 = tk.Button(self, justify=tk.CENTER, text="AUTO", bg='black', fg='yellow',highlightbackground='yellow', highlightcolor='black', activebackground='yellow')
trbutton_2 = tk.Button(self, justify=tk.CENTER, text="SELECTIVE", bg='black', fg='yellow',highlightbackground='yellow', highlightcolor='black', activebackground='yellow')
smman = tk.Button(self, justify=tk.CENTER, text="MAN-OVERRIDE", bg='black', fg='yellow',highlightbackground='yellow', highlightcolor='black', activebackground='yellow')
smauto = tk.Button(self, justify=tk.CENTER, text="SEMI-AUTO", bg='black', fg='yellow',highlightbackground='yellow', highlightcolor='black', activebackground='yellow')
# displays gun id on top left and right of screen
gun_1 = tk.Button(self, borderwidth=7,bg='black',fg='yellow',disabledforeground='yellow',state=tk.DISABLED,textvariable=self.gun, highlightcolor = 'yellow')
gun_2 = tk.Button(self, borderwidth=7,bg='black',fg='yellow',disabledforeground='yellow',state=tk.DISABLED,textvariable=self.gun)
headernew = tk.Button(self, bg='black', state=tk.DISABLED, fg='yellow', disabledforeground='yellow',highlightbackground='yellow', borderwidth=2, justify=CENTER, text="UA 571-C \n REMOTE SENTRY WEAPON SYSTEM")
syst = tk.Button(self, bg='black', state=tk.DISABLED, fg='yellow', disabledforeground='yellow',highlightbackground='yellow', borderwidth=2, justify=CENTER, text="SYSTEM \n MODE")
weap = tk.Button(self, bg='black', state=tk.DISABLED, fg='yellow', disabledforeground='yellow',highlightbackground='yellow', borderwidth=2, justify=CENTER, text="WEAPON \n STATUS")
iff = tk.Button(self, bg='black', state=tk.DISABLED, fg='yellow', disabledforeground='yellow',highlightbackground='yellow', borderwidth=2, justify=CENTER, text="IFF \n STATUS")
test = tk.Button(self, bg='black', state=tk.DISABLED, fg='yellow', disabledforeground='yellow',highlightbackground='yellow', borderwidth=2, justify=CENTER, text="TEST \n ROUTINE")
target = tk.Button(self, bg='black', state=tk.DISABLED, fg='yellow', disabledforeground='yellow',highlightbackground='yellow', borderwidth=2, justify=CENTER, text="TARGET PROFILE")
spectral = tk.Button(self, bg='black', state=tk.DISABLED, fg='yellow', disabledforeground='yellow',highlightbackground='yellow', borderwidth=2, justify=CENTER, text="SPECTRAL PROFILE")
ts = tk.Button(self, bg='black', state=tk.DISABLED, fg='yellow', disabledforeground='yellow',highlightbackground='yellow', borderwidth=2, justify=CENTER, text="TARGET SELECT")
gun_1.grid(row=0, column=0, ipadx=2, ipady=2, padx=2, pady=2, sticky=W)
gun_2.grid(row=0, column=7, ipadx=2, ipady=2, padx=2, pady=2, sticky=E)
headernew.grid(row=0, column=1, columnspan=6, sticky="NSEW")
button_1.grid(row=2, column=0, columnspan=2, sticky="NSEW")
button_2.grid(row=9, column=0, columnspan=3, sticky="NSEW")
button_3.grid(row=8, column=0, columnspan=3, sticky="NSEW")
button_4.grid(row=7, column=0, columnspan=3, sticky="NSEW")
sbutton_1.grid(row=7, column=3, columnspan=2, sticky="NSEW")
sbutton_2.grid(row=8, column=3, columnspan=2, sticky="NSEW")
tsbutton_1.grid(row=7, column=5, columnspan=3, sticky="NSEW")
tsbutton_2.grid(row=8, column=5, columnspan=3, sticky="NSEW")
tsbutton_3.grid(row=9, column=5, columnspan=3, sticky="NSEW")
wsbutton_1.grid(row=2, column=2, columnspan=2, sticky="NSEW")
wsbutton_2.grid(row=3, column=2, columnspan=2, sticky="NSEW")
isbutton_1.grid(row=2, column=4, columnspan=2, sticky="NSEW")
isbutton_2.grid(row=3, column=4, columnspan=2, sticky="NSEW")
isbutton_3.grid(row=4, column=4, columnspan=2, sticky="NSEW")
isbutton_4.grid(row=5, column=4, columnspan=2, sticky="NSEW")
trbutton_1.grid(row=2, column=6, columnspan=2, sticky="NSEW")
trbutton_2.grid(row=3, column=6, columnspan=2, sticky="NSEW")
smman.grid(row=3, column=0, columnspan=2, sticky="NSEW")
smauto.grid(row=4, column=0, columnspan=2, sticky="NSEW")
syst.grid(row=1, column=0, columnspan=2, sticky="NSEW")
weap.grid(row=1, column=2, columnspan=2, sticky="NSEW")
iff.grid(row=1, column=4, columnspan=2, sticky="NSEW")
test.grid(row=1, column=6, columnspan=2, sticky="NSEW")
target.grid(row=6, column=0, columnspan=3, sticky="NSEW")
spectral.grid(row=6, column=3, columnspan=2, sticky="NSEW")
ts.grid(row=6, column=5, columnspan=3, sticky="NSEW")
# this quits by clicking a button labeled q
quit = tk.Button(self, bg='black', fg='yellow', text='q', command=self.quit)
quit.grid(row=8,column=0,sticky="SW")
self.bind('<KeyPress-Down>', self.on_down)
self.bind("<Up>", self.on_up)
self.bind("<Left>", self.on_left)
self.bind("<Right>", self.on_right)
self.bind("<KeyPress-a>", self.on_keypress_a)
self.bind("<KeyPress-b>", self.on_keypress_b)
self.bind("<KeyPress-c>", self.on_keypress_c)
self.bind("<KeyPress-d>", self.on_keypress_d)
self.bind("<KeyPress-q>", self.on_keypress_q)
tk.Button(self, text='SecondFrame', command=self.on_button, bg='black', fg='yellow',highlightbackground='yellow', highlightcolor='black', activebackground='yellow').grid(row=9, column=0, sticky="SW")
self.create_splashframe()
# These are the bind key definitions
self.bind("<KeyPress-r>", self.on_keypress_r)
self.bind("<KeyPress-space>", self.on_keypress_space)
self.bind("<KeyPress-k>", self.on_keypress_k)
self.group1 = deque((button_1, smman, smauto))
self.group2 = deque((wsbutton_1, wsbutton_2))
self.group3 = deque((isbutton_1, isbutton_2, isbutton_3, isbutton_4))
self.group4 = deque((trbutton_1, trbutton_2))
self.group5 = deque((button_4, button_3, button_2))
self.group6 = deque((sbutton_1, sbutton_2))
self.group7 = deque((tsbutton_1, tsbutton_2, tsbutton_3))
self.header_group = deque(((syst, self.group1), (weap, self.group2),(iff, self.group3), (test, self.group4),(target, self.group5), (spectral, self.group6),(ts, self.group7)))
self.start_with_first_selected(False)
self.toggle_header_group(self.header_group)
def toggle_button_group(self, button_group):
button_group[0].config(foreground='black', background='yellow', relief='sunken')
for button in islice(button_group, 1, None):
button.config(foreground='yellow', background='black', relief='raised')
def toggle_header_group(self, header_group):
header_group[0][0].config(disabledforeground='black', background='yellow', relief='sunken')
for button in islice(self.header_group, 1, None):
button[0].config(disabledforeground='yellow',background='black', relief='raised')
def start_with_first_selected(self, first_selected=False):
if first_selected:
toggle_button_group(self.group1)
toggle_button_group(self.group2)
toggle_button_group(self.group3)
toggle_button_group(self.group4)
toggle_button_group(self.group5)
toggle_button_group(self.group6)
toggle_button_group(self.group7)
else:
# set last of each group to selected
self.group1.rotate(1)
self.group2.rotate(1)
self.group3.rotate(1)
self.group4.rotate(1)
self.group5.rotate(1)
self.group6.rotate(1)
self.group7.rotate(1)
def on_down(self, evet):
group = self.header_group[0][1]
group.rotate(-1)
self.toggle_button_group(group)
playsound("click1.mp3")
def on_up(self, evet):
group = self.header_group[0][1]
group.rotate(1)
self.toggle_button_group(group)
playsound("click1.mp3")
def on_left(self, evet):
self.header_group.rotate(1)
self.toggle_header_group(self.header_group)
playsound("click1.mp3")
def on_right(self, evet):
self.header_group.rotate(-1)
self.toggle_header_group(self.header_group)
playsound("click1.mp3")
# this appears to launch the initial window
def create_splashframe(self):
splashframe = SplashFrame(self)
self.withdraw()
self.wait_window(splashframe)
self.deiconify()
# this launches the next screen, the fire select screen
def on_button(self):
secondframe = SecondFrame(self)
self.withdraw()
self.wait_window(secondframe)
self.deiconify()
def kudos(self):
kudosframe = KudosFrame(self)
self.withdraw()
self.wait_window(kudosframe)
self.deiconify()
def on_keypress_k(self, evet):
print("k pressed")
self.kudos()
playsound("click1.mp3")
# these work
def on_keypress_a(self, evet):
which_gun = self.gun.get()
which_gun = "A"
self.gun.set(which_gun)
playsound("click1.mp3")
def on_keypress_b(self, evet):
which_gun = self.gun.get()
which_gun = "B"
self.gun.set(which_gun)
playsound("click1.mp3")
def on_keypress_c(self, evet):
which_gun = self.gun.get()
which_gun = "C"
self.gun.set(which_gun)
playsound("click1.mp3")
def on_keypress_d(self, evet):
which_gun = self.gun.get()
which_gun = "D"
self.gun.set(which_gun)
playsound("click1.mp3")
# this launches you to window three, the fire select window
def on_keypress_space(self, evet):
print("space pressed")
self.on_button()
playsound("click1.mp3")
# this quits and closes the window by hitting a single key
def on_keypress_q(self, evet):
self.quit()
playsound("click1.mp3")
# this reloads the game, you have to click it to make it the active window again
def on_keypress_r(self, evet):
self.destroy()
self.__init__()
playsound("click1.mp3")
#
#
#
#
# this is the third fire screen
class SecondFrame(tk.Toplevel):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.geometry('640x400')
self.configure(bg='black')
self.title("Fire status screen")
tk.Grid.rowconfigure(self, 0, weight=1, uniform='a')
tk.Grid.columnconfigure(self, 0, weight=1, uniform='a')
tk.Button(self, text='Close', command=self.destroy, bg='black', fg='yellow', highlightbackground='yellow', highlightcolor='black',activebackground='yellow').grid(row=8, column=1, sticky="NSEW")
# locally initialize ammo count down
self.counter = tk.IntVar()
self.counter.set(INITIAL_COUNTER_VALUE)
# locally sets the timer count down at 100%
self.timer = tk.IntVar()
self.timer.set(INITIAL_TIMER_VALUE)
# locally sets rmbar to 0%
self.rmcount = tk.IntVar()
self.rmcount.set(RMMAX)
# locally sets tempbar
self.temperature = tk.IntVar()
self.temperature.set(TEMP_INITIAL)
# locally sets text string for ammo status button
self.stat = tk.StringVar()
self.stat.set(STATUS)
#
self.cooldown = tk.IntVar()
self.stat.set(COOLED)
self.gun = tk.StringVar()
self.gun.set(GUN)
# this arranges the grid row and column groupings.
tk.Grid.rowconfigure(self, 0, weight=1, uniform='c')
tk.Grid.rowconfigure(self, 1, weight=1, uniform='b')
tk.Grid.rowconfigure(self, 2, weight=1, uniform='b')
tk.Grid.rowconfigure(self, 3, weight=1, uniform='b')
tk.Grid.rowconfigure(self, 4, weight=1, uniform='b')
tk.Grid.rowconfigure(self, 5, weight=1, uniform='b')
tk.Grid.rowconfigure(self, 6, weight=1, uniform='b')
tk.Grid.rowconfigure(self, 7, weight=1, uniform='b')
tk.Grid.rowconfigure(self, 8, weight=1, uniform='b')
tk.Grid.columnconfigure(self, 0, weight=1, uniform='a')
tk.Grid.columnconfigure(self, 1, weight=1, uniform='a')
tk.Grid.columnconfigure(self, 2, weight=1, uniform='a')
tk.Grid.columnconfigure(self, 3, weight=1, uniform='a')
tk.Grid.columnconfigure(self, 4, weight=1, uniform='a')
tk.Grid.columnconfigure(self, 5, weight=1, uniform='a')
# these are the button and label declarations
rounds = tk.Label(self, justify=tk.CENTER, textvariable=self.counter)
rounds.grid(row=3, column=2, columnspan=1, sticky="EW")
label1 = tk.Label(self, textvariable=self.timer)
label1.grid(row=7, column=2, sticky="EW")
temp = tk.Button(self,justify=tk.CENTER,text="Temp",bg='black', fg='yellow', highlightbackground='yellow', highlightcolor='black',activebackground='yellow')
temp.grid(row=2,column=4,sticky="NSEW")
rm = tk.Button(self,justify=tk.CENTER,text="R(M)",bg='black', fg='yellow', highlightbackground='yellow', highlightcolor='black',activebackground='yellow')
rm.grid(row=2,column=5,sticky="NSEW")
# rounds rate bar
rmbar = ttk.Progressbar(self, orient="vertical", variable=self.rmcount)
rmbar.grid(row=3,column=5,rowspan=6, sticky="NS")
# temperature bar
tempbar = ttk.Progressbar(self, orient="vertical", variable=self.temperature)
tempbar.grid(row=3,column=4,rowspan=6,sticky="NS")
# declarative buttons
timestat = tk.Button(self,bg='black',state=tk.DISABLED, fg='yellow',disabledforeground='yellow',highlightbackground='yellow',borderwidth=2,justify=tk.CENTER,text="TIME AT 100% \n (msecs)")
timestat.grid(row=7,column=0,columnspan=2,sticky="NSEW")
roundsr = tk.Button(self,bg='black',state=tk.DISABLED, fg='yellow',disabledforeground='yellow',highlightbackground='yellow',borderwidth=2,justify=tk.CENTER,text="Rounds \n Remaining")
roundsr.grid(row=3,column=0,columnspan=2,sticky="NS")
# crit menu bar
crit = tk.Button(self,justify=tk.CENTER,textvariable=self.stat, bg='black', fg='yellow', highlightbackground='yellow', highlightcolor='black',activebackground='yellow')
crit.grid(row=5,column=0,columnspan=2,sticky="NSEW")
# static center header
headernew = tk.Button(self, bg='black',state=tk.DISABLED,justify=tk.CENTER, text="UA 571-C \n REMOTE SENTRY WEAPON SYSTEM")
headernew.grid(row=0,column=1,columnspan=4,rowspan=2,sticky="NSEW")
# displays gun id on top left and right of screen
gun_1 = tk.Button(self, borderwidth=7,bg='black',fg='yellow',disabledforeground='yellow',state=tk.DISABLED,textvariable=self.gun, highlightcolor = 'yellow')
gun_1.grid(row=0,column=0,rowspan=2,sticky="NS")
gun_2 = tk.Button(self, borderwidth=7,bg='black',fg='yellow',disabledforeground='yellow',state=tk.DISABLED,textvariable=self.gun)
gun_2.grid(row=0,column=5,rowspan=2,sticky="NS")
# this quits by clicking a button labeled q
quit = tk.Button(self, bg='black', fg='yellow', text='q', command=self.quit)
quit.grid(row=8,column=0,sticky="SW")
# these are the attachments for input from keyboard into the application
# These are the button inputs from the original flash app that were used
# I added a q as well to quit and close window in case there was a need to close
self.bind("<KeyPress-f>", self.on_keypress_f)
self.bind("<KeyRelease-f>", self.on_keyrelease_f)
self.bind("<KeyPress-a>", self.on_keypress_a)
self.bind("<KeyPress-b>", self.on_keypress_b)
self.bind("<KeyPress-c>", self.on_keypress_c)
self.bind("<KeyPress-d>", self.on_keypress_d)
# These are the bind key definitions
self.bind("<KeyPress-r>", self.on_keypress_r)
self.bind("<KeyPress-q>", self.on_keypress_q)
self.bind("<KeyPress-space>", self.on_keypress_space)
self.bind("<KeyPress-k>", self.on_keypress_k)
def coolbar(self):
temperature_count = self.temperature.get()
if temperature_count >= 21:
temperature_count = self.temperature.get()
temperature_count = temperature_count-1 or TEMP_INITIAL
self.temperature.set(temperature_count)
print("key not pressed", temperature_count)
self.after(300, self.coolbar)
def overheat(self):
rmcount_count = self.rmcount.get()
rmcount_count = 0
self.rmcount.set(rmcount_count)
state_stat = self.stat.get()
state_stat = "OVERHEAT"
self.stat.set(state_stat)
playsound("warning1.mp3")
time.sleep(0.7)
def critical(self):
counter_value = self.counter.get()
if counter_value <= 50:
counter_value = self.counter.get()
state_stat = self.stat.get()
state_stat = "CRITICAL"
self.stat.set(state_stat)
playsound("warning1.mp3")
counter_value = self.counter.get()
print("ammo CRIT", counter_value)
def out(self):
counter_value = self.counter.get()
if counter_value == 1:
state_stat = self.stat.get()
state_stat = "OUT"
self.stat.set(state_stat)
playsound("warning1.mp3")
counter_value = self.counter.get()
print("ammo CRIT", counter_value)
def reload(self):
counter_value = self.counter.get()
if counter_value >= 1:
state_stat = self.stat.get()
state_stat = ""
self.stat.set(state_stat)
counter_value = self.counter.get()
print("ammo CRIT", counter_value)
# this defines the fire ammo count down sequence and resets
def on_keypress_f(self, evet):
counter_value = self.counter.get()
counter_value = counter_value-1 or INITIAL_COUNTER_VALUE
self.counter.set(counter_value)
counter_value = self.counter.get()
# this is logic to try and get ammo warnings
counter_value = self.counter.get()
self.reload()
self.critical()
self.out()
# this sets the time at 100%
timer_value = self.timer.get()
timer_value = timer_value-66 or INITIAL_TIMER_VALUE
self.timer.set(timer_value)
# this sets the rmbar to 40%
rmcount_count = self.rmcount.get()
rmcount_count = 40
self.rmcount.set(rmcount_count)
# this sets the temperature
temperature_count = self.temperature.get()
temperature_count = temperature_count+1
self.temperature.set(temperature_count)
if temperature_count == 90:
self.coolbar()
self.overheat()
else:
state_stat = self.stat.get()
state_stat = ""
self.stat.set(state_stat)
def on_keyrelease_f(self, evet):
#this adds logic to say rate is zero if not firing
#this automatically turns off rate bar moment key is released fixing a logic issue
rmcount_count = self.rmcount.get()
rmcount_count = 0
self.rmcount.set(rmcount_count)
temperature_count = self.temperature.get()
if temperature_count >= 20:
self.coolbar()
# this appears to launch the initial window
def create_splashframe(self):
splashframe = SplashFrame(self)
self.withdraw()
self.wait_window(splashframe)
self.deiconify()
# this launches the next screen, the fire select screen
def on_button(self):
secondframe = SecondFrame(self)
self.withdraw()
self.wait_window(secondframe)
self.deiconify()
def kudos(self):
kudosframe = KudosFrame(self)
self.withdraw()
self.wait_window(kudosframe)
self.deiconify()
def on_keypress_k(self, evet):
print("k pressed")
self.kudos()
playsound("click1.mp3")
# this reloads the game, you have to click it to make it the active window again
def on_keypress_r(self, evet):
self.destroy()
self.create_splashframe
playsound("click1.mp3")
# this launches you to window three, the fire select window
def on_keypress_space(self, evet):
print("space pressed")
self.on_button()
playsound("click1.mp3")
# this quits and closes the window by hitting a single key
def on_keypress_q(self, evet):
self.destroy()
self.quit()
playsound("click1.mp3")
# this sets the gun terminal identification
# this can also be expanded to do other things if you want to alter the script
def on_keypress_a(self, evet):
which_gun = self.gun.get()
which_gun = "A"
self.gun.set(which_gun)
playsound("click1.mp3")
def on_keypress_b(self, evet):
which_gun = self.gun.get()
which_gun = "B"
self.gun.set(which_gun)
playsound("click1.mp3")
def on_keypress_c(self, evet):
which_gun = self.gun.get()
which_gun = "C"
self.gun.set(which_gun)
playsound("click1.mp3")
def on_keypress_d(self, evet):
which_gun = self.gun.get()
which_gun = "D"
self.gun.set(which_gun)
playsound("click1.mp3")
#
#
# End fire menu class and related functions
#
#
#Begin secret credits(kudos) screen
#
#
class KudosFrame(tk.Toplevel):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.geometry('640x400')
self.title("Secret credits screen")
tk.Grid.rowconfigure(self, 0, weight=1, uniform='a')
tk.Grid.columnconfigure(self, 0, weight=1, uniform='a')
tk.Grid.rowconfigure(self, 1, weight=1, uniform='a')
tk.Grid.columnconfigure(self, 1, weight=1, uniform='a')
r0c0 = tk.Button(self, text='Close', command=self.destroy, bg='black', fg='yellow',highlightbackground='yellow', highlightcolor='black', activebackground='yellow')
r0c0.grid(row=0, column=0, sticky="NSEW")
r1c0 = tk.Label(self, text ='Alienslegacy.com Credits \n knoxvilles_joker aka gabriel vos new script \n martinr1000 font and some coding help \n MLR 2007 for original flash script \n Facebook.com theuscm \n youtube.com/channel/UC4KYYScA5WcdCZeiU6lcjdA \n cobra_shipwreck channel aka knoxvilles_joker', bg='black', fg='yellow',highlightbackground='yellow', highlightcolor='black', activebackground='yellow')
r1c0.grid(row=1, column=0, sticky="NSEW")
r1c1 = tk.Label(self, text =' ', bg='black', fg='yellow',highlightbackground='yellow', highlightcolor='black', activebackground='yellow')
r1c1.grid(row=1, column=1, sticky="NSEW")
r0c1 = tk.Label(self, text ='Python-forum.io credits \n Yoriz coding pointers and help \n ndc85430 coding critique \n ', bg='black', fg='yellow',highlightbackground='yellow', highlightcolor='black', activebackground='yellow')
r0c1.grid(row=0, column=1, sticky="NSEW")
# These are the bind key definitions
self.bind("<KeyPress-r>", self.on_keypress_r)
self.bind("<KeyPress-space>", self.on_keypress_space)
self.bind("<KeyPress-k>", self.on_keypress_k)
self.bind("<KeyPress-q>", self.on_keypress_q)
def on_button(self):
secondframe = SecondFrame(self)
self.withdraw()
self.wait_window(secondframe)
self.deiconify()
def kudos(self):
kudosframe = KudosFrame(self)
self.withdraw()
self.wait_window(kudosframe)
self.deiconify()
# this appears to launch the initial window
def create_splashframe(self):
splashframe = SplashFrame(self)
self.withdraw()
self.wait_window(splashframe)
self.deiconify()
# this reloads the game, you have to click it to make it the active window again
def on_keypress_r(self, evet):
self.destroy()
self.create_splashframe # this appears to launch the initial window
def create_splashframe(self):
splashframe = SplashFrame(self)
self.withdraw()
self.wait_window(splashframe)
self.deiconify()
def on_keypress_k(self, evet):
print("k pressed")
self.kudos()
playsound("click1.mp3")
# this launches you to window three, the fire select window
def on_keypress_space(self, evet):
print("space pressed")
self.on_button()
playsound("click1.mp3")
# this quits and closes the window by hitting a single key
def on_keypress_q(self, evet):
self.destroy()
self.quit()
playsound("click1.mp3")
#
# End secret credits(kudos) screen
#
#
#
# The below two commands run the entire script
#
tk_app = TkApp()
tk_app.mainloop()
|