OldGame.java 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237
  1. package me.hammerle.supersnuvi.rendering;
  2. import me.hammerle.supersnuvi.javafx.IJavaRenderer;
  3. import me.hammerle.supersnuvi.javafx.Image;
  4. public class OldGame implements IRenderer
  5. {
  6. // constants
  7. public final static int TILE_SIZE = 64;
  8. public final static double SCALE = TILE_SIZE / 32.0;
  9. // basic graphic stuff
  10. private final IJavaRenderer renderer;
  11. // rendering
  12. private double cameraX;
  13. private double cameraY;
  14. private double offsetX;
  15. private double offsetY;
  16. public OldGame(IJavaRenderer renderer)
  17. {
  18. // basic graphic stuff
  19. this.renderer = renderer;
  20. // rendering
  21. this.cameraX = 0;
  22. this.cameraY = 0;
  23. this.offsetX = 0;
  24. this.offsetY = 0;
  25. }
  26. public void update()
  27. {
  28. }
  29. public void render()
  30. {
  31. offsetX = -cameraX;
  32. offsetY = renderer.getHeight() + cameraY;
  33. renderer.prepareRendering();
  34. }
  35. // -------------------------------------------------------------------------
  36. // image rendering
  37. // -------------------------------------------------------------------------
  38. @Override
  39. public void drawImage(Image image, double x, double y)
  40. {
  41. renderer.drawImage(image, offsetX + x, offsetY - y);
  42. }
  43. @Override
  44. public void drawImage(Image image, double x, double y, boolean flipped)
  45. {
  46. if(flipped)
  47. {
  48. renderer.drawImage(image, 0, 0, image.getWidth(), image.getHeight(),
  49. offsetX + x + image.getWidth(), offsetY - y, -image.getWidth(), image.getHeight());
  50. }
  51. else
  52. {
  53. renderer.drawImage(image, offsetX + x, offsetY - y);
  54. }
  55. }
  56. @Override
  57. public void drawImage(Image image, double x, double y, double w, double h, boolean flipped)
  58. {
  59. if(flipped)
  60. {
  61. renderer.drawImage(image, 0, 0, image.getWidth(), image.getHeight(),
  62. offsetX + x + w, offsetY - y, -w, h);
  63. }
  64. else
  65. {
  66. renderer.drawImage(image, offsetX + x, offsetY - y, w, h);
  67. }
  68. }
  69. @Override
  70. public void drawFixedImage(Image image, double x, double y)
  71. {
  72. renderer.drawImage(image, x, y);
  73. }
  74. @Override
  75. public void drawFixedImage(Image image, double x, double y, double w, double h)
  76. {
  77. renderer.drawImage(image, x, y, w, h);
  78. }
  79. @Override
  80. public void drawFixedImagePart(Image image, double sx, double sy, double sw, double sh, double dx, double dy, double dw, double dh)
  81. {
  82. renderer.drawImage(image, sx, sy, sw, sh, dx, dy, dw, dh);
  83. }
  84. @Override
  85. public void drawBlockImage(Image image, int x, int y, double offX, double offY)
  86. {
  87. renderer.drawImage(image, offsetX + x * TILE_SIZE + offX, offsetY - (y + 1) * TILE_SIZE + offY);
  88. }
  89. // -------------------------------------------------------------------------
  90. // primitive rendering
  91. // -------------------------------------------------------------------------
  92. @Override
  93. public double getWidth()
  94. {
  95. return renderer.getWidth();
  96. }
  97. @Override
  98. public double getHeight()
  99. {
  100. return renderer.getHeight();
  101. }
  102. @Override
  103. public void save()
  104. {
  105. renderer.save();
  106. }
  107. @Override
  108. public void restore()
  109. {
  110. renderer.restore();
  111. }
  112. @Override
  113. public void setFillColor(int r, int g, int b, double alpha)
  114. {
  115. renderer.setFillColor(r, g, b, alpha);
  116. }
  117. @Override
  118. public void setStrokeColor(int r, int g, int b, double alpha)
  119. {
  120. renderer.setStrokeColor(r, g, b, alpha);
  121. }
  122. @Override
  123. public void fillRectangle(double x, double y, double w, double h)
  124. {
  125. renderer.fillRectangle(x, y, w, h);
  126. }
  127. @Override
  128. public void setScale(double scale)
  129. {
  130. renderer.setScale(scale);
  131. }
  132. // -------------------------------------------------------------------------
  133. // text rendering
  134. // -------------------------------------------------------------------------
  135. @Override
  136. public void prepareTextDrawing(int r, int g, int b, double alpha, int width)
  137. {
  138. renderer.prepareTextDrawing(r, g, b, alpha, width);
  139. }
  140. @Override
  141. public void stopTextDrawing()
  142. {
  143. renderer.stopTextDrawing();
  144. }
  145. @Override
  146. public void drawText(double x, double y, char[] text)
  147. {
  148. renderer.drawText(x, y, text, text.length);
  149. }
  150. @Override
  151. public void drawText(double x, double y, char[] text, int max)
  152. {
  153. renderer.drawText(x, y, text, max);
  154. }
  155. @Override
  156. public double getTextWidth(int chars)
  157. {
  158. return renderer.getTextWidth(chars);
  159. }
  160. @Override
  161. public double getTextHeight(int lines)
  162. {
  163. return renderer.getTextHeight(lines);
  164. }
  165. // -------------------------------------------------------------------------
  166. // rendering utils
  167. // -------------------------------------------------------------------------
  168. @Override
  169. public int getFirstVisibleBlockX()
  170. {
  171. return Math.max(0, (int) (cameraX / TILE_SIZE) - 1);
  172. }
  173. @Override
  174. public int getFirstVisibleBlockY()
  175. {
  176. return Math.max(0, (int) (cameraY / TILE_SIZE) - 1);
  177. }
  178. @Override
  179. public int getLastVisibleBlockX()
  180. {
  181. return getFirstVisibleBlockX() + (int) (renderer.getWidth() / TILE_SIZE) + 2;
  182. }
  183. @Override
  184. public int getLastVisibleBlockY()
  185. {
  186. return getFirstVisibleBlockY() + (int) (renderer.getHeight()/ TILE_SIZE) + 2;
  187. }
  188. @Override
  189. public void setViewCenter(double x, double y)
  190. {
  191. cameraX = x;
  192. cameraY = y;
  193. }
  194. @Override
  195. public void setGlobalAlpha(double alpha)
  196. {
  197. renderer.setGlobalAlpha(alpha);
  198. }
  199. }