Ejemplo n.º 1
0
    def __init__(self, scene, verticalOffset, row, direction):

        # Initialize the node.

        super().__init__(scene, "Saucer", 500, dropsBonus=True)

        self._collisionClasses = {"Participants"}
        self._collisionExceptions = {"BulletFromEnemy"}

        # Set up the position and the movement.

        self._position = Vector(
            GetScreenDimensions().X - 1,
            verticalOffset + row * (self._dimensions.Y + Parameters.Margin))

        self._movement.Set(Parameters.EnemySpeed, [
            Vector(
                GetScreenDimensions().X - Parameters.Margin -
                self._dimensions.X, self._position.Y),
            Vector(Parameters.Margin, self._position.Y)
        ])

        # Initialize new member variables.

        self.AppendTimer("Shot")
        self.DestroyedByPlayer = False
Ejemplo n.º 2
0
    def Move(self, direction, amount=Parameters.PlayerSpeed):

        self._position.X = clip(
            self._position.X +
            (+amount if Direction.Right == direction else -amount),
            Parameters.Margin,
            GetScreenDimensions().X - Parameters.Margin - self._dimensions.X)
Ejemplo n.º 3
0
	def LoadBackground(self, path):

		loadingPath = str(Path(self.Paths.Backgrounds) / path) if self.Paths.Backgrounds else path

		if not Path(loadingPath).is_file():
			loadingPath += ".jpeg"

		self._backgrounds[path] = transform.smoothscale(image.load(loadingPath), tuple(GetScreenDimensions())).convert_alpha()
Ejemplo n.º 4
0
    def UpdateBonusDescriptionText(self):

        bonusManager = self.Player.GetBonusManager()

        if bonusManager.IsAnyBonusActive():
            description = f"{bonusManager.GetActiveBonusName()} bonus is now active [{bonusManager.GetActiveBonusTime()} s left]"
        else:
            description = "No bonus is currently active"

        if self._bonusLabel.SetText(description):
            self._bonusLabel.SetPosition(
                Vector(
                    GetScreenDimensions().X - Parameters.Margin -
                    self._bonusLabel.GetDimensions().X, Parameters.Margin))
Ejemplo n.º 5
0
def IsOutsideScreen(position, dimensions):

    screenDimensions = GetScreenDimensions()

    isTopOfTheScreen = position.Y < -dimensions.Y
    if isTopOfTheScreen:
        return True

    isBottomOfTheScreen = position.Y > screenDimensions.Y
    if isBottomOfTheScreen:
        return True

    isLeftToTheScreen = position.X < -dimensions.X
    if isLeftToTheScreen:
        return True

    isRightToTheScreen = position.X > screenDimensions.X
    if isRightToTheScreen:
        return True

    return False
Ejemplo n.º 6
0
	def __init__(self, scene, verticalOffset, row, direction):

		# Initialize the node.

		super().__init__(scene, "Enemy", dropsBonus = True)

		self._collisionClasses = {"Participants"}
		self._collisionExceptions = {"BulletFromEnemy"}

		# Set up the position and the movement.

		self._position = Vector(
			-(self._dimensions.X - 1) if Direction.Right == direction else (GetScreenDimensions().X - 1),
			verticalOffset + row * (self._dimensions.Y + Parameters.Margin),
		)

		self._movement.Set(Parameters.EnemySpeed, Vector(direction, 0))

		# Initialize new member variables.

		self.AppendTimer("Shot")
Ejemplo n.º 7
0
    def __init__(self):

        super().__init__("Background")

        # Initialize texts.

        self._scoreLabel = Label(
            self, "No score is currently tracked",
            Resources().GetFont("Exo 2", Parameters.SmallTextHeight))
        self._scoreLabel.SetPosition(
            Vector(Parameters.Margin, Parameters.Margin))

        self._bonusLabel = Label(
            self, "No bonus is currently active",
            Resources().GetFont("Exo 2", Parameters.SmallTextHeight))
        self._bonusLabel.SetPosition(
            Vector(
                GetScreenDimensions().X - Parameters.Margin -
                self._bonusLabel.GetDimensions().X, Parameters.Margin))

        self.Append([self._scoreLabel, self._bonusLabel])

        # Initialize widgets.

        energyBarDimensions = Vector(GetScreenDimensions().X / 3,
                                     Parameters.BarHeight)
        energyBarVerticalPosition = GetScreenDimensions(
        ).Y - energyBarDimensions.Y

        self._bulletEnergyBar = Bar(self, Color.Black, Color.Green,
                                    energyBarDimensions)
        self._bombEnergyBar = Bar(self, Color.Black, Color.Red,
                                  energyBarDimensions)
        self._shieldEnergyBar = Bar(self, Color.Blue, Color.Blue,
                                    energyBarDimensions)

        self._bulletEnergyBar.SetPosition(
            Vector(0 * energyBarDimensions.X, energyBarVerticalPosition))
        self._bombEnergyBar.SetPosition(
            Vector(1 * energyBarDimensions.X, energyBarVerticalPosition))
        self._shieldEnergyBar.SetPosition(
            Vector(2 * energyBarDimensions.X, energyBarVerticalPosition))

        self.Append([
            self._bulletEnergyBar, self._bombEnergyBar, self._shieldEnergyBar
        ])

        # Initialize the player.

        self.Player = Player(self)

        screenDimensions = GetScreenDimensions()
        topRightCornerPosition = screenDimensions - self.Player.GetDimensions()

        self.Player._position = Vector(
            topRightCornerPosition.X / 2,
            topRightCornerPosition.Y - 2 * Parameters.Margin -
            Parameters.BarHeight,
        )

        self.Append(self.Player)

        # Initialize the battle manager.

        self._battleManager = BattleManager(
            self, 2 * Parameters.Margin + self._scoreLabel.GetDimensions().Y)