예제 #1
0
    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();
    }
예제 #2
0
    /**
     * 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);
    }
예제 #3
0
파일: Editor.cs 프로젝트: Ploxie/Pacman
        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));
            }
        }
예제 #4
0
    private void Spawn()  // Item spawner
    {
        GameObject a = FoodSprite.Create("Apple", new Vector3(-10.0f, -2, 0), Vector3.one);

        _sprites.Add(a);
    }