Guest User

Untitled

a guest
Nov 20th, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.60 KB | None | 0 0
  1. public class TextButtonWithBorder extends TextButton {
  2. ShapeRenderer shapeRenderer = new ShapeRenderer();
  3. public TextButtonWithBorder(String text, Skin skin) {
  4. super(text, skin);
  5. this.setTransform(true);
  6. this.addReduceClickListener();
  7. }
  8.  
  9. public TextButtonWithBorder(String text, Skin skin, String styleName) {
  10. super(text, skin, styleName);
  11. this.setTransform(true);
  12. this.addReduceClickListener();
  13. }
  14.  
  15. public TextButtonWithBorder(String text, TextButtonStyle style) {
  16. super(text, style);
  17. this.setTransform(true);
  18. this.addReduceClickListener();
  19. }
  20.  
  21. @Override
  22. public void draw(Batch batch, float parentAlpha) {
  23. batch.end();
  24. shapeRenderer.setProjectionMatrix(batch.getProjectionMatrix());
  25. shapeRenderer.begin(ShapeRenderer.ShapeType.Line);
  26. shapeRenderer.setColor(Color.WHITE);
  27. shapeRenderer.rect(getX(),getY(),getWidth()*getScaleX(),getHeight()*getScaleY());
  28. shapeRenderer.end();
  29. batch.begin();
  30. super.draw(batch, parentAlpha);
  31. }
  32.  
  33. public void setCenter(float x,float y)
  34. {
  35. setPosition(x-getWidth()/2*getScaleX(),y-getHeight()/2*getScaleY());
  36. }
  37. public void setCenter(Vector2 center)
  38. {
  39. setPosition(center.x-getWidth()/2*getScaleX(),center.y-getHeight()/2*getScaleY());
  40. }
  41. public Vector2 getCenter()
  42. {
  43. return new Vector2(getX()+getWidth()/2*getScaleX(),getY()+getHeight()/2*getScaleY());
  44. }
  45. public void addReduceClickListener()
  46. {
  47. addListener((new InputListener(){
  48. public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) {
  49. Vector2 center = getCenter();
  50. setScale(0.9F);
  51. setCenter(center);
  52. return true;
  53. }
  54. public void touchUp (InputEvent event, float x, float y, int pointer, int button) {
  55. Vector2 center = getCenter();
  56. setScale(1F);
  57. setCenter(center);
  58. }
  59. }));
  60. }
  61. public void dispose()
  62. {
  63. shapeRenderer.dispose();
  64. }
  65.  
  66. }
  67.  
  68. public class MainMenuScreen implements Screen {
  69. final PongAndroid game;
  70. Stage stage;
  71. BitmapFont font;
  72. TextButtonWithBorder buttonOnePlayer;
  73. TextButtonWithBorder buttonTwoPlayers;
  74. TextButtonWithBorder buttonAbout;
  75. TextButtonWithBorder buttonExit;
  76. Label title;
  77. ImageButton options;
  78.  
  79. public MainMenuScreen(final PongAndroid game) {
  80. this.game=game;
  81. stage = new Stage(game.viewport,game.batch);
  82. Gdx.input.setInputProcessor(stage);
  83.  
  84. // Styles
  85. font = new BitmapFont(Gdx.files.internal("MVboli50.fnt"));
  86. TextButton.TextButtonStyle textButtonStyle = new TextButton.TextButtonStyle();
  87. textButtonStyle.font = font;
  88. Label.LabelStyle labelStyle = new Label.LabelStyle();
  89. labelStyle.font = font;
  90. ImageButton.ImageButtonStyle imageButtonStyle = new ImageButton.ImageButtonStyle();
  91.  
  92. // Configure Actors
  93. // title
  94. title = new Label("Pong Android",labelStyle);
  95. title.setFontScale(2f);
  96. title.setPosition(game.WIDTH/2-title.getWidth()/2*title.getFontScaleX(),game.HEIGHT-title.getHeight()-(game.HEIGHT*0.15f));
  97. // buttonOnePlayer
  98. buttonOnePlayer = new TextButtonWithBorder("1 Player",textButtonStyle);
  99. buttonOnePlayer.setWidth(game.WIDTH*0.70f);
  100. buttonOnePlayer.setHeight(buttonOnePlayer.getHeight()*1.2f);
  101. buttonOnePlayer.setPosition(game.WIDTH/2-buttonOnePlayer.getWidth()/2,title.getY()-title.getHeight()/2-buttonOnePlayer.getHeight()-game.HEIGHT*0.05f);
  102. //buttonTwoPlayer
  103. buttonTwoPlayers = new TextButtonWithBorder("2 Players",textButtonStyle);
  104. buttonOnePlayer.setTransform(true);
  105. buttonTwoPlayers.setWidth(buttonOnePlayer.getWidth());
  106. buttonTwoPlayers.setHeight(buttonTwoPlayers.getHeight()*1.2f);
  107. buttonTwoPlayers.setPosition(buttonOnePlayer.getX(),buttonOnePlayer.getY()-buttonOnePlayer.getHeight()-game.HEIGHT*0.05f);
  108. //buttonAbout
  109. buttonAbout = new TextButtonWithBorder("About",textButtonStyle);
  110. buttonOnePlayer.setTransform(true);
  111. buttonAbout.setWidth(buttonTwoPlayers.getWidth()/2-game.WIDTH*0.05f);
  112. buttonAbout.setHeight(buttonAbout.getHeight()*1.2f);
  113. buttonAbout.setPosition(buttonTwoPlayers.getX(),buttonTwoPlayers.getY()-buttonAbout.getHeight()-game.HEIGHT*0.05f);
  114. //buttonExit
  115. buttonExit = new TextButtonWithBorder("Exit",textButtonStyle);
  116. buttonOnePlayer.setTransform(true);
  117. buttonExit.setWidth(buttonAbout.getWidth());
  118. buttonExit.setHeight(buttonExit.getHeight()*1.2f);
  119. buttonExit.setPosition(buttonAbout.getX()+buttonAbout.getWidth()+game.WIDTH*0.1f, buttonAbout.getY());
  120.  
  121. // Add listeners to Actors
  122. buttonExit.addListener(new InputListener(){
  123.  
  124. @Override
  125. public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
  126. System.out.println("down");
  127. return super.touchDown(event, x, y, pointer, button);
  128. }
  129.  
  130. @Override
  131. public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
  132. System.out.println("up");
  133. super.touchUp(event, x, y, pointer, button);
  134. System.out.println("up");
  135. }
  136. });
  137.  
  138.  
  139.  
  140. // Add Actors to stage
  141. stage.addActor(title);
  142. stage.addActor(buttonOnePlayer);
  143. stage.addActor(buttonTwoPlayers);
  144. stage.addActor(buttonAbout);
  145. stage.addActor(buttonExit);
  146. //stage.addActor();
  147.  
  148. }
  149.  
  150.  
  151. @Override
  152. public void show() {
  153.  
  154. }
  155.  
  156. @Override
  157. public void render(float delta) {
  158. stage.act(delta);
  159. stage.draw();
  160.  
  161.  
  162. }
  163.  
  164. @Override
  165. public void resize(int width, int height) {
  166.  
  167. }
  168.  
  169.  
  170. @Override
  171. public void pause() {
  172.  
  173. }
  174.  
  175. @Override
  176. public void resume() {
  177.  
  178. }
  179.  
  180. @Override
  181. public void hide() {
  182.  
  183. }
  184.  
  185. @Override
  186. public void dispose() {
  187. stage.dispose();
  188. buttonOnePlayer.dispose();
  189. buttonTwoPlayers.dispose();
  190. buttonAbout.dispose();
  191. buttonExit.dispose();
  192.  
  193. }
  194. }
Add Comment
Please, Sign In to add comment