Advertisement
Guest User

Untitled

a guest
Jan 26th, 2015
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.50 KB | None | 0 0
  1. // some common classes and rendering interfaces
  2.  
  3. class Transform {
  4.     Vector2 position;
  5.     float rotation;
  6.     float scale;
  7. }
  8.  
  9. interface Scene {
  10.     void drawImage(ImageData image, Transform transform);
  11. }
  12.  
  13. interface ImageData {
  14.     byte[] getData();
  15.     float getWidth();
  16.     float getHeight();
  17. }
  18.  
  19. // Scene implementations
  20.  
  21. class SwingScene implements Scene {
  22.     @Override
  23.     void drawImage(ImageData image, Transform transform) {
  24.         g2d.drawImage(new ImageIconOrWhatever(image.getData()), transform.x, transform.y, ..);
  25.     }
  26. }
  27.  
  28. class SlickScene implements Scene {
  29.     @Override
  30.     void drawImage(ImageData image, Transform transform) {
  31.         g.translate(transform.x, transform.y);
  32.         g.rotate(transform.rotation);
  33.         g.draw(new ImageOrWhatever(image.getData()), image.getWidth(), image.getHeight());
  34.     }
  35. }
  36.  
  37. // guice module
  38.  
  39. SwingRenderingModule extends AbstractModule {
  40.     public void configure() {
  41.         // now when we ask the injector for a Scene instance, we get a SwingScene instance
  42.         bind(Scene.class).to(SwingScene.class);
  43.         .. more bindings ..
  44.     }
  45. }
  46.  
  47. SlickRenderingModule extends AbstractModule {
  48.     public void configure() {
  49.         // now when we ask the injector for a Scene instance, we get a SlickScene instance
  50.         bind(Scene.class).to(SlickScene.class);
  51.         .. more bindings ..
  52.     }
  53. }
  54.  
  55. // instantiate stuff with Swing
  56.  
  57. Injector injector = Guice.createInjector(
  58.     new SwingRenderingModule(),
  59.     .. more modules ..
  60. );
  61.  
  62. Scene scene = injector.getInstance(Scene.class);
  63. scene.drawImage(new Image([0, 4, 8, 2, 48]), somewhere);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement