-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAntDisplay.py
More file actions
28 lines (23 loc) · 1.15 KB
/
AntDisplay.py
File metadata and controls
28 lines (23 loc) · 1.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from PIL import Image, ImageTk
class AntDisplay:
def __init__(self, canvas, ant):
self.canvas = canvas
self.ant = ant
self.images = [
Image.open("./imgs/ant1.png").resize((50, 50)),
Image.open("./imgs/ant2.png").resize((50, 50)),
Image.open("./imgs/ant3.png").resize((50, 50))
]
self.tk_images = [ImageTk.PhotoImage(img) for img in self.images]
self.indexCurrentImage = 0
self.image_id = self.canvas.create_image(ant.x, ant.y, image=self.tk_images[self.indexCurrentImage])
def next_image(self):
self.indexCurrentImage = (self.indexCurrentImage + 1) % len(self.tk_images)
def get_tk_image(self):
return self.tk_images[self.indexCurrentImage]
def update_position(self):
self.canvas.coords(self.image_id, self.ant.x, self.ant.y)
self.canvas.itemconfig(self.image_id, image=self.get_tk_image())
def update_image_angle(self):
self.tk_images[self.indexCurrentImage] = ImageTk.PhotoImage(self.images[self.indexCurrentImage].rotate(self.ant.angle))
self.canvas.itemconfig(self.image_id, image=self.get_tk_image())