コード例 #1
0
 def __init__(self,
              windowSize=Vector2(1280, 720),
              initSize=Vector2(12800, 7200),
              initPos=Vector2(0, 0)):
     self.pos = initPos
     self.size = initSize
     self.windowSize = windowSize
コード例 #2
0
def spawn_asteroid():

    if player is None:
        return

    screen_center = Vector2(screen_size[0] / 2, screen_size[0] / 2)

    spawn_radius = max(screen_center.x, screen_center.y)

    spawn_x = uniform(-1, 1)
    spawn_y = uniform(-1, 1)
    spawn_direction = Vector2(spawn_x, spawn_y)
    spawn_direction.normalize()

    spawn_point = screen_center + spawn_direction * spawn_radius

    a = Asteroid(player, 250)

    a.position = spawn_point
    a.color = (0, 0, 255)

    size = randint(8, 20)
    a.graphicsBounds.radius = size
    a.collider.radius = size
    a.max_speed = 280

    asteroids.append(a)
コード例 #3
0
    def checkBallCollisions(self):
        ball1 = self.whiteBall
        ball2 = self.redBall

        dist = self.whiteBall.pos.dist(self.redBall.pos)
        if dist <= self.whiteBall.radius + self.redBall.radius:

            power = (abs(ball1.vel.x) + abs(ball1.vel.y)) + (abs(ball2.vel.x) +
                                                             abs(ball2.vel.y))
            power = power * 0.00482

            opposite = ball1.pos.y - ball2.pos.y
            adjacent = ball1.pos.x - ball2.pos.x
            rotation = math.atan2(opposite, adjacent)

            # ball1.moving = True
            # ball2.moving = True

            velocity2 = Vector2(90 * math.cos(rotation + math.pi) * power,
                                90 * math.sin(rotation + math.pi) * power, 0.0)
            ball2.addForce(velocity2)
            ball2.acc.mult(0.97, 0.97, 0.97)

            velocity1 = Vector2(90 * math.cos(rotation) * power,
                                90 * math.sin(rotation) * power, 0.0)
            ball1.addForce(velocity1)
            ball1.acc.mult(0.97, 0.97, 0.97)

            self.que.ballsHit = True
コード例 #4
0
    def update(self) -> None:
        bs = self.brickHandler.getBricks()
        for power in self.powerUps:
            power.update(self.paddle, self.balls)
        for ball in self.balls:
            ball.move(bs, self.paddle)
        for bk in bs:
            if not bk.active:
                if randint(0, 5) == 1:
                    self.powerUps.append(
                        spawnRandom((bk.position + bk.size / 2)))
        self.balls = [bl for bl in self.balls if bl.active]
        self.score += self.brickHandler.update()
        self.powerUps = [power for power in self.powerUps if power.active]

        if (len(self.balls) <= 0):
            self.lives -= 1
            if self.lives < 1:
                self.over()
            else:
                self.start()
        if (len(bs) <= 0):
            self.over()

        if self.inputHandler.getKey('q'):
            self.over()
        elif self.inputHandler.getKey('a'):
            self.paddle.move(Vector2(-2, 0), self.balls)
        elif self.inputHandler.getKey('d'):
            self.paddle.move(Vector2(2, 0), self.balls)
        elif self.inputHandler.getKey(' '):
            self.paddle.release(self.balls)
        elif self.inputHandler.getKey('x'):
            self.over()
コード例 #5
0
ファイル: base2d.py プロジェクト: CoolCat467/Checkers
    def __init__(self, world, name, image, **kwargs):
        self.world = world
        self.name = name
        self.image = image
        self.base_image = image

        self.location = Vector2()
        self.destination = Vector2()
        self.speed = 0
        self.scan = 100
        if not self.image is None:
            self.scan = int(get_surf_len(self.image) / 2) + 2

        self.showhitbox = False
        self.show = True
        self.doprocess = True

        keys = list(kwargs.keys())
        if 'location' in keys:
            self.location = Vector2(*kwargs['location'])
        if 'destination' in keys:
            self.location = Vector2(*kwargs['destination'])
        if 'speed' in keys:
            self.speed = kwargs['speed']
        if 'hitbox' in keys:
            self.showhitbox = bool(kwargs['hitbox'])
        if 'scan' in keys:
            self.scan = int(kwargs['scan'])
        if 'show' in keys:
            self.show = bool(kwargs['show'])

        self.brain = StateMachine()

        self.id = 0
