89 lines
2.5 KiB
Python
89 lines
2.5 KiB
Python
import tkinter as tk
|
|
import datetime as dt
|
|
import color
|
|
from time import sleep
|
|
from game import fall, osu, pong, space
|
|
from PIL import Image, ImageTk
|
|
|
|
win = tk.Tk()
|
|
win['bg'] = color.LEVEL_9
|
|
win.title('Quadraludi')
|
|
win.geometry('806x606')
|
|
win.resizable(False, False)
|
|
win.wm_attributes('-transparentcolor', color.TRANSPARENT)
|
|
|
|
# Res
|
|
image_center = ImageTk.PhotoImage(Image.open('res/logo/main.png'))
|
|
|
|
# Time
|
|
time = None
|
|
delta = None
|
|
tick = 0
|
|
score = tk.IntVar(win, 0)
|
|
difficulty = 1.0
|
|
MAX_DIFFICULTY = 3.0
|
|
DIFFICULTY_STEP = (MAX_DIFFICULTY - difficulty) / 5000
|
|
|
|
def loop(deltaTime):
|
|
global time, delta, tick, score, difficulty
|
|
|
|
# Start
|
|
delta = dt.datetime.now()
|
|
deltatime = (delta - time).microseconds * 1e-6
|
|
|
|
# Loop
|
|
if tick > 2:
|
|
fall.loop(deltatime, difficulty)
|
|
osu.loop(deltatime, difficulty)
|
|
pong.loop(deltatime, difficulty)
|
|
space.loop(deltatime, difficulty)
|
|
|
|
# Step tick
|
|
tick += 1
|
|
score.set(int(tick / 5))
|
|
|
|
# Step difficulty
|
|
if difficulty < MAX_DIFFICULTY:
|
|
difficulty += DIFFICULTY_STEP
|
|
elif difficulty > MAX_DIFFICULTY:
|
|
difficulty = MAX_DIFFICULTY
|
|
|
|
# End
|
|
time = delta
|
|
win.after(int(1000 / 60), lambda: loop(deltaTime))
|
|
|
|
def main():
|
|
global time, delta
|
|
|
|
# Create Canvas
|
|
canvas_osu = tk.Canvas(win, width = 400, height = 300, bd = 0, highlightthickness = 0, relief = 'ridge', bg = color.LEVEL_1)
|
|
canvas_osu.place(x = 2, y = 2)
|
|
canvas_pong = tk.Canvas(win, width = 400, height = 300, bd = 0, highlightthickness = 0, relief = 'ridge', bg = color.LEVEL_1)
|
|
canvas_pong.place(x = 404, y = 2)
|
|
canvas_space = tk.Canvas(win, width = 400, height = 300, bd = 0, highlightthickness = 0, relief = 'ridge', bg = color.LEVEL_1)
|
|
canvas_space.place(x = 2, y = 304)
|
|
canvas_fall = tk.Canvas(win, width = 400, height = 300, bd = 0, highlightthickness = 0, relief = 'ridge', bg = color.LEVEL_1)
|
|
canvas_fall.place(x = 404, y = 304)
|
|
|
|
# Logo
|
|
win.iconbitmap('res/logo/main.ico')
|
|
tk.Label(win, image = image_center, bg = color.LEVEL_1).place(x = 401 - 32, y = 301 - 32)
|
|
|
|
# Score
|
|
tk.Label(win, textvariable = score, bg = color.LEVEL_1, fg = color.BROWN, font = (None, 12)).place(x = 2, y = 2)
|
|
|
|
# Ini
|
|
fall.main(canvas_fall)
|
|
osu.main(canvas_osu)
|
|
pong.main(canvas_pong)
|
|
space.main(canvas_space)
|
|
|
|
# Loop
|
|
delta = dt.datetime.now()
|
|
time = dt.datetime.now()
|
|
loop(1000 / 60)
|
|
|
|
|
|
print('Bienvenue dans le jeu QuadraLudi')
|
|
main()
|
|
win.mainloop() |