Esempio n. 1
0
        public void addBubble(Bubble bubble)
        {
            bubble.velocity3D = new Vector3(0,0,0);
            bubble.worldPosition -= new Vector3(0, 0, ceiling * 1.94f);
            Vector2 gridCoordinates = new Vector2(bubble.worldToGrid().X, bubble.worldToGrid().Z);
            if ((int)gridCoordinates.Y % 2 == 1 && (int)gridCoordinates.X == GRID_WIDTH - 1)
            {
                if (grid[(int)gridCoordinates.X - 1, (int)gridCoordinates.Y] == null)
                    gridCoordinates.X -= 1;
                else if (grid[(int)gridCoordinates.X, (int)gridCoordinates.Y + 1] == null)
                    gridCoordinates.Y += 1;

            }
            bubble.heading = 0;
            bubble.angularVelocity = 0;
            bubble.gridPosition = gridCoordinates;
            bubble.positionPixels = bubble.gridToPixels(ceiling) + new Vector2(0, ceiling * 30);
            grid[(int)gridCoordinates.X, (int)gridCoordinates.Y] = bubble;
            bubble.worldPosition = new Vector3(bubble.gridPosition.X * 2 - RAMP_SIZE + 5 + ( bubble.gridPosition.Y % 2), -RAMP_SIZE + 1,
                                                bubble.gridPosition.Y * 1.94f - RAMP_SIZE * 1.5f /*,
                                                bubble.gridPosition.Y - RAMP_SIZE + 1 0.0f*/);

            /*
             * TO DO:
             *
             * FIGURE OUT WHY BUBBLE FLOAT WHEN CEILING MOVES DOWN
             *
             */

            Stats.recordBubble(bubble);
        }