Пример #1
0
        void CollisionPackmanProjectileToWall()
        {
            if (proj.X >= 0 && proj.Y >= 0)
            {
                if (proj.D_x != 0)
                {
                    for (int x = (proj.X / 10); x < 26; x++)
                    {
                        if (proj.flagRunProjectilePackman)
                        {
                            if (
                                (Math.Abs(proj.X - wall.tiles[x, (proj.Y - 5) / 10].x) < 10 && Math.Abs(proj.X - wall.tiles[x, (proj.Y - 5) / 10].x) > 0 && wall.tiles[x, (proj.Y - 5) / 10].status)
                                ||
                                (Math.Abs(proj.X - wall.tiles[x, (proj.Y + 5) / 10].x) < 10 && Math.Abs(proj.X - wall.tiles[x, (proj.Y + 5) / 10].x) > 0 && wall.tiles[x, (proj.Y + 5) / 10].status)
                                )
                            {
                                wall.tiles[x, (proj.Y - 5) / 10].RewriteTiles(proj.X, proj.Y, proj.D_x, proj.D_y, packman.name, "upRow");
                                wall.tiles[x, (proj.Y + 5) / 10].RewriteTiles(proj.X, proj.Y, proj.D_x, proj.D_y, packman.name, "downRow");

                                proj.DefaultProjectile();
                            }
                        }
                    }
                }


                if (proj.D_y != 0)
                {
                    for (int y = (proj.Y / 10); y < 26; y++)
                    {
                        if (proj.flagRunProjectilePackman)
                        {
                            if (
                                (Math.Abs(proj.Y - wall.tiles[(proj.X - 5) / 10, y].y) < 10 && Math.Abs(proj.Y - wall.tiles[(proj.X - 5) / 10, y].y) > 0 && wall.tiles[(proj.X - 5) / 10, y].status)
                                ||
                                (Math.Abs(proj.Y - wall.tiles[(proj.X + 5) / 10, y].y) < 10 && Math.Abs(proj.Y - wall.tiles[(proj.X + 5) / 10, y].y) > 0 && wall.tiles[(proj.X + 5) / 10, y].status)
                                )
                            {
                                wall.tiles[(proj.X - 5) / 10, y].RewriteTiles(proj.X, proj.Y, proj.D_x, proj.D_y, packman.name, "upRow");
                                wall.tiles[(proj.X + 5) / 10, y].RewriteTiles(proj.X, proj.Y, proj.D_x, proj.D_y, packman.name, "downRow");
                                proj.DefaultProjectile();
                            }
                        }
                    }
                }
            }
        }