below is my code of a simple program where you can control a circle with buttons WASD. my question is, how do I add a background image? Please help me. :)
Code:
from Tkinter import *
import time, math, random
def timerFired(previousTime):
currentTime = time.time()
dt = currentTime - previousTime
canvasWidth = int(canvas.cget("width"))
canvas.after(40, timerFired, currentTime)
redrawAll()
def key(event):
if event.char == "a":
for i in range(len(canvas.data.x)):
canvas.data.x[i] = canvas.data.x[i] - 5
elif event.char == "d":
for i in range(len(canvas.data.x)):
canvas.data.x[i] = canvas.data.x[i] + 5
elif event.char == "w":
for i in range(len(canvas.data.x)):
canvas.data.y[i] = canvas.data.y[i] - 5
elif event.char == "s":
for i in range(len(canvas.data.x)):
canvas.data.y[i] = canvas.data.y[i] + 5
redrawAll()
def drawBackground():
pass
def redrawAll():
canvas.delete(ALL)
drawBackground()
canvas.create_text(int(canvas.cget("width")) - 10,
int(canvas.cget("height")) - 10,
anchor=SE,
text = "X = " + str(canvas.data.x) + " Y = " + str(canvas.data.y))
for i in range(len(canvas.data.x)):
canvas.create_oval(canvas.data.x[i] - canvas.data.r[i],
canvas.data.y[i] + canvas.data.r[i],
canvas.data.x[i] + canvas.data.r[i],
canvas.data.y[i] - canvas.data.r[i],
fill=canvas.data.color[i])
def init():
canvas.data.groundHeight = 600
canvas.data.x = [400]
canvas.data.y = [300]
canvas.data.r = [100]
canvas.data.color = [""]
canvas.data.backupX = []
canvas.data.backupY = []
canvas.data.backupR = []
canvas.data.backupColor = []
def run():
global canvas
root = Tk()
canvas = Canvas(root, width=800, height=600, bg="yellow")
canvas.pack()
root.canvas = canvas.canvas = canvas
class MyModel: pass
canvas.data = MyModel()
init()
root.bind("<Key>", key)
timerFired(time.time())
root.mainloop()
run()
Comment