コード例 #6
0
ファイル: Ray.py プロジェクト: IvanLudvig/PyMedUltra
 def __init__(self,
              pos: Vector2 = Vector2(),
              velocity: Vector2 = Vector2(),
              material=-1,
              intensity=1.0,
              nextEncounter=math.inf,
              obstacle_number=0,
              vertice_number=0,
              left=None,
              right=None,
              invalid=0,
              virtual_neighbors_left=np.array([]),
              virtual_neighbors_right=np.array([])):
     conf = 'res/config.json'
     with open(conf) as jf:
         configuration = json.load(jf)
         self.VISIBILITY_THRESHOLD = configuration["Constants"][
             "VISIBILITY_THRESHOLD"]
         self.SENSORS = configuration["Constants"]["SENSORS"]
         self.X = configuration["Constants"]["X"]
         self.Y = configuration["Constants"]["Y"]
         self.MINLEN = configuration["Constants"]["MINLEN"]
         self.DETERIORATION = configuration["Constants"]["DETERIORATION"]
     self.pos = pos
     self.velocity = velocity
     self.material = material
     self.intensity = intensity
     self.nextEncounter = nextEncounter
     self.obstacle_number = obstacle_number
     self.vertice_number = vertice_number
     self.left = left
     self.right = right
     self.invalid = invalid
     self.virtual_neighbors_left = virtual_neighbors_left
     self.virtual_neighbors_right = virtual_neighbors_right
コード例 #7
0
def unit_test():
    '''unit test'''
    vec2a = Vector2([1, 2])
    vec2b = Vector2([3, 4])

    print "\nAddition"
    add = vec2a.add(vec2b)
    add.print_info()

    print "\nSubtraction"
    sub = vec2a.subtract(vec2b)
    sub.print_info()

    print "\nScalar Multiplication"
    mult = vec2a.scalarmult(5)
    mult.print_info()

    print "\nMagnitude"
    print vec2a.magnitude()

    print "\nNormalize"
    norm = vec2a.normalize()
    norm.print_info()

    print "\nDot Product"
    print vec2a.dotproduct(vec2b)
コード例 #8
0
 def eat(self):
     headPosition = self.getLast().pos
     headDirection = self.getLast().direction
     newDirection = headDirection.multiply(30)
     newPosition = headPosition.sub(newDirection)
     self.bodyParts.append(
         SnakePart(self.scene, Vector2(0, 0), Vector2(0, 0), newPosition,
                   self.size, self.color))
コード例 #9
0
    def __init__(self, particle_count, max_life):

        self.particles = list()

        for i in xrange(0, particle_count):
            self.particles.append(Particle(1, Vector2(0, 0), Vector2(0, 0)))

        self.life = max_life
コード例 #10
0
 def start():
     self.winScene.objects["titleDisplay"] = Text(
         self.winScene, Vector2(180, 70), Vector2(67, 200),
         pygame.Color(255, 255, 0), "Assets/Recreativos.otf", "You Won")
     self.winScene.objects["pressStartDisplay"] = Text(
         self.winScene, Vector2(170, 300), Vector2(42, 200),
         pygame.Color(255, 255, 255), "Assets/Recreativos.otf",
         "PRESS SPACE BAR")
コード例 #11
0
 def start():
     self.gameOverScene.objects["titleDisplay"] = Text(
         self.homeScene, Vector2(180, 70), Vector2(67, 200),
         pygame.Color(255, 0, 0), "Assets/Recreativos.otf", "Game Over")
     # self.gameOverScene.objects["killDisplay"] = Text(self.homeScene, Vector2(180, 500), Vector2(67, 200), pygame.Color(255, 0, 0), "Assets/Recreativos.otf","Player waskilled by" + self.mainScene.objects.gameObject.getType())
     self.gameOverScene.objects["pressStartDisplay"] = Text(
         self.homeScene, Vector2(170, 300), Vector2(42, 200),
         pygame.Color(255, 255, 255), "Assets/Recreativos.otf",
         "PRESS SPACE BAR")
