Package ch.blackspirit.graphics

Examples of ch.blackspirit.graphics.GraphicsContext


    ColorGradientFactory gradientFactory = new ColorGradientFactory();
    gradientFactory.addSourcePoint(light.getWidth() / 2, light.getHeight() / 2, light.getWidth() / 2f * .9f, new Color4f(0,0,0,0));
    gradientFactory.setBaseColor(new Color4f(1,1,1,1));
    gradientFactory.drawGradient(light);
 
    GraphicsContext imageContext = canvas.createImageGraphicsContext(dark);
    walk = animFrontStill;
   
    // Draw the light shine
    imageContext.setGraphicsListener(new GraphicsListener() {
      public void draw(View view, Graphics graphics) {
        view.setCamera(-400+posX, -300+posY, 0);
        graphics.setClearColor(new Color4f(.0f,.0f,.0f, .98f));
        graphics.clear();
        drawLight(graphics, walk, light, posX + xOffset, posY, lightShineRandom3);
        drawLight(graphics, animFire, light, 150 - animFire.getWidth()/2, 100 - animFire.getHeight()/2, lightShineRandom1);
        drawLight(graphics, animFire, light, 650 - animFire.getWidth()/2, 100 - animFire.getHeight()/2, lightShineRandom2);
        drawLight(graphics, animFire, light, 150 - animFire.getWidth()/2, 450 - animFire.getHeight()/2, lightShineRandom3);
        drawLight(graphics, animFire, light, 650 - animFire.getWidth()/2, 450 - animFire.getHeight()/2, lightShineRandom4);
      }
      public void init(View view, Graphics renderer) {
        view.setCamera(0, 0, 0);
        view.setSize(1024, 1024);
      }
      public void sizeChanged(GraphicsContext graphicsContext, View view) {}
    });
   
    canvas.setGraphicsListener(new GraphicsListener() {
      // Variables for fire simulation
      Random random = new Random();
      long lightShineTime = 0;

      long start = System.nanoTime();
      long currTime = start;
      long count = 0;
      long fps = 0;
 
      Flip flip = Flip.NONE;
      float angle = 0;

      public void draw(View view, Graphics renderer) {
        long elapsedTime = System.nanoTime() - currTime;
        currTime += elapsedTime;
        lightShineTime += elapsedTime;
 
        angle += elapsedTime / 20000000f;

        // Walking
        if(up && !down) {
          posY -= (float)elapsedTime / 11000000;
          walk = animBack;
          flip = Flip.NONE;
          xOffset = 0;
        } else if(down && !up) {
          posY += (float)elapsedTime / 11000000;
          walk = animFront;
          flip = Flip.NONE;
          xOffset = 0;
        } else if(left && !right) {
          posX -= (float)elapsedTime / 10000000;
          walk = animLeft;
          flip = Flip.NONE;
          xOffset = 0;
        } else if(right && !left) {
          posX += (float)elapsedTime / 10000000;
          walk = animLeft;
          flip = Flip.VERTICAL;
          xOffset = 0;
        } else {
          if(walk == animLeft) {
            walk = animLeftStill;
            if(flip == Flip.NONE) xOffset = 4;
            else xOffset = 8;
          }
          if(walk == animFront) {
            walk = animFrontStill;
            xOffset = 3;
          }
          if(walk == animBack) {
            walk = animBackStill;
            xOffset = 1;
          }
        }
       
        view.setCamera(posX, posY, 0);
       
        // update animation
        animLeft.update(elapsedTime);
        animFront.update(elapsedTime);
        animBack.update(elapsedTime);
        animFire.update(elapsedTime);

        renderer.setColor(white);

        long gleft = (long)posX -400 - grass.getWidth()*2;
        gleft = gleft - (gleft % (grass.getWidth()*2));
       
        long gtop = (long)posY -300 - grass.getHeight()*2;
        gtop = gtop - (gtop % (grass.getHeight()*2));

        for(long x = gleft; x <= gleft + 800 + grass.getWidth()*2; x+=grass.getWidth() * 2) {
          for(long y = gtop; y <= gtop + 600 + grass.getHeight()*2; y+=grass.getHeight() * 2) {
            renderer.translate(x, y);
            renderer.drawImage(grass, grass.getWidth() * 2, grass.getHeight() * 2);
            renderer.clearTransform();
          }
        }

        renderer.translate(posX + xOffset, posY);
        walk.draw(renderer, walk.getWidth(), walk.getHeight(), flip);
        renderer.clearTransform();

        // Fires
        drawFire(renderer, animFire, light, 150, 100, lightShineRandom1);
        drawFire(renderer, animFire, light, 650, 100, lightShineRandom2);
        drawFire(renderer, animFire, light, 150, 450, lightShineRandom3);
        drawFire(renderer, animFire, light, 650, 450, lightShineRandom4);

        // Draw darkness
        renderer.clearTransform();
        renderer.translate(posX-400, posY-300);
        renderer.drawImage(dark, 1024, 1024);
       
        renderer.setColor(white);
        renderer.clearTransform();
        renderer.translate(posX-400+50, posY-300+50);
        renderer.drawText("Scene Demo");

        // draw frames per second
        renderer.setColor(red);
        renderer.clearTransform();
        renderer.translate(posX-400+650, posY-300+580);
        renderer.drawText("FPS:" + fps);
             
        // calculate frames per second every second
        count++;
        if(currTime - start > 1000000000) {
          start = currTime;
          fps = count;
          count = 0;
          System.out.println(fps);
        }
       
        // Simulate flickering of light
        if(lightShineTime > 120000000) {
          lightShineRandom1 = random.nextInt(10);
          lightShineRandom2 = random.nextInt(10);
          lightShineRandom3 = random.nextInt(10);
          lightShineRandom4 = random.nextInt(10);
          lightShineTime = 0;
        }

      }

      public void init(View view, Graphics renderer) {
        view.setCamera(400, 300, 0);
        view.setSize(800, 600);
      }
      public void sizeChanged(GraphicsContext graphicsContext, View view) {  }
    });
   
    // Cleaning up
    System.gc();
   
    long lastVSyncChange = 0;
    while(true) {
      if(keyboard != null) {
        keyboard.poll();
     
        // End demo
        if(keyboard.isKeyDown(Key.Q) || keyboard.isKeyDown(Key.ESCAPE)) {
          canvas.dispose();
          System.exit(0);
        }
        // VSync
        if(keyboard.isKeyDown(Key.S)) {
          long time = System.currentTimeMillis();
          if(time - lastVSyncChange > 1000) {
            canvas.setVSync(!canvas.getVSync());
            lastVSyncChange = time;
          }
        }
       
        // Character movement
        down = keyboard.isKeyDown(Key.DOWN);
        left = keyboard.isKeyDown(Key.LEFT);
        right = keyboard.isKeyDown(Key.RIGHT);
        up = keyboard.isKeyDown(Key.UP);
      }

      imageContext.draw();
      canvas.draw();
    }
  }
View Full Code Here


    line2[0].setColor(0, new Color4f(1,1,1,1));
    line2[0].setColor(1, new Color4f(0,1,0,1));
    line2[1].setColor(0, new Color4f(0,1,0,1));
    line2[1].setColor(1, new Color4f(1,0,0,1));
 
    GraphicsContext imageContext = canvas.createImageGraphicsContext(dark);
    walk = animFrontStill;
    GraphicsContext testContext = canvas.createImageGraphicsContext(darktest);
   
    // Draw the light shine
    imageContext.setGraphicsListener(new GraphicsListener() {
      public void draw(View view, Graphics graphics) {
        graphics.setClearColor(new Color4f(.0f,.0f,.0f,.98f));
        graphics.clear();
        drawLight(graphics, walk, light, posX + xOffset, posY, lightShineRandom3);
        drawLight(graphics, animFire, light, 150 - animFire.getWidth()/2, 100 - animFire.getHeight()/2, lightShineRandom1);
        drawLight(graphics, animFire, light, 650 - animFire.getWidth()/2, 100 - animFire.getHeight()/2, lightShineRandom2);
        drawLight(graphics, animFire, light, 150 - animFire.getWidth()/2, 450 - animFire.getHeight()/2, lightShineRandom3);
        drawLight(graphics, animFire, light, 650 - animFire.getWidth()/2, 450 - animFire.getHeight()/2, lightShineRandom4);
//        graphics.clearTransformation();
//        graphics.setColor(white);
//        graphics.drawImage(darktest, 128, 128);
      }

      public void init(View view, Graphics renderer) {
        view.setCamera(0, 0, 0);
        view.setSize(256, 256);
      }

      public void sizeChanged(GraphicsContext graphicsContext, View view) {}
    });
    testContext.setGraphicsListener(new GraphicsListener() {
      public void draw(View view, Graphics graphics) {
        graphics.setClearColor(new Color4f(.1f,.0f,.0f,.98f));
        graphics.clear();
      }
View Full Code Here

TOP

Related Classes of ch.blackspirit.graphics.GraphicsContext

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.