2021-03-16 18:53:26 +01:00
|
|
|
import pygame
|
2021-03-15 19:04:51 +01:00
|
|
|
from Constants import ROWS, COLS, UP, LEFT, DOWN, RIGHT
|
2021-03-30 21:01:54 +02:00
|
|
|
|
|
|
|
|
2021-03-15 19:04:51 +01:00
|
|
|
class Agent(object):
|
2021-03-27 22:07:55 +01:00
|
|
|
def __init__(self, point):
|
|
|
|
self.point = point
|
2021-03-16 18:53:26 +01:00
|
|
|
self.image = pygame.image.load('Engine/agent.png')
|
2021-04-13 19:32:08 +02:00
|
|
|
self.orientation = 0
|
2021-03-15 19:04:51 +01:00
|
|
|
|
2021-03-27 22:07:55 +01:00
|
|
|
def getPoint(self):
|
|
|
|
return self.point
|
|
|
|
|
2021-03-30 21:01:54 +02:00
|
|
|
def defuse(self, bomb):
|
|
|
|
bomb.isDefused = True
|
|
|
|
|
2021-04-13 19:32:08 +02:00
|
|
|
def rotateImage(self, orientation):
|
|
|
|
angle = self.getAngle(orientation)
|
|
|
|
self.image = pygame.transform.rotate(self.image, 360 - self.orientation)
|
|
|
|
self.image = pygame.transform.rotate(self.image, angle)
|
|
|
|
self.orientation = angle
|
|
|
|
|
|
|
|
def getAngle(self,orientation):
|
|
|
|
if self.point.getX() < orientation.getX():
|
|
|
|
return 0
|
|
|
|
elif self.point.getY() > orientation.getY():
|
2021-04-13 21:27:51 +02:00
|
|
|
return 90
|
2021-04-13 19:32:08 +02:00
|
|
|
elif self.point.getX() > orientation.getX():
|
|
|
|
return 180
|
|
|
|
elif self.point.getY() < orientation.getY():
|
2021-04-13 21:27:51 +02:00
|
|
|
return 270
|
2021-04-13 19:32:08 +02:00
|
|
|
return 0
|
|
|
|
|
2021-03-16 18:53:26 +01:00
|
|
|
# def ifNotOnEdge(self, destination):
|
|
|
|
# if destination == UP:
|
|
|
|
# if self.x - 1 <= 0:
|
|
|
|
# return False
|
|
|
|
# if destination == DOWN:
|
|
|
|
# if self.x + 1 > ROWS:
|
|
|
|
# return False
|
|
|
|
# if destination == LEFT:
|
|
|
|
# if self.y - 1 <= 0:
|
|
|
|
# return False
|
|
|
|
# if destination == RIGHT:
|
|
|
|
# if self.y + 1 > COLS:
|
|
|
|
# return False
|
2021-03-30 21:01:54 +02:00
|
|
|
# return True
|