def onUpdate(self): # print(self.gameObject.transform.position / tileSizeNum) self.gameObject.state.onUpdate() if self.gameObject.transform.position.y < 0: World.destroy(self.gameObject)
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()
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
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
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)
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)
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)
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)
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)
def f(): DrawingManager().remove(self) DrawingManager().GUI.remove(self) World.destroy(self)
def restart(): Player.lives = 0 World.destroy(World.findByTag("Player")[0])
def onCollisionStay(self, other): if "Player" in other.tags and self.gameObject.popped: World.destroy(self.gameObject) Resources.powerup.play().volume = 0.05
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
def onUpdate(self): if self.gameObject.transform.position.y < 0: World.destroy(self.gameObject)
def onDestroy(self): for trigger in self.triggers: World.destroy(trigger)
def onCollisionStay(self, other): if "Player" in other.tags and self.gameObject.popped: World.destroy(self.gameObject)
def onCollisionEnter(self, other, side): if self.gameObject.tagTrigger in other.tags: self.gameObject.callback() World.destroy(self.gameObject)