private void Init(bool showMapName, Vector2 pos, string name, string targetMap, string targetSpawn, FutileFourDirectionBaseObject.Direction exitDirection) { this.showMapName = showMapName; this.pos = pos; this.name = name; this.targetMap = targetMap; this.targetSpawn = targetSpawn; this.exitDirection = exitDirection; }
public SpawnPoint(bool showMapName, float x, float y, string name, string targetMap, string targetSpawn, FutileFourDirectionBaseObject.Direction exitDirection) { Init(showMapName, new Vector2(x, y), name, targetMap, targetSpawn, exitDirection); }
private void EnemyTransition(FutileFourDirectionBaseObject.Direction dir, FutilePlatformerBaseObject enemy) { if (enemy is Enemy) { Enemy e = ((Enemy)enemy); e.SetDirection(dir); e.PlayAnim(); } else if (enemy is Ninja) { Ninja n = ((Ninja)enemy); n.SetDirection(dir); n.PlayAnim(); } Tween t = null; float randAmount = 8.0f; float minAmount = 1.0f; switch (dir) { case FutileFourDirectionBaseObject.Direction.DOWN: enemy.y += collisionTilemap.tileHeight * 2f; enemy.x += RXRandom.Float() * 2 * collisionTilemap.tileWidth - collisionTilemap.tileWidth; t = Go.to(enemy, minAmount, new TweenConfig().setEaseType(EaseType.QuadOut).setDelay(RXRandom.Float() * randAmount).floatProp("y", -collisionTilemap.tileHeight * 2f, true)); break; case FutileFourDirectionBaseObject.Direction.UP: enemy.y -= collisionTilemap.tileHeight * 2f; enemy.x += RXRandom.Float() * 2 * collisionTilemap.tileWidth - collisionTilemap.tileWidth; t = Go.to(enemy, minAmount, new TweenConfig().setEaseType(EaseType.QuadOut).setDelay(RXRandom.Float() * randAmount).floatProp("y", collisionTilemap.tileHeight * 2f, true)); break; case FutileFourDirectionBaseObject.Direction.RIGHT: enemy.x -= collisionTilemap.tileWidth * 2f; enemy.y += RXRandom.Float() * 2 * collisionTilemap.tileHeight - collisionTilemap.tileHeight; t = Go.to(enemy, minAmount, new TweenConfig().setEaseType(EaseType.QuadOut).setDelay(RXRandom.Float() * randAmount).floatProp("x", collisionTilemap.tileWidth * 2f, true)); break; case FutileFourDirectionBaseObject.Direction.LEFT: enemy.x += collisionTilemap.tileWidth * 2f; enemy.y += RXRandom.Float() * 2 * collisionTilemap.tileHeight - collisionTilemap.tileHeight; t = Go.to(enemy, minAmount, new TweenConfig().setEaseType(EaseType.QuadOut).setDelay(RXRandom.Float() * randAmount).floatProp("x", -collisionTilemap.tileWidth * 2f, true)); break; } t.setOnCompleteHandler((AbstractTween tw) => { if (enemy is Enemy) { Enemy e = ((Enemy)enemy); e.currentState = Enemy.State.IDLE; e.StateCount = 1; } else if (enemy is Ninja) { Ninja n = ((Ninja)enemy); n.currentState = Ninja.State.IDLE; n.StateCount = 1; } }); }
public SpawnPoint(bool showMapName, Vector2 pos, string name, string targetMap, string targetSpawn, FutileFourDirectionBaseObject.Direction exitDirection) { Init(showMapName, pos, name, targetMap, targetSpawn, exitDirection); }
private void SpawnParticles(FutileFourDirectionBaseObject.Direction dir, int numParticles = 10) { for (int i = 0; i < numParticles; i++) { Particle.ParticleOne p = Particle.ParticleOne.getParticle(); Vector2 vel = new Vector2(-RXRandom.Float() * 20 + 10, -RXRandom.Float() * 20); Vector2 acc = new Vector2(-vel.x * (RXRandom.Float() * .5f), -vel.y * -1.0f); Vector2 pos = new Vector2(RXRandom.Float() * 16 - 8, 8); switch (dir) { case FutileFourDirectionBaseObject.Direction.DOWN: vel.y *= -1; acc.y *= -1; break; case FutileFourDirectionBaseObject.Direction.RIGHT: float tempX = vel.x; vel.x = vel.y; vel.y = tempX; tempX = acc.x; acc.x = acc.y; acc.y = tempX; tempX = pos.x; pos.x = pos.y; pos.y = tempX; pos.x *= -1; break; case FutileFourDirectionBaseObject.Direction.UP: pos.y *= -1; break; case FutileFourDirectionBaseObject.Direction.LEFT: tempX = vel.x; vel.x = vel.y; vel.y = tempX; tempX = acc.x; acc.x = acc.y; acc.y = tempX; tempX = pos.x; pos.x = pos.y; pos.y = tempX; vel.x *= -1; acc.x *= -1; break; } p.activate(this.GetPosition() +pos, vel, acc, RXRandom.Bool() ? 180.0f : 0); this.container.AddChild(p); } }