Advertisement
Guest User

Untitled

a guest
Mar 3rd, 2015
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 12.09 KB | None | 0 0
  1. public class StoneScreen implements Screen, purchaseInterface {
  2.        
  3.     OrthographicCamera camera;
  4.     Viewport view;
  5.     final TombStone game;
  6.    
  7.     MainScreen ms;
  8.    
  9.     purchaseInterface pInt;
  10.     //Textures and art.
  11.     public Texture background, sdStone, stone_3, arrowBack, flowerTex, flowerTex_2, flowerTemp, menubar, fbTex;
  12.     public Sprite backgrounds;
  13.    
  14.    
  15.    
  16.     Texture[] stones = {sdStone, stone_3};
  17.    
  18.    
  19.     ObjectMap<Integer, Texture> screenMap = new ObjectMap<Integer, Texture>();
  20.    
  21.     ObjectMap<String, Boolean> mTexturesStatus = new ObjectMap<String, Boolean>();
  22.    
  23.    
  24.     //TextField´s stuff
  25.     private Stage stage, stageText, stagePurc;
  26.     private Skin skin;
  27.     ImageButton btnArrow, btnFB, miniStone, moveBtn;
  28.    
  29.     public static boolean moving = false;
  30.    
  31.     LogicPurchase lp;
  32.    
  33.     Animation stoneAnimation;
  34.     TextureRegion[] stoneRegion;
  35.    
  36.     DragAndDrop dd;
  37.    
  38.     Image stoneImage, flowerImage, flowerImage_2, flowerImageTemp;
  39.                    
  40.     private static int counter= 1;
  41.    
  42.    
  43.     private static final float screenWidth = 1000;
  44.     private static final float screenHeight = 1500;
  45.    
  46.     private   int textX = 220;
  47.     private   int textY = 700;
  48.    
  49.     private   int textAreaX = 220;
  50.     private   int textAreaY = 480;
  51.    
  52.     private  final int textWidth = 350;
  53.     private  final int textHeight = 100;
  54.    
  55.     private final float stoneWidth = 600;
  56.     private final float stoneHeight = 800;
  57.    
  58.     public static boolean stone1 = false;
  59.     public static boolean stone2 = false;
  60.     public static boolean flower1 = false;
  61.    
  62.    
  63.     public StoneScreen(TombStone gam)    {
  64.         this.game = gam;
  65.         this.pInt = game.pi;
  66.        
  67.        
  68.        
  69.         float aspectRatio = (float) Gdx.graphics.getHeight() / (float)Gdx.graphics.getWidth();
  70.        
  71.         camera = new OrthographicCamera();
  72.         camera.setToOrtho(false, screenWidth, screenHeight);
  73.  
  74.        
  75.         game.inputMultiplexer = new InputMultiplexer();
  76.        
  77.        
  78.         game.assets.load();
  79.         loadStandard();
  80.        
  81.        
  82.        
  83.         flowerImage = new Image(flowerTemp);
  84.         //flowerImageTemp = new Image(flowerTemp);
  85.         //flowerImage_2 = new Image(flowerTex_2);
  86.        
  87.        
  88.         //Drag n drop
  89.         dd = new DragAndDrop();
  90.         stageText = new Stage(new StretchViewport(1000, 1500));
  91.         stage = new Stage();
  92.         stagePurc = new Stage();
  93.        
  94.        
  95.        
  96.        
  97.         Skin skin = new Skin();
  98.         Skin textSkin = new Skin();
  99.        
  100.         screenMap.put(0, sdStone);
  101.         screenMap.put(1, stone_3);
  102.        
  103.         mTexturesStatus.put("stone1", stone1);
  104.         mTexturesStatus.put("stone2", stone2);
  105.        
  106.         setStone1();
  107.        
  108.     }
  109.    
  110.     public void loadStandard(){
  111.         background = game.assets.background;
  112.         sdStone = game.assets.sdStone;
  113.         stone_3 = game.assets.stone3;
  114.         flowerTex = game.assets.flowerTexture;
  115.         flowerTemp = game.assets.flowerTemp;
  116.         menubar = game.assets.menuBar;
  117.         fbTex = game.assets.facebook;
  118.     }
  119.  
  120.    
  121.     public void setStone1() {
  122.         stoneImage = new Image(screenMap.get(0));
  123.        
  124.     }
  125.    
  126.     public void setStone(int screenId) {
  127.         stoneImage = new Image(screenMap.get(screenId));
  128.        
  129.       }
  130.  
  131.    
  132.     @Override
  133.     public void render(float delta) {
  134.         Gdx.gl.glClearColor(0, 0, 0.2f,1);
  135.         Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
  136.        
  137.        
  138.        
  139.        
  140.        
  141.         camera.update();
  142.        
  143.      
  144.         game.batch.setProjectionMatrix(camera.combined);
  145.        
  146.        
  147.         game.batch.begin();
  148.         Gdx.app.log("X", "FPS:" + Gdx.graphics.getFramesPerSecond());
  149.        
  150.        
  151.        
  152.         game.batch.draw(background,0,0);
  153.        
  154.         //game.batch.draw(sdStone, 160, 190, screenWidth * 0.60f, screenHeight * 0.60f);
  155.        
  156.        
  157.        
  158.         stoneImage.setBounds(180, 190, stoneWidth, stoneHeight);
  159.         stoneImage.draw(game.batch, 2);
  160.        
  161.        
  162.        
  163.         flowerImage.setBounds(300, 50, screenWidth * 0.65f, screenHeight * 0.30f);
  164.         flowerImage.draw(game.batch, 2);
  165.        
  166.         //SpriteBatch batcher = (SpriteBatch)stage.getBatch();
  167.         game.batch.draw(menubar, 0, 1400, 1000, 100);
  168.        
  169.        
  170.        
  171.         game.batch.end();
  172.        
  173.         stage.act(Gdx.graphics.getDeltaTime());
  174.         stage.draw();
  175.        
  176.        
  177.         stageText.act(Gdx.graphics.getDeltaTime());
  178.         stageText.draw();
  179.        
  180.        
  181.        
  182.     }
  183.    
  184.    
  185.  
  186.     @Override
  187.     public void resize(int width, int height) {
  188.        
  189.        
  190.         stageText.getViewport().update(width, height, true);
  191.         //camera.update();
  192.     }
  193.  
  194.     @Override
  195.     public void show() {
  196.          
  197.            
  198.        
  199.        
  200.         //Generates the new font
  201.         FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.internal("AcademyEngraved.ttf"));
  202.         FreeTypeFontParameter parameter = new FreeTypeFontParameter();
  203.         parameter.size = 40;
  204.         BitmapFont textFont = generator.generateFont(parameter);
  205.         generator.dispose(); //Avoiding memory leaks.
  206.        
  207.        
  208.    
  209.    
  210.     Preferences prefs = Gdx.app.getPreferences("preferences");
  211.    
  212.    
  213.     screenMap.put(prefs.getInteger("stoneOne", 0), sdStone);
  214.    
  215.     screenMap.put(prefs.getInteger("stoneTwo", 1), stone_3);
  216.    
  217.    
  218.    
  219.    
  220.     //Sets skin
  221.     skin = new Skin(Gdx.files.internal("uiskin.json"));
  222.     //Sets a color to the new font
  223.     Color fontcolor = Color.BLACK;
  224.    
  225.     //Sets a new font to the textare n the textfield
  226.     final TextFieldStyle textstyle = new TextFieldStyle();
  227.     textstyle.font = textFont;
  228.     textstyle.fontColor = fontcolor;
  229.    
  230.    
  231.     final TextArea textArea = new TextArea(prefs.getString("textArea", "Enter text:"), textstyle);
  232.     textArea.setX(textAreaX);
  233.     textArea.setY(textAreaY);
  234.     textArea.setWidth(textWidth);
  235.     textArea.setHeight(textHeight);
  236.     textArea.setMaxLength(30);
  237.     //textArea.setZIndex(5);
  238.    
  239.    
  240.      final TextField textField = new TextField(prefs.getString("textField", "Enter name:"), textstyle);
  241.        
  242.         textField.setX(textX);
  243.         textField.setY(textY);
  244.         textField.setMaxLength(20);
  245.         textField.setWidth(textWidth);
  246.         textField.setHeight(textHeight);
  247.        
  248.        
  249.        
  250.        
  251.        
  252.        
  253.        
  254.         //String text = Gdx.app.getPreferences("prefs").getString("text", "Default text if missimg");
  255.         //TextField textField = new TextField(text, skin);
  256.        
  257.         //Backbutton
  258.                 ImageButtonStyle styleTwo = new ImageButtonStyle();
  259.                 //ImageButtonStyle styleFB = new ImageButtonStyle();
  260.                 TextureRegionDrawable arrowImage = new TextureRegionDrawable(new TextureRegion(new Texture("pil.png")));
  261.                 TextureRegionDrawable arrowImageDown = new TextureRegionDrawable(new TextureRegion(new Texture("pilD.png")));
  262.                
  263.                 TextureRegionDrawable fbDrawable = new TextureRegionDrawable(new TextureRegion(new Texture("fb.png")));
  264.                 TextureRegionDrawable fbDrawableD = new TextureRegionDrawable(new TextureRegion(new Texture("fbDown.png")));
  265.                
  266.                 ImageButtonStyle styleFB = new ImageButtonStyle();
  267.                 styleFB.up = skin.newDrawable(skin.newDrawable(fbDrawable));
  268.                 styleFB.down = skin.newDrawable(skin.newDrawable(fbDrawableD));
  269.                 //TextureRegionDrawable fbImage = new TextureRegionDrawable(new TextureRegion(new Texture("fb.png")));
  270.                 //TextureRegionDrawable fbImageDown = new TextureRegionDrawable(new TextureRegion(new Texture("fbDown.png")));
  271.                 styleTwo.up = skin.newDrawable(skin.newDrawable(arrowImage));
  272.                 styleTwo.down = skin.newDrawable(skin.newDrawable(arrowImageDown));
  273.        
  274.                 styleTwo.pressedOffsetX = -1;
  275.                 styleTwo.pressedOffsetY = -1;
  276.                
  277.                
  278.                
  279.                
  280.                 //Back button
  281.         btnArrow = new ImageButton(styleTwo);
  282.        
  283.         miniStone = new ImageButton(styleTwo);
  284.         //btnFB = new ImageButton(styleFB);
  285.         moveBtn = new ImageButton(styleTwo);
  286.        
  287.         btnArrow.setSize(110, 110);
  288.         btnArrow.setPosition(50, 1800);
  289.        
  290.         btnFB = new ImageButton(styleFB);
  291.         btnFB.setSize(110, 110);
  292.         btnFB.setPosition(200, 1800);
  293.        
  294.         miniStone.setSize(110, 110);
  295.         miniStone.setPosition(200, 1800);
  296.        
  297.         moveBtn.setSize(110, 110);
  298.         moveBtn.setPosition(200, 1800);
  299.         //btnFB.setSize(100, 100);
  300.         //btnFB.setPosition(800, 10);
  301.        
  302.         stageText.addActor(textField);
  303.         stageText.addActor(textArea);
  304.         stage.addActor(btnArrow);
  305.         stage.addActor(btnFB);
  306.         stagePurc.addActor(miniStone);
  307.        
  308.         //stage.addActor(table);
  309.    
  310.        
  311.        
  312.        
  313.        
  314.        
  315.         InputListener drag = new InputListener() {
  316.  
  317.             @Override
  318.             public boolean touchDown(InputEvent event, float x, float y,
  319.                     int pointer, int button) {
  320.                 // TODO Auto-generated method stub
  321.                 return super.touchDown(event, x, y, pointer, button);
  322.             }
  323.  
  324.             @Override
  325.             public void touchUp(InputEvent event, float x, float y,
  326.                     int pointer, int button) {
  327.                 // TODO Auto-generated method stub
  328.                 super.touchUp(event, x, y, pointer, button);
  329.             }
  330.  
  331.             @Override
  332.             public void touchDragged(InputEvent event, float x, float y,
  333.                     int pointer) {
  334.                 textField.setOrigin(Gdx.input.getX(), Gdx.input.getY());
  335.                 textField.setPosition(x, y);
  336.                 super.touchDragged(event, x, y, pointer);
  337.             }
  338.  
  339.            
  340.            
  341.            
  342.            
  343.         };
  344.    
  345.         game.inputMultiplexer.addProcessor(stage);
  346.         game.inputMultiplexer.addProcessor(stagePurc);
  347.         game.inputMultiplexer.addProcessor(stageText);
  348.        
  349.        
  350.        
  351.        
  352.        
  353.         Gdx.input.setInputProcessor(game.inputMultiplexer);
  354.        
  355.            
  356.         textField.addListener(drag);
  357.        
  358.        
  359.        
  360.         btnFB.addListener(new ChangeListener() {
  361.  
  362.             @Override
  363.             public void changed(ChangeEvent event, Actor actor) {
  364.                 saveScreenshot();
  365.                
  366.             }
  367.            
  368.         });
  369.        
  370.        
  371.        
  372.        
  373.        
  374.         //Backbutton takes us back to mainmenu
  375.                 btnArrow.addListener(new ChangeListener() {
  376.  
  377.                     @Override
  378.                     public void changed(ChangeEvent event, Actor actor) {
  379.                        
  380.                        
  381.                         game.setScreen(0);
  382.                        
  383.                        
  384.                         //Saves the entered text.
  385.                        
  386.                         Preferences prefs = Gdx.app.getPreferences("preferences");
  387.                         prefs.putString("textField", textField.getText());
  388.                         prefs.putString("textArea", textArea.getText());
  389.                         prefs.putBoolean("stone1", true);
  390.                         prefs.putBoolean("stone2", true);
  391.                         prefs.flush();
  392.                        
  393.                        
  394.                        
  395.                        
  396.                     }
  397.  
  398.                    
  399.                 });
  400.        
  401.                
  402.                
  403.                    
  404.                    
  405.                    
  406.            
  407.     }
  408.  
  409.     @Override
  410.     public void hide() {
  411.         // TODO Auto-generated method stub
  412.        
  413.     }
  414.  
  415.     @Override
  416.     public void pause() {
  417.         // TODO Auto-generated method stub
  418.        
  419.     }
  420.  
  421.     @Override
  422.     public void resume() {
  423.         // TODO Auto-generated method stub
  424.        
  425.     }
  426.  
  427.     @Override
  428.     public void dispose() {
  429.         background.dispose();
  430.         sdStone.dispose();
  431.         arrowBack.dispose();
  432.         stone_3.dispose();
  433.         flowerTex.dispose();
  434.         flowerTex_2.dispose();
  435.         flowerTemp.dispose();
  436.         menubar.dispose();
  437.        
  438.     }
  439.  
  440.     public void changeStone1() {
  441.        
  442.        
  443.         stoneImage.setDrawable(new SpriteDrawable(new Sprite(stone_3)));
  444.        
  445.         sdStone.dispose();
  446.         camera.update();
  447.     }
  448.  
  449.    
  450.     private static void saveScreenshot() {
  451.         try{
  452.             FileHandle fh;
  453.             do{
  454.                 fh = new FileHandle(Gdx.files.getLocalStoragePath() + "screenshot" + counter++ + ".png");
  455.             }while(fh.exists());
  456.             Pixmap pixmap = getScreenshot(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight(), false);
  457.             PixmapIO.writePNG(fh, pixmap);
  458.             pixmap.dispose();
  459.         }catch(Exception e) {
  460.            
  461.         }
  462.     }
  463.    
  464.    
  465.    
  466.    
  467.     private static Pixmap getScreenshot(int x, int y, int w, int h, boolean yDown){
  468.         final Pixmap pixmap = ScreenUtils.getFrameBufferPixmap(x, y, w, h);
  469.        
  470.         if(yDown) {
  471.             ByteBuffer pixels = pixmap.getPixels();
  472.             int numBytes = w * h * 4;
  473.             byte[] lines = new byte[numBytes];
  474.             int numBytesPerLine = w * 4;
  475.             for (int i = 0; i < h; i++) {
  476.                 pixels.position((h - i - 1) * numBytesPerLine);
  477.                 pixels.get(lines, i * numBytesPerLine, numBytesPerLine);
  478.             }
  479.             pixels.clear();
  480.             pixels.put(lines);
  481.         }
  482.         return pixmap;
  483.     }
  484.    
  485.    
  486.    
  487.    
  488.     @Override
  489.     public void applyTombstone() {
  490.         // TODO Auto-generated method stub
  491.        
  492.     }
  493.  
  494.     @Override
  495.     public void applyTombstone1() {
  496.         // TODO Auto-generated method stub
  497.        
  498.     }
  499.  
  500.     @Override
  501.     public void applyTombstone2() {
  502.         // TODO Auto-generated method stub
  503.        
  504.     }
  505.  
  506.     @Override
  507.     public void applyFlower() {
  508.         // TODO Auto-generated method stub
  509.         flowerImage.setDrawable(new SpriteDrawable(new Sprite(flowerTex)));
  510.        
  511.         camera.update();
  512.     }
  513.  
  514.     @Override
  515.     public void applyFlower1() {
  516.         // TODO Auto-generated method stub
  517.        
  518.     }
  519.  
  520.     @Override
  521.     public void applyLight() {
  522.         // TODO Auto-generated method stub
  523.        
  524.     }
  525.  
  526.     @Override
  527.     public void processPurchases() {
  528.         // TODO Auto-generated method stub
  529.        
  530.     }
  531.  
  532.     @Override
  533.     public void changeStone() {
  534.         // TODO Auto-generated method stub
  535.         stoneImage.setDrawable(new SpriteDrawable(new Sprite(stone_3)));
  536.        
  537.         camera.update();
  538.     }
  539.  
  540.     @Override
  541.     public boolean returnPurchase() {
  542.         // TODO Auto-generated method stub
  543.         return false;
  544.     }
  545.  
  546.    
  547.    
  548.    
  549. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement