private void Update() { if (Time.timeScale == 0) { return; } time += Time.deltaTime; if (countdown_time > 0) // Countdown till game is finished { countdown_time -= Time.deltaTime; } if ((spawn_time == 0 || spawn_time < time) && countdown_time > 0) // Spawn time always update when spawn time is hit { spawn_time += UnityEngine.Random.Range(.3f, 1) + Time.deltaTime; Spawn(); } // Move items for (int i = 0; i < _sprites.Count; i += 1) { GameObject _sprite = _sprites[i]; FoodSprite sprite = _sprites[i].GetComponent <FoodSprite>(); if (_sprite.transform.position.x >= 10) { if (sprite.status == FoodSprite.FoodStatus.None) { sprite.Purchase(); items_purchased.Add(GetItem(_sprite.name)); } } else { if (sprite.status == FoodSprite.FoodStatus.None) { _sprite.transform.Translate(new Vector3(.05f, 0, 0)); } else { if (sprite.opacity <= 0 || _sprite.transform.localScale[0] <= 0) { sprite.DestoryFood(_sprites, _sprite); } else { sprite.opacity -= .02f; _sprite.transform.localScale += new Vector3(-.05f, -.05f, 0); _sprite.GetComponent <SpriteRenderer>().color = new Color(1f, 1f, 1f, sprite.opacity); _sprite.transform.Translate(new Vector3(-.05f, .1f * sprite.flight_direction, 0)); } } } } Countdown(); }
/** * Generate FoodSprite Object */ public static GameObject Create(string type, Vector3 pos = default, Vector3 scale = default) { GameObject go = new GameObject(type); BoxCollider2D collider = go.AddComponent <BoxCollider2D>(); FoodSprite sprite = go.AddComponent <FoodSprite>(); go.transform.position = pos; go.transform.localScale += scale; collider.isTrigger = true; sprite.flight_direction = Random.Range(0, 2) * 2 - 1; return(go); }
public void Draw(SpriteBatch spriteBatch) { foreach (Tile tile in currentLevel.TileMap) { spriteBatch.Draw(GridTexture, levelPosition + tile.Position, null, Color.White, 0f, Vector2.Zero, Game1.Scale, SpriteEffects.None, 1.0f); if (hoveredTile == tile) { spriteBatch.Draw(HighlightTexture, levelPosition + tile.Position, null, Color.White, 0f, Vector2.Zero, Game1.Scale, SpriteEffects.None, 1.0f); if (!hoveredTile.Blocked) { if (brushType == BrushType.Food) { FoodSprite.Draw(spriteBatch, levelPosition + tile.Position + new Vector2(currentLevel.TileSize / 2), Game1.Scale * 2.0f, new Vector2(0.5f)); } else if (brushType == BrushType.BigFood) { BigFoodSprite.Draw(spriteBatch, levelPosition + tile.Position + new Vector2(currentLevel.TileSize / 2), Game1.Scale * 2.0f, new Vector2(0.5f)); } else if (brushType == BrushType.PowerupGhost) { PowerupGhostSprite.Draw(spriteBatch, levelPosition + tile.Position + new Vector2(currentLevel.TileSize / 2), Game1.Scale * 2.0f, new Vector2(0.5f)); } else if (brushType == BrushType.PowerupWall) { PowerupWallEaterSprite.Draw(spriteBatch, levelPosition + tile.Position + new Vector2(currentLevel.TileSize / 2), Game1.Scale * 2.0f, new Vector2(0.5f)); } else if (brushType == BrushType.PacmanSpawn) { PacmanSpawnSprite.Draw(spriteBatch, levelPosition + tile.Position + new Vector2(currentLevel.TileSize / 2), Game1.Scale * 2.0f, new Vector2(0.5f)); } else if (brushType == BrushType.GhostSpawn) { GhostSpawnSprite.Draw(spriteBatch, levelPosition + tile.Position + new Vector2(currentLevel.TileSize / 2), Game1.Scale * 2.0f, new Vector2(0.5f)); } } } } currentLevel.Draw(spriteBatch, levelPosition); if (currentLevel.PacmanSpawn != null) { PacmanSpawnSprite.Draw(spriteBatch, levelPosition + currentLevel.PacmanSpawn.Position + new Vector2(currentLevel.TileSize / 2), Game1.Scale * 2.0f, new Vector2(0.5f)); } foreach (Tile spawn in currentLevel.GhostSpawns) { GhostSpawnSprite.Draw(spriteBatch, levelPosition + spawn.Position + new Vector2(currentLevel.TileSize / 2), Game1.Scale * 2.0f, new Vector2(0.5f)); } }
private void Spawn() // Item spawner { GameObject a = FoodSprite.Create("Apple", new Vector3(-10.0f, -2, 0), Vector3.one); _sprites.Add(a); }