def createUnit(pos, color, factionId): coreInstance.addEntity( Entity( pos=pos, collision=Collision(['layerA'], (0.025, 0.025), colisionReaction), friction=0.93, walker=Mobile(speed=0.03), faction=Faction(factionId), mouseControlled=MouseControlled(), deltaVector=[0, 0, 0], render=Render('Cube', 0.05, color=color), hp=Health(100), ))
def createFactory(pos, color, factionId): coreInstance.addEntity( Entity( pos=pos, collision=Collision(['layerA'], (0.025, 0.025), colisionReaction), friction=0.93, walker=Mobile(speed=0.03), faction=Faction(factionId), deltaVector=[0, 0, 0], regularInvoker=RegularInvoker(200, lambda: combinedSpawner(pos, color, factionId)), render=Render('Cube', 0.05, color=color), hp=Health(100), ))
def spawnBomb(self, key): if key != b' ': return ownerEntity = coreInstance.entities[self.ownerId] coreInstance.addEntity( Entity( pos=scramblePosition(ownerEntity.pos, 0.05), render=Render("Model1"), bomb=Bomb(), gravity=Gravity(), friction=0.93, collision=Collision(['layerA'], (0.1, 0.1)), deltaVector=scramblePosition(ownerEntity.deltaVector, 0.05)))
def initSandboxWorld(): coreInstance.addEntity(Entity(pos=[2, 0, 0], collision=Collision(['layerA', 'layerB'], (1, 1)))) coreInstance.addEntity(Entity(pos=[-2, 0, 0], collision=Collision(['layerA', 'layerB'], (1, 1)))) coreInstance.addEntity(Entity(pos=[0, 2, 0], collision=Collision(['layerA', 'layerB'], (1, 1)))) coreInstance.addEntity(Entity(pos=[0, -2, 0], collision=Collision(['layerA', 'layerB'], (1, 1)))) coreInstance.addEntity( Entity( pos=[0, 0, 0], collision=Collision(['layerB'], (0.1, 0.1)), friction=0.93, deltaVector=[0, 0, 0], render=Render('Model1'), hp=Health(100), playerControlled=PlayerControlled(), bomberMan=BomberMan(), deinit=lambdav('print("game over")\n' 'sys.exit()') # gravity=Gravity() ))
def onKeyDown(self, key): entity = coreInstance.entities[self.ownerId] if key == b'a': entity.pos[0] -= 0.035 entity.deltaVector[0] -= 0.085 elif key == b'd': entity.pos[0] += 0.035 entity.deltaVector[0] += 0.085 elif key == b'w': entity.deltaVector[1] += 0.085 entity.pos[1] += 0.015 elif key == b's': entity.deltaVector[1] -= 0.085 entity.pos[1] -= 0.015 elif key == b' ': for _ in range(0,10): coreInstance.addEntity(Entity( pos=scramblePosition(entity.pos, 0.01), friction=0.93, collision=Collision(['layerA'], (0.005, 0.005), collisionCausesPositionRevert), deltaVector=scramblePosition(entity.deltaVector, 0.15), gravity=Gravity([0, -0.01, 0]), render=Render('Cube', 0.01) ))
def initArkanoid(): coreInstance.addEntity(Entity(pos=[-2, -2, 0], collision=Collision(["layerA", "layerB"], (1, 1)))) coreInstance.addEntity(Entity(pos=[2, -2, 0], collision=Collision(["layerA", "layerB"], (1, 1)))) coreInstance.addEntity(Entity(pos=[2, 2, 0], collision=Collision(["layerA", "layerB"], (1, 1)))) coreInstance.addEntity(Entity(pos=[-2, 2, 0], collision=Collision(["layerA", "layerB"], (1, 1)))) coreInstance.addEntity(Entity(pos=[-2, 0, 0], collision=Collision(["layerA", "layerB"], (1, 1)))) coreInstance.addEntity(Entity(pos=[2, 0, 0], collision=Collision(["layerA", "layerB"], (1, 1)))) coreInstance.addEntity(Entity(pos=[0, 2, 0], collision=Collision(["layerA", "layerB"], (1, 1)))) coreInstance.addEntity(Entity(pos=[0, -2, 0], collision=Collision(["layerA", "layerB"], (1, 1)))) def onCollision(entA, entB, vector): pass def onCollisionBall(entA, entB, vector): if abs(vector[0]) > abs(vector[1]): entA.deltaVector[0] *= -0.99 else: entA.deltaVector[1] *= -0.99 entA.deltaVector = scramblePosition(entA.deltaVector, 0.01) entA.deltaVector = [x * 0.04 for x in normalize(entA.deltaVector)] coreInstance.addEntity( Entity( pos=[0, -0.85, 0], collision=Collision(["layerA"], (0.15, 0.05), OnCollisionReaction=onCollisionBall), friction=0.93, deltaVector=[0, 0, 0], render=Render("Cube", dimensions=[0.3, 0.1, 1]), hp=Health(100), playerControlled=PlayerControlled() # gravity=Gravity() ) ) coreInstance.addEntity( Entity( name="Ball", pos=[0, -0.3, 0], collision=Collision(["layerA"], (0.05, 0.05), OnCollisionReaction=onCollisionBall), friction=1.0, deltaVector=[0.05, -0.15, 0], render=Render("Cube", dimensions=[0.1, 0.1, 1]), ) ) def onCollisionBrick(entA, entB, vector): if hasattr(entA, "name") and entA.name == "Brick": coreInstance.deleteEntity(entA.id) for xPos in range(0, 10): for yPos in range(0, 3): coreInstance.addEntity( Entity( name="Brick", pos=[xPos * 0.15 - 0.5, yPos * 0.15 + 0.5, 0], collision=Collision(["layerA"], (0.05, 0.05), OnCollisionReaction=onCollisionBrick), render=Render("Cube", dimensions=[0.1, 0.1, 1]), deltaVector=[0.0, 0.0, 0.0], friction=0.0, ) )
def initPlatformer(): coreInstance.addEntity(Entity(pos=[-2, -2, 0], collision=Collision(['layerA', 'layerB'], (1, 1)))) coreInstance.addEntity(Entity(pos=[2, -2, 0], collision=Collision(['layerA', 'layerB'], (1, 1)))) coreInstance.addEntity(Entity(pos=[2, 2, 0], collision=Collision(['layerA', 'layerB'], (1, 1)))) coreInstance.addEntity(Entity(pos=[-2, 2, 0], collision=Collision(['layerA', 'layerB'], (1, 1)))) coreInstance.addEntity(Entity(pos=[-2, 0, 0], collision=Collision(['layerA', 'layerB'], (1, 1)))) coreInstance.addEntity(Entity(pos=[2, 0, 0], collision=Collision(['layerA', 'layerB'], (1, 1)))) coreInstance.addEntity(Entity(pos=[0, 2, 0], collision=Collision(['layerA', 'layerB'], (1, 1)))) coreInstance.addEntity(Entity(pos=[0, -2, 0], collision=Collision(['layerA', 'layerB'], (1, 1)))) coreInstance.addEntity(Entity( pos=[0.4, 0.2, 0], render=Render('Cube', 0.1), collision=Collision(['layerA', 'layerB'], (0.05, 0.05)))) coreInstance.addEntity(Entity( pos=[-0.4, -0.6, 0], render=Render('Cube', 0.1), collision=Collision(['layerA', 'layerB'], (0.05, 0.05)))) coreInstance.addEntity(Entity( pos=[0.0, -0.3, 0], render=Render('Cube', 0.1), collision=Collision(['layerA', 'layerB'], (0.05, 0.05)))) coreInstance.addEntity( Entity( pos=[0, 0, 0], collision=Collision(['layerB'], (0.05, 0.05), collisionCausesPositionRevert), friction=0.93, deltaVector=[0, 0, 0], render=Render('Cube', 0.1), hp=Health(100), gravity=Gravity([0, -0.01, 0]), playerControlled=PlayerControlled(), deinit=lambdav('print("game over")\n' 'sys.exit()') ))