Пример #1
0
    def onUpdate(self):
        # print(self.gameObject.transform.position / tileSizeNum)

        self.gameObject.state.onUpdate()

        if self.gameObject.transform.position.y < 0:
            World.destroy(self.gameObject)
Пример #2
0
    def bigHit(self):
        super().bigHit()
        if self.itemClass is None:
            World.destroy(self)

            velX = 50

            World.instantiate(BrickPieces, self.transform.position - (4, 4),
                              Resources.theme[self.theme]["brickPieces"][0],
                              (-velX, 250))
            World.instantiate(BrickPieces,
                              self.transform.position + (8, 0) - (4, 4),
                              Resources.theme[self.theme]["brickPieces"][1],
                              (velX, 250))
            World.instantiate(BrickPieces,
                              self.transform.position + (0, 8) - (4, 4),
                              Resources.theme[self.theme]["brickPieces"][2],
                              (-velX, 300))
            World.instantiate(BrickPieces,
                              self.transform.position + (8, 8) - (4, 4),
                              Resources.theme[self.theme]["brickPieces"][3],
                              (velX, 300))

            Resources.breakblock.play().volume = 0.05

        else:
            self.trigger()

        if not self.triggered:
            self.getScript(HitUpperEnemies).hit()

        self.getCoinAbove()
Пример #3
0
        def onCollisionEnter(self, other, side):
            if self.gameObject.aggressive:
                if ("KoopaTroopa" in other.tags and "Bowling" in other.tags) or \
                  ("Fireball" in other.tags) or \
                  ("Player" in other.tags and "Invincible" in other.tags):
                    from gameengine.core.World import World
                    World.destroy(self.gameObject)

                    Resources.kick.play().volume = 0.05
Пример #4
0
    def loadScene(self, Class: Type[Scene], *args, **kwargs):
        for gameObject in World.gameObjects:
            if not gameObject.keepBetweenScenes:
                World.destroy(gameObject)

        scene = Class()
        scene.mainCamera = World.instantiate(Camera, (0, 0))
        scene.mainCamera.tags.append("MainCamera")
        scene.onLoad(*args, **kwargs)
        self.currentScene = scene
Пример #5
0
 def getCoinAbove(self):
     from gameengine.managers.CollisionManager import CollisionManager
     above: set = CollisionManager().quadtree.intersect(
         bbox=Rect(self.transform.position + (0, 20), 1, 1).bbox())
     if above:
         go = above.pop().gameObject
         if "Coin" in go.tags:
             from game.blocks.QuestionBlock import RotatingCoin
             World.instantiate(RotatingCoin, (go.transform.position))
             World.destroy(go)
Пример #6
0
    def playerSmash(self):
        self.getComponent(SpriteRenderer).setImage(
            Resources.theme[self.theme]["goombaSmashed"])
        self.removeComponent(self.getComponent(Collider))
        self.removeComponent(self.getComponent(Physics))
        World.destroy(self, 1000)

        Resources.stomp.play().volume = 0.05

        World.findByTag("Score")[0].add(100)
Пример #7
0
    def flip(self, flipSide):
        super().flip(flipSide)

        self.removeComponent(self.getComponent(Collider))

        if flipSide == Sides.LEFT_SIDE:
            self.getComponent(Physics).velocity.set(-70, 250)
        else:
            self.getComponent(Physics).velocity.set(70, 250)

        spriteRenderer = self.getComponent(SpriteRenderer)
        spriteRenderer.setImage(Resources.theme[self.theme]["goombaFlipped"])
        spriteRenderer.sprite.scale_y = -1

        World.findByTag("Score")[0].add(100)

        World.destroy(self, 1000)
Пример #8
0
	def flip(self, flipSide):
		super().flip(flipSide)

		self.removeComponent(self.getComponent(Collider))

		alwaysOnPlatform = self.getScript(AlwaysOnPlatform)
		if alwaysOnPlatform is not None:
			self.removeScript(alwaysOnPlatform)

		if flipSide == Sides.LEFT_SIDE:
			self.getComponent(Physics).velocity.set(-50, 250)
		else:
			self.getComponent(Physics).velocity.set(50, 250)

		spriteRenderer = self.getComponent(SpriteRenderer)
		# spriteRenderer.setImage(Resources.goombaFlipped)
		spriteRenderer.sprite.scale_y = -1

		World.findByTag("Score")[0].add(200)

		World.destroy(self, 1000)
Пример #9
0
        def onCollisionEnter(self, other, side):
            if "Solid" in other.tags:
                if side == Sides.BOTTOM_SIDE:
                    self.gameObject.getComponent(Physics).velocity.y = 200

                else:
                    World.destroy(self.gameObject)

                    Resources.bump.play().volume = 0.05

            elif "Platform" in other.tags:
                if side == Sides.BOTTOM_SIDE:
                    self.gameObject.getComponent(Physics).velocity.y = 200

            elif "Enemy" in other.tags:
                if "PiranhaPlant" in other.tags:
                    if other.aggressive:
                        World.destroy(self.gameObject)

                else:
                    World.destroy(self.gameObject)
Пример #10
0
 def f():
     DrawingManager().remove(self)
     DrawingManager().GUI.remove(self)
     World.destroy(self)
Пример #11
0
 def restart():
     Player.lives = 0
     World.destroy(World.findByTag("Player")[0])
Пример #12
0
		def onCollisionStay(self, other):
			if "Player" in other.tags and self.gameObject.popped:
				World.destroy(self.gameObject)

				Resources.powerup.play().volume = 0.05
Пример #13
0
        def onCollisionEnter(self, other, side):
            if "Player" in other.tags:
                World.destroy(self.gameObject)
                World.findByTag("Coins")[0].increment()

                Resources.coin.play().volume = 0.05
Пример #14
0
	def onUpdate(self):
		if self.gameObject.transform.position.y < 0:
			World.destroy(self.gameObject)
Пример #15
0
	def onDestroy(self):
		for trigger in self.triggers:
			World.destroy(trigger)
Пример #16
0
 def onCollisionStay(self, other):
     if "Player" in other.tags and self.gameObject.popped:
         World.destroy(self.gameObject)
Пример #17
0
        def onCollisionEnter(self, other, side):
            if self.gameObject.tagTrigger in other.tags:
                self.gameObject.callback()

                World.destroy(self.gameObject)