Files
Quadraludi/main.py
2019-03-18 19:30:03 +01:00

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()