package sample.game.builder; import java.util.ArrayList; import library.core.model.CoreAnimation; import library.core.model.CoreModel; import library.core.object.CoreObjectFactory; import library.core.system.CoreImageData; import library.core.view.CoreView; import sample.game.controller.TitleController; import sample.game.controller.TitleController.Level; import sample.game.main.UserGameTitle; import sample.game.model.title.HowToPlayButton; import sample.game.model.title.LevelButton; import sample.game.model.title.SoundButton; import sample.game.model.title.TitleAnimationModel; public class TitleUserBuilder { private CoreObjectFactory objectFactory; private ArrayList<LevelButton> levelButtons; public TitleUserBuilder(CoreObjectFactory coreObjectFactory){ this.objectFactory=coreObjectFactory; this.levelButtons=new ArrayList<LevelButton>(); } public TitleController build(UserGameTitle palent){ TitleController controller=new TitleController(palent); /*CoreModel back=new CoreModel(new CoreImageData("image/title/title.jpg"), 640, 369, 1280, 720);*/ CoreModel back=new CoreModel(new CoreImageData("image/back/title.png"), 640, 369, 1280, 720); objectFactory.create(back, new CoreView(back, 0)); controller.setBackScreen(back); back=new CoreModel(new CoreImageData("image/back/title.png"), -640, 369, 1280, 720); objectFactory.create(back, new CoreView(back, 0)); controller.setBackScreen2(back); //ロゴの表示 CoreModel logo=new CoreModel(new CoreImageData("image/title/titlelogo.png"), 640, 96, 1024, 144); objectFactory.create(logo, new CoreView(logo, 0)); controller.setLogo(logo); //音ボタンの表示 ArrayList<CoreImageData> soundImages=new ArrayList<CoreImageData>(); soundImages.add(new CoreImageData("image/title/user/ui/mute_on.png")); soundImages.add(new CoreImageData("image/title/user/ui/mute_off.png")); SoundButton soundButton=new SoundButton(soundImages, 1153, 230, 96, 96); objectFactory.create(soundButton, new CoreView(soundButton, 1)); controller.setSoundButton(soundButton); //遊び方ボタン HowToPlayButton howToPlayButton=new HowToPlayButton(controller, new CoreImageData("image/title/user/ui/howtoplay.png"),1006 , 230, 96, 96); objectFactory.create(howToPlayButton, new CoreView(howToPlayButton, 1)); controller.setHowToPlayButton(howToPlayButton); //レベル選択ボタン LevelButton button=new LevelButton(Level.easy,controller,new CoreImageData("image/title/user/ui/easy.png"), 250, 630, 352, 96); levelButtons.add(button); objectFactory.create(button, new CoreView(button, 1)); button=new LevelButton(Level.normal,controller,new CoreImageData("image/title/user/ui/normal.png"), 640, 630, 352, 96); levelButtons.add(button); objectFactory.create(button, new CoreView(button, 1)); button=new LevelButton(Level.hard,controller,new CoreImageData("image/title/user/ui/hard.png"), 1030, 630, 352, 96); levelButtons.add(button); objectFactory.create(button, new CoreView(button, 1)); controller.setLevelButtons(levelButtons); //タイトルのキャラ //ミナミ ArrayList<CoreImageData> animDatas=new ArrayList<CoreImageData>(); animDatas.add(new CoreImageData("image/title/user/anim/minamiTitle.png",0,0,324,324)); animDatas.add(new CoreImageData("image/title/user/anim/minamiTitle.png",1,0,324,324)); animDatas.add(new CoreImageData("image/title/user/anim/minamiTitle.png",2,0,324,324)); ArrayList<Integer> animIndexs=new ArrayList<Integer>(); animIndexs.add(1); animIndexs.add(0); animIndexs.add(1); animIndexs.add(2); ArrayList<CoreAnimation> anims=new ArrayList<CoreAnimation>(); //ループ絵の設定 anims.add(new CoreAnimation("easyLoop", animDatas,animIndexs,0.3f, true)); animDatas=new ArrayList<CoreImageData>(); animDatas.add(new CoreImageData("image/title/user/minami_title4.png")); animIndexs=new ArrayList<Integer>(); animIndexs.add(0); //停止絵の設定 anims.add(new CoreAnimation("easyEnd", animDatas, animIndexs, 1f, false)); TitleAnimationModel animationModel=new TitleAnimationModel(anims, 0, 250, 384, 324, 324); objectFactory.create(animationModel, new CoreView(animationModel, 1)); controller.setEasyCharaAnim(animationModel); //なんぼう animDatas=new ArrayList<CoreImageData>(); animDatas.add(new CoreImageData("image/title/user/anim/nanbouTitle.png",0,0,324,324)); animDatas.add(new CoreImageData("image/title/user/anim/nanbouTitle.png",1,0,324,324)); animDatas.add(new CoreImageData("image/title/user/anim/nanbouTitle.png",2,0,324,324)); animIndexs=new ArrayList<Integer>(); animIndexs.add(1); animIndexs.add(0); animIndexs.add(1); animIndexs.add(2); anims=new ArrayList<CoreAnimation>(); //ループ絵の設定 anims.add(new CoreAnimation("normalLoop", animDatas,animIndexs,0.3f, true)); animDatas=new ArrayList<CoreImageData>(); animDatas.add(new CoreImageData("image/title/user/nanbou_title4.png")); animIndexs=new ArrayList<Integer>(); animIndexs.add(0); //停止絵の設定 anims.add(new CoreAnimation("normalEnd", animDatas, animIndexs, 1f, false)); animationModel=new TitleAnimationModel(anims, 0, 640, 384, 324, 324); objectFactory.create(animationModel, new CoreView(animationModel, 1)); controller.setNormalCharaAnim(animationModel); //へび animDatas=new ArrayList<CoreImageData>(); animDatas.add(new CoreImageData("image/title/user/anim/snakeTitle.png",0,0,324,324)); animDatas.add(new CoreImageData("image/title/user/anim/snakeTitle.png",1,0,324,324)); animIndexs=new ArrayList<Integer>(); animIndexs.add(0); animIndexs.add(1); anims=new ArrayList<CoreAnimation>(); //ループ絵の設定 anims.add(new CoreAnimation("hardLoop", animDatas,animIndexs,0.3f, true)); animDatas=new ArrayList<CoreImageData>(); animDatas.add(new CoreImageData("image/title/user/snake_title3.png")); animIndexs=new ArrayList<Integer>(); animIndexs.add(0); //停止絵の設定 anims.add(new CoreAnimation("hardEnd", animDatas, animIndexs, 1f, false)); animationModel=new TitleAnimationModel(anims, 0, 1030, 384, 324, 324); objectFactory.create(animationModel, new CoreView(animationModel, 1)); controller.setHardCharaAnim(animationModel); //フェイド用のマスク CoreModel fadeMask=new CoreModel(new CoreImageData("image/game/screen/fadeMask.png"), 640, 360, 1280, 720); fadeMask.setShowView(false); fadeMask.setAlpha(0); objectFactory.create(fadeMask, new CoreView(fadeMask, 20)); controller.setFadeMask(fadeMask); controller.checkInitProduction(); return controller; } }