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@6
|
17 radius = 1 |
olya_zol@1
|
18 def __init__(self, strength, turret, base_orientation, game, user): |
olya_zol@6
|
19 Body.__init__(self, ...) |
olya_zol@1
|
20 self.strength = strength |
olya_zol@1
|
21 self.turret = turret |
olya_zol@3
|
22 self.base_orientation = base_orientation # 1 or -1 |
olya_zol@1
|
23 self.game = game |
olya_zol@1
|
24 self.user = user |
olya_zol@3
|
25 |
olya_zol@6
|
26 |
olya_zol@6
|
27 # def rotate_base(tank, angle): |
olya_zol@6
|
28 # tank.velocity.phi += angle |
olya_zol@6
|
29 # tank.velocity.phi *= tank.base_orientation |
olya_zol@1
|
30 |
olya_zol@2
|
31 def rotate_turret(tank, angle): |
olya_zol@1
|
32 pass |
olya_zol@1
|
33 |
olya_zol@2
|
34 def accelerate(tank, speed_delta): |
olya_zol@3
|
35 tank.velocity.rho += speed_delta * delta_t |
olya_zol@3
|
36 if tank.velocity.rho > max_velocity: |
olya_zol@3
|
37 tank.velocity.rho = max_velocity |
olya_zol@1
|
38 |
olya_zol@2
|
39 def fire(tank): |
olya_zol@1
|
40 pass |
olya_zol@1
|
41 |
olya_zol@2
|
42 def on_tick(tank,other_tanks, bullets): |
olya_zol@3
|
43 if tank.user.base_left == True: |
olya_zol@3
|
44 tank.rotate_base(delta_phi) |
olya_zol@3
|
45 if tank.user.base_right == True: |
olya_zol@3
|
46 tank.rotate_base(-1*delta_phi) |
olya_zol@3
|
47 if tank.user.accelerate == True: |
olya_zol@3
|
48 tank.accelerate(speed_delta) |
olya_zol@1
|
49 |
olya_zol@2
|
50 def on_spawn(tank): |
olya_zol@1
|
51 pass |
olya_zol@1
|
52 |
olya_zol@2
|
53 def on_death(tank) : |
olya_zol@1
|
54 pass |
olya_zol@1
|
55 |
olya_zol@2
|
56 def on_hit(tank,bullet): |
olya_zol@1
|
57 pass |
olya_zol@1
|
58 |
olya_zol@1
|
59 def on_collision(tank): |
olya_zol@1
|
60 pass |
olya_zol@1
|
61 |
olya_zol@2
|
62 def on_wall(tank): |
olya_zol@1
|
63 pass |
olya_zol@1
|
64 |
olya_zol@1
|
65 class Bullet(Body): |
olya_zol@6
|
66 radius = 0.1 |
olya_zol@1
|
67 pass |