view tk_ui.py @ 39:ffa51524a60d
Fixed body.Tank.on_wall: it must do nothing
author |
Daniil Alexeyevsky <me.dendik@gmail.com> |
date |
Mon, 20 Dec 2010 19:58:23 +0300 |
parents |
b7a85caedc7f |
children |
f99022ca6336 |
line source
5 from vector import Vector, null
18 class Tank(body.Tank):
20 def on_tick(self, tanks, bullets):
21 if self.user.base_left:
22 self.rotate_base(game.delta_phi)
23 if self.user.base_right:
24 self.rotate_base(-game.delta_phi)
25 if self.user.turret_left:
26 self.rotate_turret(game.delta_phi)
27 if self.user.turret_right:
28 self.rotate_turret(-game.delta_phi)
29 if self.user.accelerate:
30 self.accelerate(game.speed_delta)
31 if self.user.decelerate:
32 self.accelerate(-game.speed_delta)
44 self.user = User(keys)
45 tank = Tank(null, self.user)
46 self.game = Game(bodies, users=[], *game_size)
49 root = self.root = tk.Tk()
50 canvas = self.canvas = tk.Canvas(root, background="black")
51 canvas.pack(fill="both", expand="yes")
52 canvas.bind("<Keypress>", self.on_key)
55 self.game.tanks[0].on_keypress(ev.keysym)
58 self.root.after(100, self.step)
63 self.canvas.delete("all")
64 for body in self.game.bodies:
66 lt = p + Vector(-1,-1) * body.radius
67 rb = p + Vector(1,1) * body.radius
68 if isinstance(body, Tank):
69 t = body.turret * body.radius + p
70 self.canvas.create_oval(lt.x, lt.y, rb.x, rb.y, fill="green")
71 self.canvas.create_line(p.x, p.y, t.x, t.y, fill="yellow", width=2)
72 elif isinstance(body, Bullet):
73 self.canvas.create_oval(lt.x, lt.y, rb.x, rb.y, fill="red")
75 if __name__ == "__main__":