ich arbeite gerade an einem Programm, wo man Rechtecke "bauen" kann und wenn es sich mit einem anderen Rechteck überschneidet wird es Rot gezeichnet, wenn es sich nicht mit einem anderen Rechteck überschneidet ist es in einer anderen Farbe.
Hier der Code:
(Übrigens muss man einfach 2x (an unterschiedlichen stellen) ins Schwarze klicken)
Code: Alles auswählen
try:
from tkinter import *
print("[ OK ] Loaded tkinter")
except:
print("[FAIL] Can not load tkinter, maybe you did not installed it or using Python 2?")
import _thread
"""
Variablen und Infos
"""
Name = "Landnahme"
Welt = []
MainFrame = None # Main tkinter Fenster
Can = None # Main Canvas
Farben = ["gold", "blue", "yellow", "green", "grey30", "grey40", "grey50", "grey60", "grey70", "grey80", "grey90"]
startx = 0 # CanEvent
starty = 0 # CanEvent
Count = 1
"""
Definitionen
"""
def WeltGen():
global Welt
x = 1200
y = 800
for xtemp in list(range(0, x - 1)):
Welt += [[]]
for ytemp in list(range(0, y - 1)):
Welt[xtemp] += [0]
print("[ OK ] World gen ready.")
def CanEvent2(event):
global Can, Welt, startx, starty, Count
Can.unbind("<Button-1>")
endx = event.x
endy = event.y
print("[ OK ] CanEvent2 Clicked at " + str(endx) + "," + str(endy))
erlaubniss = True
for x in list(range(startx, endx)):
for y in list(range(starty, endy)):
if Welt[x][y] == 0:
print(Welt[x][y])
else:
print(Welt[x][y])
erlaubniss = False
if erlaubniss == True:
for x in list(range(startx, endx)):
for y in list(range(starty, endy)):
Welt[x][y] = [Count]
Can.create_rectangle(startx, starty, endx, endy, fill=Farben[Count-1])
Count += 1
else:
Can.create_rectangle(startx, starty, endx, endy, fill="red")
Can.bind("<Button-1>", CanEvent)
print(endx)
print(endy)
print(startx)
print(starty)
print("[ OK ] plot calculated")
startx = 0
starty = 0
def CanEvent(event):
global Can, startx, starty
Can.unbind("<Button-1>")
startx = event.x
starty = event.y
Can.bind("<Button-1>", CanEvent2)
print("[ OK ] CanEvent Clicked at " + str(startx) + "," + str(starty))
"""
Main
"""
_thread.start_new(WeltGen, ()) # Im hintergrund Welt generieren
MainFrame = Tk()
MainFrame.resizable(width=FALSE, height=FALSE) # Fenstergroesse ist unveraenderbar
MainFrame.geometry("1200x800") # Fenstergoesse auf 1200x800 setzen
Can = Canvas(MainFrame, bg="black")
Can.place(x=0, y=0, width=1200, height=700)
Can.bind("<Button-1>", CanEvent)
MainFrame.mainloop()
print("[ OK ] Program was closed")
Danke
Luis