コード例 #12
0
 def start(self) -> None:
     self.score = 0
     self.balls = []
     self.powerUps = []
     self.paddle = Paddle(Vector2(BOARD_WIDTH // 2, BOARD_HEIGHT - 3), 10)
     self.balls.append(
         Ball(Vector2(BOARD_WIDTH // 2 + 1, BOARD_HEIGHT - 4),
              Vector2(-1, 1)))
     self.brickHandler = BrickHandler(self.board)
コード例 #13
0
    def __init__(self,
                 resolution,
                 background=None,
                 logo=None,
                 playerMenuItems=None):
        super().__init__(resolution, background, logo)

        self.PlayerMenuItems = playerMenuItems if playerMenuItems is not None \
            else [TwoPlayers(Vector2(0, 0)), ThreePlayers(Vector2(0, 70)), FourPlayers(Vector2(0, 140))]
コード例 #14
0
    def __init__(self, life, position, velocity):

        super(Particle, self).__init__()

        self.life = life
        self.position = Vector2(position.x, position.y)
        self.velocity = Vector2(velocity.x, velocity.y)

        self.active = False
コード例 #15
0
    def __init__(self,
                 resolution: Vector2,
                 background=None,
                 logo=None,
                 startMenuItems=None):
        super().__init__(resolution, background, logo)

        self.StartMenuItems = startMenuItems if startMenuItems is not None \
            else [StartGame(Vector2(0, 0)), Settings(Vector2(0, 70)), Rules(Vector2(0, 140)), LoadGame(Vector2(0, 210)),
                  ExitGame(Vector2(0, 280))]
コード例 #16
0
    def __init__(self, game, playerInfoLabels=None):
        self.Size = Vector2(
            (game.Settings.Resolution.X - game.Settings.GetMapSize().X) // 2,
            game.Settings.Resolution.Y)
        self.Position = Vector2(
            (game.Settings.Resolution.X - game.Settings.GetMapSize().X) // 2 +
            game.Settings.GetMapSize().X, 0)

        self.PlayerInfoLabels = playerInfoLabels if playerInfoLabels is not None \
            else [PlayerName(), PlayerMoney(), PlayerTotalUnits(), PlayerNextTurnIncome(), PlayerRemainingMoves()]
コード例 #17
0
ファイル: MyPygame.py プロジェクト: dylanupde/MyPygameRepo2
def buildObstacles(graph):
	# Random Obstacles
	for i in range(Constants.NBR_RANDOM_OBSTACLES):
		start = Vector2(randrange(0, Constants.WORLD_WIDTH), randrange(0, Constants.WORLD_HEIGHT))
		graph.placeObstacle(start, (0, 0, 0))
		for j in range(randrange(Constants.NBR_RANDOM_OBSTACLES)):
			start += Vector2((randrange(3) - 1) * Constants.GRID_SIZE, (randrange(3) - 1) * Constants.GRID_SIZE)
			while(start.x >= Constants.WORLD_WIDTH - Constants.GRID_SIZE or start.y >= Constants.WORLD_HEIGHT - Constants.GRID_SIZE):
				start += Vector2((randrange(3) - 1) * Constants.GRID_SIZE, (randrange(3) - 1) * Constants.GRID_SIZE)
			graph.placeObstacle(start, (0, 0, 0))
コード例 #18
0
	def __init__(self, x, y, r, white):
		self.pos = Vector2(x, y, 0)
		self.radius = r
		self.isWhite = white
		self.vel = Vector2(0, 0, 0)
		self.acc = Vector2(0, 0, 0)
		self.friction = 0.007
		self.mass = 1.0
		self.startx = x
		self.starty = y
コード例 #19
0
    def __init__(self,
                 resolution: Vector2,
                 background=None,
                 logo=None,
                 winner=''):
        super().__init__(resolution, background, logo)

        self.ExitButton = ExitGame(Vector2(0, 210))
        self.StartMenuButton = StartMenuButton(Vector2(0, 100))
        self.Winner = winner
コード例 #20
0
ファイル: GameEntity.py プロジェクト: cgoxopx/AgentVillage
 def __init__(self, name, world, image):
     self.world = world
     self.name = name
     self.image = image
     self.speed = 0
     self.location = Vector2(0, 0)
     self.destination = Vector2(0, 0)
     self.brain = StateMachine()
     self.id = 0
     self.main_tower = None
コード例 #21
0
 def start():
     # breakpoint()
     self.homeScene.objects["titleDisplay"] = Text(
         self.homeScene, Vector2(6, 70), Vector2(67, 200),
         pygame.Color(255, 255, 255), "Assets/Recreativos.otf",
         "Snake Adventures")
     self.homeScene.objects["pressStartDisplay"] = Text(
         self.homeScene, Vector2(170, 300), Vector2(42, 200),
         pygame.Color(255, 255, 255), "Assets/Recreativos.otf",
         "PRESS SPACE BAR")
コード例 #22
0
ファイル: Agent.py プロジェクト: dylanupde/MyPygameRepo2
 def __init__(self, inputPos, inputSpeed, inputSize):
     # Set boundingRect BEFORE the parent calls CalculateCenter so it doesn't ask where tf the variable is
     self.boundingRect = None
     self.position = inputPos
     self.size = inputSize
     self.maxSpeed = inputSpeed
     self.velocity = Vector2(0, 0)
     self.center = Vector2(0, 0)
     self.CalculateCenter()
     self.myRect = None
     self.hasDrawn = False
コード例 #23
0
ファイル: Ray.py プロジェクト: IvanLudvig/PyMedUltra
 def getRefracted(self, obstacle: Obstacle) -> Ray:
     vel, intensity = Vector2().getRefracted(
         A=obstacle.getPos(self.vertice_number),
         B=obstacle.getPos(self.vertice_number + 1),
         velocity=self.velocity,
         relativeSpeed=obstacle.getRelativeSpeed(),
         intensity=self.intensity)
     return Ray(
         Vector2(self.pos.getX() + (1.00015 * self.velocity.getX()),
                 self.pos.getY() + (1.00015 * self.velocity.getY())), vel,
         intensity)
コード例 #24
0
ファイル: Ray.py プロジェクト: IvanLudvig/PyMedUltra
 def virtualHandler(self, ray: Ray, isRightNeighbor: bool) -> None:
     if (ray.getMaterial() == self.getMaterial()
             and Vector2().scalar(ray.getVelocity(), self.getVelocity()) > 0
             and Vector2().length(ray.getPos(),
                                  self.getPos()) < 5 * self.MINLEN):
         if self.getLeft() and isRightNeighbor:
             ray.setRight(self)
             self.setLeft(ray)
         elif not self.getRight() and not isRightNeighbor:
             ray.setLeft(self)
             self.setRight(ray)
             self.setNextEncounter(math.inf)
コード例 #25
0
    def exitRoot(self, ctx: LecParser.RootContext):
        area = self.packer.pack(self.objects)

        area.expand(Vector2(2 * self.packer.padding))

        self.engine.set_size(int(area.width), int(area.height))

        # TODO use composite object
        for obj in self.objects:
            obj.translate(Vector2(self.packer.padding))
            obj.draw()

        self.engine.show()
コード例 #26
0
    def __init__(self, x, y, width, height, sprite):
        CompContainer.__init__(self)
        self.x = x
        self.y = y
        self.width = width
        self.height = height
        self.rect = pygame.Rect(x, y, width, height)
        self.sprite = sprite
        self.position = Vector2(x, y)
        self.velocity = Vector2()
        self.destination = None

        self.add_component(self.sprite)
コード例 #27
0
ファイル: Camera.py プロジェクト: meabefir/pygame-oop
class Camera:
    follows = None
    size = Vector2(GameData.window_size[0], GameData.window_size[1])
    position = Vector2(0, 0)

    @staticmethod
    def update():
        if Camera.follows is not None:
            Camera.position = (Camera.follows.position - Camera.size / 2).to_int()

    @staticmethod
    def set_follows(comp):
        Camera.follows = comp
コード例 #28
0
    def __init__(self, range, position, velocity):

        # Construct parent so we have all of the Entities properties
        # like position, velocity...
        super(Bullet, self).__init__()

        # How far the bullet travels
        self.range = range

        self.position = Vector2(position.x, position.y)
        self.velocity = Vector2(velocity.x, velocity.y)

        # The time needed to travel a certain range
        self.life = range / self.velocity.magnitude()
コード例 #29
0
 def __init__(self, inputPos, inputSpeed, inputSize):
     super().__init__(inputPos, inputSpeed, inputSize)
     self.velocity = Vector2(random.random() - 0.5,
                             random.random() - 0.5).Normalized()
     self.angle = math.atan2(-self.velocity.y, self.velocity.x)
     self.angle = math.degrees(self.angle)
     self.currentSpeed = 0
     self.linearAcceleration = 0
     self.angularVelocity = 0
     self.color = Constants.ENEMY_COLOR
     self.originalArtSurface = pygame.image.load("sheep.png")
     self.myNeighborsList = []
     self.dogForce = Vector2(0, 0)
     self.linesToDrawList = []
コード例 #30
0
    def pursuit(self):
        if self.target == None:
            return Vector2(0, 0)
        directionAux = Vector2(0, 0)
        if self.pos.x < self.target.pos.x:
            directionAux.x = 1
        elif self.pos.x > self.target.pos.x:
            directionAux.x = -1

        if self.pos.y < self.target.pos.y:
            directionAux.y = 1
        elif self.pos.y > self.target.pos.y:
            directionAux.y = -1
        return directionAux