Android Open Source - Sushi-Shooter Bubble Manager






From Project

Back to project page Sushi-Shooter.

License

The source code is released under:

GNU General Public License

If you think the Android project Sushi-Shooter listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 *                 [[ Frozen-Bubble ]]/*from   ww  w  .ja v a 2  s . c  o m*/
 *
 * Copyright (c) 2000-2003 Guillaume Cottenceau.
 * Java sourcecode - Copyright (c) 2003 Glenn Sanson.
 *
 * This code is distributed under the GNU General Public License
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * version 2, as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along
 * with this program; if not, write to the Free Software Foundation, Inc.,
 * 675 Mass Ave, Cambridge, MA 02139, USA.
 *
 *
 * Artwork:
 *    Alexis Younes <73lab at free.fr>
 *      (everything but the bubbles)
 *    Amaury Amblard-Ladurantie <amaury at linuxfr.org>
 *      (the bubbles)
 *
 * Soundtrack:
 *    Matthias Le Bidan <matthias.le_bidan at caramail.com>
 *      (the three musics and all the sound effects)
 *
 * Design & Programming:
 *    Guillaume Cottenceau <guillaume.cottenceau at free.fr>
 *      (design and manage the project, whole Perl sourcecode)
 *
 * Java version:
 *    Glenn Sanson <glenn.sanson at free.fr>
 *      (whole Java sourcecode, including JIGA classes
 *             http://glenn.sanson.free.fr/jiga/)
 *
 * Android port:
 *    Pawel Aleksander Fedorynski <pfedor@fuw.edu.pl>
 *    Copyright (c) Google Inc.
 *
 *          [[ http://glenn.sanson.free.fr/fb/ ]]
 *          [[ http://www.frozen-bubble.org/   ]]
 */

package net.gamecloud.sushishooter;

import java.util.Random;
import android.os.Bundle;

public class BubbleManager
{
        int bubblesLeft;
        BmpWrap[] bubbles;
        int[] countBubbles;

        public BubbleManager(BmpWrap[] bubbles)
        {
                this.bubbles = bubbles;
                this.countBubbles = new int[bubbles.length];
                this.bubblesLeft = 0;
        }

        public void saveState(Bundle map)
        {
                map.putInt("BubbleManager-bubblesLeft", bubblesLeft);
                map.putIntArray("BubbleManager-countBubbles", countBubbles);
        }

        public void restoreState(Bundle map)
        {
                bubblesLeft = map.getInt("BubbleManager-bubblesLeft");
                countBubbles = map.getIntArray("BubbleManager-countBubbles");
        }

        public void addBubble(BmpWrap bubble)
        {
                countBubbles[findBubble(bubble)]++;
                bubblesLeft++;
        }

        public void removeBubble(BmpWrap bubble)
        {
                countBubbles[findBubble(bubble)]--;
                bubblesLeft--;
        }

        public int countBubbles()
        {
                return bubblesLeft;
        }

        public int nextBubbleIndex(Random rand)
        {
                int select = rand.nextInt() % bubbles.length;

                if (select < 0)
                {
                        select = -select;
                }

                int count = -1;
                int position = -1;

                while (count != select)
                {
                        position++;

                        if (position == bubbles.length)
                        {
                                position = 0;
                        }

                        if (countBubbles[position] != 0)
                        {
                                count++;
                        }
                }

                return position;
        }

        public BmpWrap nextBubble(Random rand)
        {
                return bubbles[nextBubbleIndex(rand)];
        }

        private int findBubble(BmpWrap bubble)
        {
                for (int i=0 ; i<bubbles.length ; i++)
                {
                        if (bubbles[i] == bubble)
                        {
                                return i;
                        }
                }

                return -1;
        }
}




Java Source Code List

com.sessionm.TransactionReceiver.java
net.gamecloud.sushishooter.BmpWrap.java
net.gamecloud.sushishooter.BubbleFont.java
net.gamecloud.sushishooter.BubbleManager.java
net.gamecloud.sushishooter.BubbleSprite.java
net.gamecloud.sushishooter.Compressor.java
net.gamecloud.sushishooter.FrozenBubble.java
net.gamecloud.sushishooter.FrozenGame.java
net.gamecloud.sushishooter.GameScreen.java
net.gamecloud.sushishooter.GameView.java
net.gamecloud.sushishooter.ImageSprite.java
net.gamecloud.sushishooter.LaunchBubbleSprite.java
net.gamecloud.sushishooter.LevelManager.java
net.gamecloud.sushishooter.PenguinSprite.java
net.gamecloud.sushishooter.SoundManager.java
net.gamecloud.sushishooter.Sprite.java