forked from pysgf/BrainTank
-
Notifications
You must be signed in to change notification settings - Fork 0
/
vehicle.py
68 lines (53 loc) · 1.98 KB
/
vehicle.py
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/usr/bin/python
# -*- coding: utf-8 -*-
###############################################################################
# Python AI Battle
#
# Copyright 2011 Matthew Thompson
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
###############################################################################
from PyQt5.QtGui import QPixmap
import state
class Bullet:
"""Draws and handles bullet actions."""
def __init__(self, fired_by, facing):
self.speed = 2
self.facing = facing
self.fired_by = fired_by
self.pixmap = QPixmap("tank/bullet_%s.png" % state.facing_to_string(self.facing))
class Tank:
"""Draws and handles tank actions."""
RED = "red"
YELLOW = "yellow"
BLUE = "blue"
def __init__(self, world, name, color, brain):
self.world = world
self.name = name
self.color = color
self.brain = brain
self.facing = state.FACING_RIGHT
self._images = dict()
self.state = state.TANK_IDLE
# speed is per second
self.speed = 1
self.reduced_speed = self.speed *0.5
@property
def pixmap(self):
if self.facing not in self._images:
pix = QPixmap("tank/%s_%s.png" % (self.color, state.facing_to_string(self.facing)))
self._images[self.facing] = pix
return self._images[self.facing]
def get_next_action(self):
return self.brain.think()