rev |
line source |
olya_zol@2
|
1 import vector |
olya_zol@3
|
2 import math |
olya_zol@3
|
3 delta_phi = math.pi # deltha phi = math.pi |
olya_zol@3
|
4 speed_delta = 1 |
olya_zol@3
|
5 delta_t = 1 |
olya_zol@3
|
6 max_velocity = 2 |
olya_zol@2
|
7 |
olya_zol@1
|
8 class Body(object): |
olya_zol@3
|
9 def __init__(self, position, velocity, next_position, radius): |
olya_zol@1
|
10 self.position = position |
olya_zol@1
|
11 self.velocity = velocity |
olya_zol@1
|
12 self.next_position = next_position |
olya_zol@1
|
13 self.radius = radius |
olya_zol@1
|
14 |
olya_zol@1
|
15 |
olya_zol@1
|
16 class Tank(Body): |
olya_zol@1
|
17 def __init__(self, strength, turret, base_orientation, game, user): |
olya_zol@1
|
18 self.strength = strength |
olya_zol@1
|
19 self.turret = turret |
olya_zol@3
|
20 self.base_orientation = base_orientation # 1 or -1 |
olya_zol@1
|
21 self.game = game |
olya_zol@1
|
22 self.user = user |
olya_zol@3
|
23 |
olya_zol@3
|
24 def rotate_base(tank, angle): |
olya_zol@3
|
25 tank.base_velocity.phi += angle |
olya_zol@3
|
26 tank.velocity.phi *= tank.base_orientation |
olya_zol@1
|
27 |
olya_zol@2
|
28 def rotate_turret(tank, angle): |
olya_zol@1
|
29 pass |
olya_zol@1
|
30 |
olya_zol@2
|
31 def accelerate(tank, speed_delta): |
olya_zol@3
|
32 tank.velocity.rho += speed_delta * delta_t |
olya_zol@3
|
33 if tank.velocity.rho > max_velocity: |
olya_zol@3
|
34 tank.velocity.rho = max_velocity |
olya_zol@1
|
35 |
olya_zol@2
|
36 def fire(tank): |
olya_zol@1
|
37 pass |
olya_zol@1
|
38 |
olya_zol@2
|
39 def on_tick(tank,other_tanks, bullets): |
olya_zol@3
|
40 if tank.user.base_left == True: |
olya_zol@3
|
41 tank.rotate_base(delta_phi) |
olya_zol@3
|
42 if tank.user.base_right == True: |
olya_zol@3
|
43 tank.rotate_base(-1*delta_phi) |
olya_zol@3
|
44 if tank.user.accelerate == True: |
olya_zol@3
|
45 tank.accelerate(speed_delta) |
olya_zol@1
|
46 |
olya_zol@2
|
47 def on_spawn(tank): |
olya_zol@1
|
48 pass |
olya_zol@1
|
49 |
olya_zol@2
|
50 def on_death(tank) : |
olya_zol@1
|
51 pass |
olya_zol@1
|
52 |
olya_zol@2
|
53 def on_hit(tank,bullet): |
olya_zol@1
|
54 pass |
olya_zol@1
|
55 |
olya_zol@1
|
56 def on_collision(tank): |
olya_zol@1
|
57 pass |
olya_zol@1
|
58 |
olya_zol@2
|
59 def on_wall(tank): |
olya_zol@1
|
60 pass |
olya_zol@1
|
61 |
olya_zol@1
|
62 class Bullet(Body): |
olya_zol@1
|
63 pass |