java - Modifying an Images Enum -
so friend crated enum , want shorten it. thought shorting each of file paths in strings , refrencing string pokemonpath = "pictures/menu/mainmenu/";
, being pokepath +" cosmet.png
i'm not sure on how implement it. if has anyideas on how shorten more, love hear too. alos in own class file putting constants @ top not work properly, give me error.
i don't work enums dont know how use them efficiently.
this code
import java.awt.image; import java.io.file; import java.io.ioexception; import javax.imageio.imageio; public enum images { // menu stuff. don't know how organize it. it. welcomebg("pictures/menu/mainmenu/welcomebg.png"), pokemontitlemenubg( "pictures/menu/mainmenu/pokemontitlemenubg.png"), pokemonmenuall( "pictures/menu/pokemonmenu/pokemonmenuall.png"), pokemonmenucontinue( "pictures/menu/pokemonmenu/pokemonmenucontinue.png"), pokemonmenucontinueselected( "pictures/menu/pokemonmenu/pokemonmenucontinueselected.png"), pokemonmenuallselected( "pictures/menu/pokemonmenu/pokemonmenuallselected.png"), titlescreen( "pictures/menu/mainmenu/titlescreen.png"), professor("pictures/menu/npc/professor.png"), professorflip( "pictures/menu/npc/professorflip.png"), friendgirl("pictures/menu/playerpictures/friendgirl.png"), friendboy( "pictures/menu/playerpictures/friendboy.png"), playerboy( "pictures/menu/playerpictures/playerboy.png"), playergirl( "pictures/menu/playerpictures/playergirl.png"), male( "pictures/menu/playerpictures/male.png"), female( "pictures/menu/playerpictures/female.png"), credits( "pictures/menu/mainmenu/credits.png"), gender( "pictures/menu/playerpictures/gender.png"), // player sprites playerdown("pictures/sprites/player/"), playerdown1( "pictures/sprites/player/down1.png"), playerdown2( "pictures/sprites/player/down2.png"), playerleft( "pictures/sprites/player/left.png"), playerleft1( "pictures/sprites/player/left1.png"), playerleft2( "pictures/sprites/player/left2.png"), playerright( "pictures/sprites/player/right.png"), playerright1( "pictures/sprites/player/right1.png"), playerright2( "pictures/sprites/player/right2.png"), playerup( "pictures/sprites/player/up.png"), playerup1( "pictures/sprites/player/up1.png"), playerup2( "pictures/sprites/player/up2.png"), // npc sprites daddown("pictures/sprites/npc/dad/daddown.png"), dadright( "pictures/sprites/npc/dad/dadright.png"), boyleft( "pictures/sprites/npc/boy/boyleft.png"), boyright( "pictures/sprites/npc/boy/boyright.png"), boyright1( "pictures/sprites/npc/boy/boyright1.png"), boyright2( "pictures/sprites/npc/boy/boyright2.png"), boyup( "pictures/sprites/npc/boy/boyup.png"), boyup1( "pictures/sprites/npc/boy/boyup1.png"), boyup2( "pictures/sprites/npc/boy/boyup2.png"), dadup( "pictures/sprites/npc/dad/dadup.png"), dadleft( "pictures/sprites/npc/dad/dadleft.png"), girldown("pictures/sprites/npc/girl/girldown.png"), girlright( "pictures/sprites/npc/girl/girlright.png"), girlleft( "pictures/sprites/npc/girl/girlleft.png"), gatedown( "pictures/sprites/npc/gate/gatedown.png"), gateleft( "pictures/sprites/npc/gate/gateleft.png"), gateleft1( "pictures/sprites/npc/gate/gateleft1.png"), gateleft2( "pictures/sprites/npc/gate/gateleft2.png"), gateright( "pictures/sprites/npc/gate/gateright.png"), gateright1( "pictures/sprites/npc/gate/gateright1.png"), gateright2( "pictures/sprites/npc/gate/gateright2.png"), boydown( "pictures/sprites/npc/boy/boydown.png"), // npc effects exclamation("pictures/sprites/misc/exclamation.png"), // maps (the background, base thing) exitium("pictures/maps/exitium.png"), route1("pictures/maps/route1.png"), house1top( "pictures/maps/house1top.png"), house1bot( "pictures/maps/house1bot.png"), miracleforest1( "pictures/maps/miracleforest1.png"), miracleforest2( "pictures/maps/miracleforest2.png"), // map decorations (the stuff code on top of map!) house1overlay("pictures/sprites/structures/house1overlay.png"), house2overlay( "pictures/sprites/structures/house2overlay.png"), house3overlay( "pictures/sprites/structures/house3overlay.png"), house4overlay( "pictures/sprites/structures/house4overlay.png"), lamppost( "pictures/sprites/structures/lamppost.png"), mailbox( "pictures/sprites/structures/mailbox.png"), mailbox2( "pictures/sprites/structures/mailbox2.png"), columntrees( "pictures/sprites/structures/columntrees.png"), sign( "pictures/sprites/misc/sign.png"), greencolumntrees( "pictures/sprites/structures/greencolumntrees.png"), greencolumntrees2( "pictures/sprites/structures/greencolumntrees2.png"), greencolumntrees3( "pictures/sprites/structures/greencolumntrees3.png"), forestentrance( "pictures/sprites/structures/forestentrance.png"), greentreeoverlay( "pictures/sprites/structures/greentreeoverlay.png"), leftentrance( "pictures/sprites/structures/leftentrance.png"), rightentrance( "pictures/sprites/structures/rightentrance.png"), // gui things??? arrow("pictures/sprites/misc/arrow.png"), hand( "pictures/sprites/misc/hand.png"), dialogbox( "pictures/sprites/misc/dialogbox.png"), dialogbox2( "pictures/sprites/misc/dialogbox2.png"), dialogbox3( "pictures/sprites/misc/dialogbox3.png"), dialogbox4( "pictures/sprites/misc/dialogbox4.png"), // dont know mainbattleback("pictures/sprites/battle/battlestart/mainbattleback.png"), vs2( "pictures/sprites/battle/battlestart/vs2.png"), mainhead( "pictures/sprites/battle/battlestart/mainhead.png"), // battle menu gui things?? greenbackground("pictures/sprites/battle/battlemenu/greenbackground.png"), battlemenu2( "pictures/sprites/battle/battlemenu/battlemenu2.png"), hpbarally( "pictures/sprites/battle/battlemenu/hpbarally.png"), hpbarenemy( "pictures/sprites/battle/battlemenu/hpbarenemy.png"), movemenu2( "pictures/sprites/battle/battlemenu/movemenu2.png"), // natalie natalie("pictures/menu/npc/natalie.png"), nataliehead( "pictures/sprites/battle/battlestart/nataliehead.png"), nataliebattleback( "pictures/sprites/battle/battlestart/nataliebattleback.png"), // flashing playerflashnormal( "pictures/sprites/battle/battlestart/player_flash_normal.gif"), opponentflashnormal( "pictures/sprites/battle/battlestart/opponent_flash_normal.gif"), // throwing animation mainthrow("pictures/sprites/player/mainthrow.png"), mainthrow1( "pictures/sprites/player/mainthrow1.png"), mainthrow2( "pictures/sprites/player/mainthrow2.png"), // attack effects tackle("pictures/sprites/battle/attacks/tackle.png"), blackback( "pictures/sprites/battle/attacks/blackback.png"), growl( "pictures/sprites/battle/attacks/growl.png"), leer( "pictures/sprites/battle/attacks/leer.png"), // pokemons cosmet("pictures/sprites/pokemon/cosmet.png"), cosmetb( "pictures/sprites/pokemonb/cosmetb.png"), cosmetstart( "pictures/menu/starters/cosmetstart.png"), tykepol("pictures/sprites/pokemon/tykepol.png"), tykepolb( "pictures/sprites/pokemonb/tykepolb.png"), tykepolstart( "pictures/menu/starters/tykepolstart.png"), embite("pictures/sprites/pokemon/embite.png"), embiteb( "pictures/sprites/pokemonb/embiteb.png"), embitestart( "pictures/menu/starters/embitestart.png"), // balls pokeball("pictures/sprites/misc/pokeball.png"), pokeball4( "pictures/sprites/misc/pokeball4.gif"), // outlines outline1("pictures/sprites/battle/battlemenu/outline1.png"), outline2( "pictures/sprites/battle/battlemenu/outline2.png"), outline3( "pictures/sprites/battle/battlemenu/outline3.png"), outline4( "pictures/sprites/battle/battlemenu/outline4.png"); private string filepath; private image image; private boolean imageloaded; private images(string imagepath) { filepath = imagepath; imageloaded = false; } public image getimage() { if (!imageloaded) { loadimage(); } return image; } public void loadimage() { try { image = imageio.read(new file(filepath)); } catch (ioexception e) { system.err.println("failed load image!"); e.printstacktrace(); } imageloaded = true; }
how depend on want achieve.
if want prevent need replace path in multiple places should change, using string
constants reasonable idea.
something like...
public interface pathconstants { protected static final string sprites_path = "pictures/sprites"; protected static final string sprites_misc_path = sprites_path + "/misc"; protected static final string pokemon_sprites_path = sprites_path + "/pokemon"; protected static final string pokemonb_sprites_path = sprites_path + "/pokemonb"; protected static final string starters_menu_path = "pictures/menu/starters"; protected static final string sprites_battle_path = sprites_path + "/battle"; protected static final string menu_battle_path = sprites_battle_path + "/battlemenu"; }
then should able like...
public enum images { cosmet(pathconstants.sprites_path + "/cosmet.png"), cosmetb( pathconstants.pokemonb_sprites_path + "/cosmetb.png"), cosmetstart( pathconstants.starters_menu_path + "/cosmetstart.png"), tykepol(pathconstants.pokemon_sprites_path + "/tykepol.png"), tykepolb( pathconstants.pokemonb_sprites_path + "/tykepolb.png"), tykepolstart( pathconstants.starters_menu_path + "/tykepolstart.png"), embite(pathconstants.pokemon_sprites_path + "/embite.png"), embiteb( pathconstants.pokemonb_sprites_path + "/embiteb.png"), embitestart( pathconstants.starters_menu_path + "/embitestart.png"), // balls pokeball(pathconstants.sprites_misc_path + "/pokeball.png"), pokeball4( pathconstants.sprites_misc_path + "/pokeball4.gif"), // outlines outline1(pathconstants.menu_battle_path + "/outline1.png"), outline2( pathconstants.menu_battle_path + "/outline2.png"), outline3( pathconstants.menu_battle_path + "/outline3.png"), outline4( pathconstants.menu_battle_path + "/outline4.png");
for example.
this means if sprites_path
changes, need change 1 place , recompile.
Comments
Post a Comment