package com.niw.kuttypanda.manager; import java.io.IOException; import org.andengine.audio.music.Music; import org.andengine.audio.music.MusicFactory; import org.andengine.engine.Engine; import org.andengine.engine.camera.Camera; import org.andengine.entity.sprite.AnimatedSprite; import org.andengine.entity.sprite.Sprite; import org.andengine.entity.text.Text; import org.andengine.opengl.font.Font; import org.andengine.opengl.texture.TextureOptions; import org.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; import org.andengine.opengl.texture.region.ITextureRegion; import org.andengine.opengl.texture.region.TextureRegion; import org.andengine.opengl.texture.region.TiledTextureRegion; import org.andengine.opengl.vbo.VertexBufferObjectManager; import org.andengine.util.color.Color; import org.andengine.util.debug.Debug; import android.graphics.Typeface; import com.niw.kuttypanda.GameActivity; import com.niw.kuttypanda.common.Constants; public class ResourcesManager { private static final ResourcesManager INSTANCE = new ResourcesManager(); public Engine engine; public GameActivity activity; public Camera camera; public VertexBufferObjectManager vbom; private BitmapTextureAtlas splashTextureAtlas; private BitmapTextureAtlas bitmapTextureAtlas_background; private BitmapTextureAtlas bitmapTextureAtlas_logo; private BitmapTextureAtlas bitmapTextureAtlas_startButton; private BitmapTextureAtlas bitmapTextureAtlas_shareButton; private BitmapTextureAtlas bitmapTextureAtlas_settingsButton; private BitmapTextureAtlas bitmapTextureAtlas_panda; private BitmapTextureAtlas bitmapTextureAtlas_pipe1; private BitmapTextureAtlas bitmapTextureAtlas_pipe2; private BitmapTextureAtlas bitmapTextureAtlas_scrore_board; private BitmapTextureAtlas bitmapTextureAtlas_game_over; private BitmapTextureAtlas bitmapTextureAtlas_oke; private BitmapTextureAtlas bitmapTextureAtlas_checkButton; private BitmapTextureAtlas bitmapTextureAtlas_panel; public ITextureRegion splashTextureRegion; public TextureRegion backgroundTiledTextureRegion; public TextureRegion textureRegion_logo; public TextureRegion textureRegion_startButton; public TextureRegion textureRegion_shareButton; public TextureRegion textureRegion_settingsButton; public TiledTextureRegion tiledTextureRegion_panda; public TextureRegion textureRegion_game_over; public TextureRegion textureRegion_pipe1; public TextureRegion textureRegion_pipe2; public TextureRegion textureRegion_score_board; public TextureRegion textureRegion_oke; public TiledTextureRegion textureRegion_checkButton; public TextureRegion textureRegion_panel; private BitmapTextureAtlas mFontTexture_score; private BitmapTextureAtlas mFontTexture_score2; private BitmapTextureAtlas mFontTexture_score_best; public AnimatedSprite animatedSprite_panda; public Sprite backGroundSprite; public Sprite sprite_game_over; public Sprite sprite_startButton; public Sprite sprite_shareButton; public Sprite sprite_settingsButton; public Sprite sprite_pipe1; public Sprite sprite_pipe2; public Sprite sprite_score_board; public Music mSwooshing, mPoint, mDie, mWing, mHit; private int splash_width = 296; private int splash_height = 114; private int logo_width = 323; private int logo_height = 79; private int start_button_width = 137; private int start_button_height = 90; private int share_button_width = 122; private int share_button_height = 65; private int settings_button_width = 155; private int settings_button_height = 65; public int panda_position = 4; public int panda_width = 113; public int panda_height = 1648; public float panda_scale = 0.6f; public int pipe_width = 128; public int pipe_height = 500; private int game_over_width = 197; private int game_over_height = 27; private int score_board_width = 400; private int score_board_height = 183; private int score_width = 256; private int score_height = 256; private int score2_width = 256; private int score2_height = 256; private int score_best_width = 256; private int score_best_height = 256; private int oke_width = 122; private int oke_height = 68; private int check_button_width = 240; private int check_button_height = 90; private int panel_width = 400; private int panel_height = 183; public Font mFont; public Text mScoreText; public Text mScoreText2; public Text mScoreTextBest; public int speed = 1; public int point = 0; public int panda_up = 5; public float panda_down = 3f; public int pipe_transition = 3; public int pipe_move = 3; public int heightR; public Boolean isDie = false; public boolean cham = false; public void loadMenuResources() { loadMenuGraphics(); loadSettingsGraphics(); } public void loadGameResources() { loadGameGraphics(); loadGameFonts(); loadGameAudio(); } private void loadMenuGraphics() { BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); this.bitmapTextureAtlas_background = new BitmapTextureAtlas(activity.getTextureManager(), Constants.width, Constants.height, TextureOptions.NEAREST_PREMULTIPLYALPHA); this.backgroundTiledTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.bitmapTextureAtlas_background, activity, "bg-tre.png", 0, 0); this.bitmapTextureAtlas_background.load(); this.bitmapTextureAtlas_logo = new BitmapTextureAtlas(activity.getTextureManager(), logo_width, logo_height , TextureOptions.BILINEAR); this.textureRegion_logo = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.bitmapTextureAtlas_logo, activity, "logo.png", 0, 0); this.bitmapTextureAtlas_logo.load(); this.bitmapTextureAtlas_startButton = new BitmapTextureAtlas(activity.getTextureManager(), start_button_width, start_button_height, TextureOptions.BILINEAR); this.textureRegion_startButton = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.bitmapTextureAtlas_startButton, activity, "start.png", 0, 0); this.bitmapTextureAtlas_startButton.load(); this.bitmapTextureAtlas_shareButton = new BitmapTextureAtlas(activity.getTextureManager(), share_button_width, share_button_height, TextureOptions.BILINEAR); this.textureRegion_shareButton = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.bitmapTextureAtlas_shareButton, activity, "share.png", 0, 0); this.bitmapTextureAtlas_shareButton.load(); this.bitmapTextureAtlas_settingsButton = new BitmapTextureAtlas(activity.getTextureManager(), settings_button_width, settings_button_height, TextureOptions.BILINEAR); this.textureRegion_settingsButton = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.bitmapTextureAtlas_settingsButton, activity, "setting.png", 0, 0); this.bitmapTextureAtlas_settingsButton.load(); } private void loadSettingsGraphics() { BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); this.bitmapTextureAtlas_oke = new BitmapTextureAtlas(activity.getTextureManager(), oke_width, oke_height, TextureOptions.BILINEAR); this.textureRegion_oke = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.bitmapTextureAtlas_oke, activity, "oke.png", 0, 0); this.bitmapTextureAtlas_oke.load(); this.bitmapTextureAtlas_checkButton = new BitmapTextureAtlas(activity.getTextureManager(), check_button_width, check_button_height, TextureOptions.BILINEAR); this.textureRegion_checkButton = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.bitmapTextureAtlas_checkButton, activity, "check.png", 0, 0, 2, 1); this.bitmapTextureAtlas_checkButton.load(); this.bitmapTextureAtlas_panel = new BitmapTextureAtlas(activity.getTextureManager(), panel_width, panel_height, TextureOptions.BILINEAR); this.textureRegion_panel = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.bitmapTextureAtlas_panel, activity, "panel.png", 0, 0); this.bitmapTextureAtlas_panel.load(); } public void unloadSettingsGraphics() { bitmapTextureAtlas_oke.unload(); textureRegion_oke = null; bitmapTextureAtlas_checkButton.unload(); textureRegion_checkButton = null; bitmapTextureAtlas_panel.unload(); textureRegion_panel = null; } private void loadGameGraphics() { BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); this.bitmapTextureAtlas_panda = new BitmapTextureAtlas(activity.getTextureManager(), panda_width, panda_height, TextureOptions.BILINEAR); this.tiledTextureRegion_panda = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.bitmapTextureAtlas_panda, activity, "panda.png", 0, 0, 1, 8); this.bitmapTextureAtlas_panda.load(); this.bitmapTextureAtlas_pipe1 = new BitmapTextureAtlas(activity.getTextureManager(), pipe_width, pipe_height,TextureOptions.BILINEAR); this.textureRegion_pipe1 = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.bitmapTextureAtlas_pipe1, activity, "column.png", 0, 0); this.bitmapTextureAtlas_pipe1.load(); this.bitmapTextureAtlas_pipe2 = new BitmapTextureAtlas(activity.getTextureManager(), pipe_width, pipe_height, TextureOptions.BILINEAR); this.textureRegion_pipe2 = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.bitmapTextureAtlas_pipe2, activity, "column1.png", 0, 0); this.bitmapTextureAtlas_pipe2.load(); this.bitmapTextureAtlas_game_over = new BitmapTextureAtlas(activity.getTextureManager(), game_over_width, game_over_height , TextureOptions.BILINEAR); this.textureRegion_game_over = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.bitmapTextureAtlas_game_over, activity, "gameover.png", 0, 0); this.bitmapTextureAtlas_game_over.load(); this.bitmapTextureAtlas_scrore_board = new BitmapTextureAtlas(activity.getTextureManager(), score_board_width, score_board_height, TextureOptions.BILINEAR); this.textureRegion_score_board = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.bitmapTextureAtlas_scrore_board, activity, "score.png", 0, 0); this.bitmapTextureAtlas_scrore_board.load(); } private void loadGameFonts() { this.mFontTexture_score = new BitmapTextureAtlas(activity.getTextureManager(), score_width, score_height, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mFontTexture_score2 = new BitmapTextureAtlas(activity.getTextureManager(), score2_width, score2_height, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mFontTexture_score_best = new BitmapTextureAtlas(activity.getTextureManager(), score_best_width, score_best_height, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mFont = new Font(activity.getFontManager(), this.mFontTexture_score, Typeface.create(Typeface.DEFAULT, Typeface.BOLD), 24, true, Color.BLACK); this.mFont = new Font(activity.getFontManager(), this.mFontTexture_score2, Typeface.create(Typeface.DEFAULT, Typeface.BOLD), 24, true, Color.BLACK); this.mFont = new Font(activity.getFontManager(), this.mFontTexture_score_best, Typeface.create(Typeface.DEFAULT, Typeface.BOLD), 24, true, Color.BLACK); activity.getTextureManager().loadTexture(this.mFontTexture_score); activity.getTextureManager().loadTexture(this.mFontTexture_score2); activity.getTextureManager().loadTexture(this.mFontTexture_score_best); activity.getFontManager().loadFont(this.mFont); } private void loadGameAudio() { MusicFactory.setAssetBasePath("sounds/"); try { this.mSwooshing = MusicFactory.createMusicFromAsset(activity.getMusicManager(), activity, "swooshing.ogg"); this.mPoint = MusicFactory.createMusicFromAsset(activity.getMusicManager(), activity, "point.ogg"); this.mDie = MusicFactory.createMusicFromAsset(activity.getMusicManager(), activity, "die.ogg"); this.mHit = MusicFactory.createMusicFromAsset(activity.getMusicManager(), activity, "hit.ogg"); this.mWing = MusicFactory.createMusicFromAsset(activity.getMusicManager(), activity, "wing.ogg"); } catch (final IOException e) { Debug.e(e); } } public void loadSplashScreen() { BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); this.splashTextureAtlas = new BitmapTextureAtlas(activity.getTextureManager(), splash_width, splash_height, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.splashTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(splashTextureAtlas, activity, "splash.png", 0, 0); this.splashTextureAtlas.load(); } public void unloadSplashScreen() { this.splashTextureAtlas.unload(); this.splashTextureRegion = null; } public static void prepareManager(Engine engine, GameActivity activity, Camera camera, VertexBufferObjectManager vbom) { getInstance().engine = engine; getInstance().activity = activity; getInstance().camera = camera; getInstance().vbom = vbom; } public static ResourcesManager getInstance() { return INSTANCE; } }