package com.digitalwolf.drona.assets; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.audio.Music; import com.badlogic.gdx.audio.Sound; import com.badlogic.gdx.files.FileHandle; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.Animation; import com.badlogic.gdx.graphics.g2d.BitmapFont; import com.badlogic.gdx.graphics.g2d.TextureAtlas; import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.scenes.scene2d.ui.Skin; import com.digitalwolf.gamedata.Settings; public class Assets { private final static String FILE_SPRITE_ATLAS = "data/imageatlas.sprites"; private final static String FILE_UI_ATLAS = "data/uiAtlas.sprites"; private final static String FILE_UI_SKIN = "skin/uiskin.json"; public static TextureAtlas imageAtlas; public static TextureAtlas uiSpriteAtlas; public static Skin skin; //Defining the Audio Files here public static Music music; public static Sound appearing; public static Sound dronaFall; public static Sound evilLaugh; public static Sound grab; public static Sound shoot; public static Sound victory; public static Sound killed,killed1; //Defining Fonts here public static BitmapFont gameFont,whiteFont,smallFont; public static TextureRegion bg; public static TextureRegion rating,star1,star2,star3,star4,star5; public static TextureRegion parallax_bg,parallaxbg2; public static TextureRegion splash; public static TextureRegion magicalPower,lock_icon; public static TextureRegion play_button1; public static TextureRegion play_button2; public static TextureRegion credits_button1; public static TextureRegion credits_button2; public static TextureRegion highscores_button1; public static TextureRegion highscores_button2; public static TextureRegion logo; public static TextureRegion sound_on; public static TextureRegion sound_off; public static TextureRegion player; public static TextureRegion pawns1,pawns2; public static TextureRegion powerup; public static TextureRegion knight; public static TextureRegion explosion; public static TextureRegion nothing; public static TextureRegion pause_button; public static TextureRegion infoDronaDead,infoKilledByBossEnemy,infoKilledByConspirators,infoKilledByPawns,secondEnemyFace; public static TextureRegion highscore_table; public static TextureRegion emptyBox,rectangle_button,rectangle_button2; public static TextureRegion redboard,transparent; public static TextureRegion back_button; public static TextureRegion enerylevel,enerylevel1,enerylevel2,enerylevel3,enerylevel4,enerylevel5; public static TextureRegion poof1,poof2; public static TextureRegion dragon; public static Animation dragonAnimation; public static TextureRegion conspirator; public static Animation conspiratorAnim; public static TextureRegion blackDragon; public static Animation blackDragonAnim; public static TextureRegion credits; public static Animation dronaFlying, explosionAnim; public static Animation pawn1Flying,pawn2Flying; public static Animation powerUpAnimation; public static Animation bossEnemyFlying,bossEnemyAppearing,bossEnemyFlyAway; public static Animation evilDemonFlying; public static Animation poofAnimation,splashAnim; public static TextureRegion flyButton, shoot_button; public static TextureRegion weapon1, weapon2,weapon3; public static Texture loadTexture(String file) { return new Texture(Gdx.files.internal(file)); } public static TextureAtlas getSpriteAtlas() { if (imageAtlas == null) { imageAtlas = new TextureAtlas( Gdx.files.internal(FILE_SPRITE_ATLAS)); } return imageAtlas; } public static TextureAtlas getUISpriteAtlas() { if (uiSpriteAtlas == null) { uiSpriteAtlas = new TextureAtlas( Gdx.files.internal(FILE_UI_ATLAS)); } return uiSpriteAtlas; } public static Skin getSkin() { if (skin == null) { FileHandle skinFile = Gdx.files.internal(FILE_UI_SKIN); skin = new Skin(skinFile); } return skin; } public static void loadAll() { relaseResources(); loadImages(); loadFonts(); loadAnimations(); loadSoundsAndMusics(); } private static void loadSoundsAndMusics() { // Load all the Music & Audio Files Here music = Gdx.audio.newMusic(Gdx.files.internal("data/music.mp3")); music.setLooping(true); //Start Playing the Music if the sound is enabled if (Settings.isSoundEnabled()) Assets.music.play(); appearing = Gdx.audio.newSound(Gdx.files.internal("data/appearing.mp3")); dronaFall = Gdx.audio.newSound(Gdx.files.internal("data/dronaFall.ogg")); evilLaugh = Gdx.audio.newSound(Gdx.files.internal("data/evilLaugh.mp3")); grab = Gdx.audio.newSound(Gdx.files.internal("data/grab.ogg")); shoot = Gdx.audio.newSound(Gdx.files.internal("data/shoot.ogg")); victory = Gdx.audio.newSound(Gdx.files.internal("data/victory.mp3")); killed = Gdx.audio.newSound(Gdx.files.internal("data/killed.mp3")); killed1 = Gdx.audio.newSound(Gdx.files.internal("data/killed1.mp3")); } public static void playSound (Sound sound) { if (Settings.isSoundEnabled()) sound.play(1); } private static void loadFonts() { // Load the fonts gameFont = new BitmapFont(Gdx.files.internal("data/gamefont.fnt"), Gdx.files.internal("data/gamefont.png"), false); whiteFont = new BitmapFont(Gdx.files.internal("data/whiteFont.fnt"), Gdx.files.internal("data/whiteFont.png"), false); smallFont = new BitmapFont(Gdx.files.internal("data/smallFont.fnt"), Gdx.files.internal("data/smallFont.png"), false); } private static void loadAnimations(){ //Load the Animations from the Textures in the Atlas TextureRegion[][] knightRegions = Assets.player.split(288/3, 384/4); bossEnemyFlying = new Animation(0.30f, knightRegions[1][0], knightRegions[1][1], knightRegions[1][2]); bossEnemyFlying.setPlayMode(Animation.LOOP); bossEnemyAppearing = new Animation(0.30f, knightRegions[0][0], knightRegions[0][1], knightRegions[0][2]); bossEnemyAppearing.setPlayMode(Animation.LOOP); bossEnemyFlyAway = new Animation(0.30f, knightRegions[3][0], knightRegions[3][1], knightRegions[3][2]); bossEnemyFlyAway.setPlayMode(Animation.LOOP); TextureRegion[][] dronaSpriteRegions = Assets.knight.split(2048/8, 275); dronaFlying = new Animation(0.15f, dronaSpriteRegions[0][0],dronaSpriteRegions[0][1],dronaSpriteRegions[0][2], dronaSpriteRegions[0][3],dronaSpriteRegions[0][4],dronaSpriteRegions[0][5], dronaSpriteRegions[0][6],dronaSpriteRegions[0][7]); dronaFlying.setPlayMode(Animation.LOOP); TextureRegion[][] splashRegions = Assets.splash.split(282/6, 66); splashAnim = new Animation(0.15f, splashRegions[0][0], splashRegions[0][1], splashRegions[0][2], splashRegions[0][3], splashRegions[0][4], splashRegions[0][5]); splashAnim.setPlayMode(Animation.LOOP); TextureRegion[][] pawnsRegions = Assets.pawns1.split(288/3, 384/4); pawn1Flying = new Animation(0.15f, pawnsRegions[0][0], pawnsRegions[0][1], pawnsRegions[0][2]); pawn1Flying.setPlayMode(Animation.LOOP); TextureRegion[][] pawnsRegions2 = Assets.pawns2.split(512/4, 112); pawn2Flying = new Animation(0.15f, pawnsRegions2[0][0], pawnsRegions2[0][1], pawnsRegions2[0][2], pawnsRegions2[0][3]); pawn2Flying.setPlayMode(Animation.LOOP); TextureRegion[][] powerUpRegions = Assets.powerup.split(837/9, 63); powerUpAnimation = new Animation(0.15f,powerUpRegions[0][0],powerUpRegions[0][1],powerUpRegions[0][2] ,powerUpRegions[0][3],powerUpRegions[0][4],powerUpRegions[0][5] ,powerUpRegions[0][6],powerUpRegions[0][7],powerUpRegions[0][8]); powerUpAnimation.setPlayMode(Animation.LOOP); TextureRegion[][] explosionRegions = Assets.explosion.split(64,64); explosionAnim = new Animation(0.1f, explosionRegions[0][0],explosionRegions[0][1],explosionRegions[0][2],explosionRegions[0][3],explosionRegions[0][4], explosionRegions[1][0],explosionRegions[1][1],explosionRegions[1][2],explosionRegions[1][3],explosionRegions[1][4], explosionRegions[2][0],explosionRegions[2][1],explosionRegions[2][2],explosionRegions[2][3],explosionRegions[2][4], explosionRegions[3][0],explosionRegions[3][1],explosionRegions[3][2],explosionRegions[3][3],explosionRegions[3][4], explosionRegions[4][0],explosionRegions[4][1],explosionRegions[4][2],explosionRegions[4][3],explosionRegions[4][4]); explosionAnim.setPlayMode(Animation.LOOP); TextureRegion[][] dragonRegions = Assets.dragon.split(100,100); dragonAnimation = new Animation(0.15f, dragonRegions[0][0], dragonRegions[0][1], dragonRegions[0][2], dragonRegions[0][3], dragonRegions[0][4]); dragonAnimation.setPlayMode(Animation.LOOP); TextureRegion[][] conspiratorRegions = Assets.conspirator.split(500/4, 564/4); conspiratorAnim = new Animation(0.15f,conspiratorRegions[0][0],conspiratorRegions[0][1],conspiratorRegions[0][2],conspiratorRegions[0][3] ,conspiratorRegions[1][0],conspiratorRegions[1][1],conspiratorRegions[1][2],conspiratorRegions[1][3] ,conspiratorRegions[2][0],conspiratorRegions[2][1],conspiratorRegions[2][2],conspiratorRegions[2][3], conspiratorRegions[3][0],conspiratorRegions[3][1],conspiratorRegions[3][2],conspiratorRegions[3][3]); conspiratorAnim.setPlayMode(Animation.LOOP); TextureRegion[][] blackdragonRegions = Assets.blackDragon.split(2048/8, 275); blackDragonAnim = new Animation(0.15f, blackdragonRegions[0][0],blackdragonRegions[0][1],blackdragonRegions[0][2], blackdragonRegions[0][3],blackdragonRegions[0][4],blackdragonRegions[0][5], blackdragonRegions[0][6],blackdragonRegions[0][7]); blackDragonAnim.setPlayMode(Animation.LOOP); poofAnimation = new Animation(0.15f, poof1, poof2); poofAnimation.setPlayMode(Animation.LOOP); TextureRegion[][] ratingRegions = Assets.rating.split(400,85); star1 = ratingRegions[4][0]; star2 = ratingRegions[3][0]; star3 = ratingRegions[2][0]; star4 = ratingRegions[1][0]; star5 = ratingRegions[0][0]; } private static void loadImages() { // Load the static Images/Texture Regions bg = getSpriteAtlas().findRegion("bg"); parallax_bg = getSpriteAtlas().findRegion("parallax_bg"); parallaxbg2 = getSpriteAtlas().findRegion("parallaxbg2"); sound_on = getUISpriteAtlas().findRegion("button_on"); sound_off = getUISpriteAtlas().findRegion("button_off"); play_button1 = getUISpriteAtlas().findRegion("startgame_button"); play_button2 = getUISpriteAtlas().findRegion("startgame_button2"); credits_button1 = getUISpriteAtlas().findRegion("button_credits"); credits_button2 = getUISpriteAtlas().findRegion("button_credits2"); highscores_button1 = getUISpriteAtlas().findRegion("button_highscore"); highscores_button2 = getUISpriteAtlas().findRegion("button_highscore2"); logo = getSpriteAtlas().findRegion("logo"); player = getSpriteAtlas().findRegion("drona"); pawns1 = getSpriteAtlas().findRegion("pawns1"); pawns2 = getSpriteAtlas().findRegion("pawns2"); powerup = getSpriteAtlas().findRegion("powerup"); flyButton = getUISpriteAtlas().findRegion("flyButton"); shoot_button = getUISpriteAtlas().findRegion("shoot_button"); weapon1 = getUISpriteAtlas().findRegion("weapon1"); weapon2 = getUISpriteAtlas().findRegion("weapon2"); weapon3 = getUISpriteAtlas().findRegion("weapon3"); knight = getSpriteAtlas().findRegion("knightEnemy"); explosion = getSpriteAtlas().findRegion("explosion"); nothing = getSpriteAtlas().findRegion("nothing"); magicalPower = getSpriteAtlas().findRegion("magicalpower"); emptyBox = getUISpriteAtlas().findRegion("emptyBox"); rectangle_button = getUISpriteAtlas().findRegion("button_menu"); rectangle_button2 = getUISpriteAtlas().findRegion("button_menu2"); back_button = getUISpriteAtlas().findRegion("back_button"); transparent = getUISpriteAtlas().findRegion("transparent"); enerylevel = getUISpriteAtlas().findRegion("enerylevel"); TextureRegion[][] energyLevelRegions = Assets.enerylevel.split(310/5,128); enerylevel1 = energyLevelRegions[0][0]; enerylevel2 = energyLevelRegions[0][1]; enerylevel3 = energyLevelRegions[0][2]; enerylevel4 = energyLevelRegions[0][3]; enerylevel5 = energyLevelRegions[0][4]; pause_button = getUISpriteAtlas().findRegion("pause_button"); highscore_table = getUISpriteAtlas().findRegion("highscore_table"); dragon = getSpriteAtlas().findRegion("dragon"); blackDragon = getSpriteAtlas().findRegion("knightEnemy2"); secondEnemyFace = getSpriteAtlas().findRegion("aispriteface"); conspirator = getSpriteAtlas().findRegion("conspirator"); splash = getSpriteAtlas().findRegion("splash"); infoDronaDead = getSpriteAtlas().findRegion("infoDronaDead"); infoKilledByBossEnemy = getSpriteAtlas().findRegion("infoKilledByBossEnemy"); infoKilledByConspirators = getSpriteAtlas().findRegion("infoKilledByConspirators"); infoKilledByPawns = getSpriteAtlas().findRegion("infoKilledByPawns"); poof1 = getUISpriteAtlas().findRegion("poof-1"); poof2 = getUISpriteAtlas().findRegion("poof-2"); lock_icon = getUISpriteAtlas().findRegion("lock_icon"); credits = getUISpriteAtlas().findRegion("credits"); rating = getUISpriteAtlas().findRegion("rating"); } private static void relaseResources() { skin = null; imageAtlas = null; uiSpriteAtlas = null; } }