MenuExtra.java 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. package com.darkdimension.ritle_run;
  2. import android.content.res.Resources;
  3. import android.graphics.Canvas;
  4. public class MenuExtra extends Menu
  5. {
  6. //Environment
  7. private Ground ground;
  8. private DiPoint tree0, tree1;
  9. //Dark Dimension
  10. private DiPoint darkDimensionLogo;
  11. private String topText, bottomText;
  12. //Shares
  13. private DiPoint facebook, twitter, tumblr, googlePlayStore;
  14. //Change Character
  15. private int charState;
  16. private DiAnimation aChangeChar;
  17. private Character character;
  18. private DiPoint buttonChangeChar;
  19. private String stringChangeChar;
  20. //Back Button
  21. private DiPoint buttonBack;
  22. private String textBack;
  23. //Constructor
  24. public MenuExtra(Resources resources)
  25. {
  26. //Super Constructor
  27. super();
  28. //Current Ground
  29. ground = new Ground();
  30. ground.setWidth(GameSurface.width /ground.getWidth() +2);
  31. ground.setCenterX(GameSurface.width/2);
  32. ground.setBottom(GameSurface.height);
  33. //Trees
  34. tree0 = new DiPoint(5);
  35. tree0.setCenterX(GameSurface.width /4);
  36. tree0.setBottom (ground.getGroundLevel());
  37. tree1 = new DiPoint(6);
  38. tree1.setCenterX(GameSurface.width *5/6);
  39. tree1.setBottom (ground.getGroundLevel());
  40. //Dark Dimension
  41. darkDimensionLogo = new DiPoint(10);
  42. darkDimensionLogo.setCenterX(GameSurface.width/2);
  43. darkDimensionLogo.setCenterY(GameSurface.height/2);
  44. topText = resources.getString(R.string.made_by);
  45. bottomText = resources.getString(R.string.dark_dimension);
  46. //Shares
  47. facebook = new DiPoint(11);
  48. facebook.setLeft(facebook.getWidth()/2);
  49. facebook.setBottom(GameSurface.height -facebook.getHeight()/2);
  50. twitter = new DiPoint(12);
  51. twitter.setLeft(facebook.getRight() +twitter.getWidth()/2);
  52. twitter.setBottom(GameSurface.height -twitter.getHeight()/2);
  53. tumblr = new DiPoint(13);
  54. tumblr.setLeft(twitter.getRight() +tumblr.getWidth()/2);
  55. tumblr.setBottom(GameSurface.height -tumblr.getHeight()/2);
  56. googlePlayStore = new DiPoint(14);
  57. googlePlayStore.setLeft(tumblr.getRight() +googlePlayStore.getWidth()/2);
  58. googlePlayStore.setBottom(GameSurface.height -googlePlayStore.getHeight()/2);
  59. //Change Character
  60. charState = 0;
  61. aChangeChar = new DiAnimation(10);
  62. character = new Character();
  63. character.setLeft(GameSurface.width * 13/16);
  64. character.setBottom(ground.getGroundLevel());
  65. buttonChangeChar = new DiPoint(8);
  66. buttonChangeChar.setCenterX(character.getCenterX());
  67. buttonChangeChar.setTop(character.getBottom());
  68. stringChangeChar = resources.getString(R.string.change_character);
  69. //Back Button
  70. buttonBack = new DiPoint(8);
  71. buttonBack.setRight(GameSurface.width - buttonBack.getWidth()/2);
  72. buttonBack.setTop(buttonBack.getHeight()/2);
  73. textBack = resources.getString(R.string.button_back);
  74. }
  75. public Action update()
  76. {
  77. //Super Update
  78. super.update();
  79. //Process input
  80. if (bTouched)
  81. {
  82. //Cancel Input
  83. bTouched = false;
  84. if (facebook .isTouched(touchX, touchY)) return Action.TO_FACEBOOK ; else
  85. if (twitter .isTouched(touchX, touchY)) return Action.TO_TWITTER ; else
  86. if (tumblr .isTouched(touchX, touchY)) return Action.TO_TUMBLR ; else
  87. if (googlePlayStore .isTouched(touchX, touchY)) return Action.TO_PLAY_STORE ; else
  88. //Touch Back Button
  89. if (buttonBack.isTouched(touchX, touchY))
  90. {
  91. destroy(Action.TO_MAIN_MENU);
  92. return Action.NO_ACTION;
  93. } else
  94. if (buttonChangeChar.isTouched(touchX, touchY) && !aChangeChar.isRunning())
  95. {
  96. charState = 0;
  97. aChangeChar.startFromBeginning();
  98. }
  99. }
  100. //Background
  101. if (Background.animate(null, 0))
  102. bDraw = true;
  103. //Character
  104. if (character.animate())
  105. bDraw = true;
  106. if (aChangeChar.update())
  107. {
  108. if (charState == 0)
  109. {
  110. character.setLeft(GameSurface.width * 13/16 +(int)(GameSurface.width *3/16 *Math.cos(Math.toRadians(90 -aChangeChar.getDistance(180)))));
  111. character.setBottom(ground.getGroundLevel() +character.getHeight() +(int)(character.getHeight() *Math.sin(Math.toRadians(270 +aChangeChar.getDistance(180)))));
  112. } else
  113. if (charState == 1)
  114. {
  115. character.setLeft(GameSurface.width * 13/16 +(int)(GameSurface.width *3/16 *Math.cos(Math.toRadians(90 +aChangeChar.getDistance(180)))));
  116. character.setBottom(ground.getGroundLevel() +character.getHeight() +(int)(character.getHeight() *Math.sin(Math.toRadians(90 -aChangeChar.getDistance(180)))));
  117. }
  118. if (aChangeChar.isAtEnd() && charState == 0)
  119. {
  120. charState = 1;
  121. aChangeChar.startFromBeginning();
  122. return Action.CHANGE_CHAR;
  123. }
  124. bDraw = true;
  125. }
  126. //If it's destroyed, return next action
  127. if (aBasic.isAtStart() && !aBasic.isPositive())
  128. return nMenu;
  129. return Action.NO_ACTION;
  130. }
  131. public void draw(Canvas canvas)
  132. {
  133. //Super Draw
  134. super.draw(canvas);
  135. //Background
  136. Background.Draw(canvas, 0);
  137. //Ground
  138. ground.draw(canvas, 0, 0, null);
  139. //Trees
  140. tree0.draw(canvas);
  141. tree1.draw(canvas);
  142. //Dark Dimension
  143. darkDimensionLogo.draw(canvas, invisible);
  144. canvas.drawText(topText, GameSurface.width/2, darkDimensionLogo.getTop() -10 *GameSurface.density, GameSurface.font);
  145. canvas.drawText(bottomText, GameSurface.width/2, darkDimensionLogo.getBottom() +20 *GameSurface.density, GameSurface.font);
  146. //Shares
  147. facebook.draw(canvas, invisible);
  148. twitter.draw(canvas, invisible);
  149. tumblr.draw(canvas, invisible);
  150. googlePlayStore.draw(canvas, invisible);
  151. character.drawSimple(canvas, invisible);
  152. buttonChangeChar.draw(canvas, invisible);
  153. canvas.drawText(stringChangeChar, buttonChangeChar.getCenterX(), buttonChangeChar.getCenterY() +(10 *GameSurface.density), GameSurface.font);
  154. //Back Button
  155. buttonBack.draw(canvas, invisible);
  156. canvas.drawText(textBack, buttonBack.getCenterX(), buttonBack.getCenterY() + (10 * GameSurface.density), GameSurface.font);
  157. }
  158. }