Package com.gardeneaters.game_v0.playingfield

Source Code of com.gardeneaters.game_v0.playingfield.Draw

package com.gardeneaters.game_v0.playingfield;

import com.google.gwt.canvas.client.Canvas;
import com.google.gwt.canvas.dom.client.CanvasGradient;
import com.google.gwt.canvas.dom.client.Context2d;
import com.google.gwt.canvas.dom.client.CssColor;
import com.google.gwt.dom.client.CanvasElement;

// Create Canvas and fill it with required object/shape
public class Draw {

  private static Canvas redMushroom=null;
  private static Canvas blueMushroom=null;
  private static Canvas greenMushroom=null;
  private static int width,height;
 
  private Draw(){
   
  }
 
 
  public static Canvas redMushroom(int _width, int _height){
    if(width!=_width || height!=_height)
    {
      redMushroom = null;
      width = _width;
      height = _height;
    }
    if(redMushroom!=null)
      return redMushroom;
   
   
    Canvas canvas = Canvas.createIfSupported();
      canvas.setCoordinateSpaceWidth(width);
      canvas.setCoordinateSpaceHeight(height);
      Context2d context = canvas.getContext2d();
     
        // Draw Mushroom stem
    drawStem(context);
     
    //Now draw Muhsroom Head
    CanvasGradient canvasGradient = context.createLinearGradient(0,height/2,width,height/2);
      canvasGradient.addColorStop(0, "rgba(255, 0, 0, 1)");
      canvasGradient.addColorStop(0.8, "rgba(200,50,50, 1)");
      canvasGradient.addColorStop(1, "rgba(255,50,50,1)");
    drawHead(context, canvasGradient);
       
      redMushroom = canvas;
      return redMushroom;
   
  }
 
  public static Canvas blueMushroom(int _width, int _height){
    if(width!=_width || height!=_height)
    {
      blueMushroom = null;
      width = _width;
      height = _height;
    }
    if(blueMushroom!=null)
      return blueMushroom;
   
   
    Canvas canvas = Canvas.createIfSupported();
      canvas.setCoordinateSpaceWidth(width);
      canvas.setCoordinateSpaceHeight(height);
      Context2d context = canvas.getContext2d();
     
        // Draw Mushroom stem
    drawStem(context);
     
    //Now draw Muhsroom Head
    CanvasGradient canvasGradient = context.createLinearGradient(0,height/2,width,height/2);
      canvasGradient.addColorStop(0, "rgba(0, 0, 219, 1)");
      canvasGradient.addColorStop(0.7, "rgba(50,50,219, 1)");
      canvasGradient.addColorStop(1, "rgba(0,50,255,1)");
    drawHead(context, canvasGradient);
       
      blueMushroom = canvas;
      return blueMushroom;
   
  }
 
  public static Canvas greenMushroom(int _width, int _height){
    if(width!=_width || height!=_height)
    {
      greenMushroom = null;
      width = _width;
      height = _height;
    }
    if(greenMushroom!=null)
      return greenMushroom;
   
   
    Canvas canvas = Canvas.createIfSupported();
      canvas.setCoordinateSpaceWidth(width);
      canvas.setCoordinateSpaceHeight(height);
      Context2d context = canvas.getContext2d();
     
        // Draw Mushroom stem
    drawStem(context);
     
    //Now draw Muhsroom Head
    CanvasGradient canvasGradient = context.createLinearGradient(0,height/2,width,height/2);
      canvasGradient.addColorStop(0, "rgba(15, 230, 0, 1)");
      canvasGradient.addColorStop(0.8, "rgba(90,200,70, 1)");
      canvasGradient.addColorStop(1, "rgba(0,150,70,1)");
    drawHead(context, canvasGradient);
       
      greenMushroom = canvas;
      return greenMushroom;
   
  }
 
  public static Canvas purpleMushroom(int _width, int _height){
    if(width!=_width || height!=_height)
    {
      greenMushroom = null;
      width = _width;
      height = _height;
    }
    if(greenMushroom!=null)
      return greenMushroom;
   
   
    Canvas canvas = Canvas.createIfSupported();
      canvas.setCoordinateSpaceWidth(width);
      canvas.setCoordinateSpaceHeight(height);
      Context2d context = canvas.getContext2d();
     
        // Draw Mushroom stem
    drawStem(context);
     
    //Now draw Muhsroom Head
    CanvasGradient canvasGradient = context.createLinearGradient(0,height/2,width,height/2);
      canvasGradient.addColorStop(0, "rgba(180, 30, 140, 1)");
      canvasGradient.addColorStop(0.7, "rgba(180,80,190, 1)");
      canvasGradient.addColorStop(1, "rgba(150,30,190,1)");
    drawHead(context, canvasGradient);
       
      greenMushroom = canvas;
      return greenMushroom;
   
  }
 
  private static void drawHead(Context2d context, CanvasGradient canvasGradient){
    int canvasHeight = height;
    int canvasWidth = width;

    context.setFillStyle(canvasGradient);
    context.setStrokeStyle(canvasGradient);
      context.beginPath();
      context.moveTo(0, 1.5*canvasHeight/4);
      context.bezierCurveTo(canvasWidth/2, -1.5*canvasHeight/4, canvasWidth*3/4, 1.5*canvasHeight/4, canvasWidth, 1.5*canvasHeight/4);
      context.bezierCurveTo(canvasWidth*3/4, 1.5*canvasHeight*3/8, canvasWidth/4, 1.5*canvasHeight*3/16, 0,1.5*canvasHeight/4);
      context.closePath()
      context.stroke();
      context.fill();
  }
 
  private static void drawStem(Context2d context){
   
    int canvasHeight = height;
    int canvasWidth = width;
        CanvasGradient canvasGradient = context.createLinearGradient(0,canvasHeight/2,canvasWidth,canvasHeight/2);
        canvasGradient.addColorStop(0, "rgba(255, 255, 0, 1)");
        canvasGradient.addColorStop(0.6, "rgba(200,200,0, 1)");
        canvasGradient.addColorStop(1, "rgba(0,0,0,1)");
       

    context.setFillStyle(canvasGradient);
    context.setStrokeStyle(canvasGradient);
    context.beginPath();
      
        context.moveTo(canvasWidth*3/8, canvasHeight/4);
        context.bezierCurveTo(canvasWidth*3/8, canvasHeight/4, canvasWidth*3/8, canvasHeight*7/8, canvasWidth/4, canvasHeight);
        context.lineTo(canvasHeight*3/4, canvasHeight);
       
      context.moveTo(canvasWidth*3/8, canvasHeight/4);
      context.lineTo(canvasWidth*5/8,canvasHeight/4);
      context.bezierCurveTo(canvasWidth*5/8, canvasHeight/4, canvasWidth*5/8, canvasHeight*7/8, canvasHeight*3/4, canvasHeight);
     
        context.closePath();
      context.stroke();
      context.fill();
  }
 
  public static CanvasElement arrow(int width, int height){
    Canvas canvas = Canvas.createIfSupported();
      canvas.setCoordinateSpaceWidth(width);
      canvas.setCoordinateSpaceHeight(height);
      Context2d context = canvas.getContext2d();
   
    int canvasHeight = height;
    int canvasWidth = width;
   
        CanvasGradient canvasGradient = context.createLinearGradient(0,canvasHeight/2,canvasWidth,canvasHeight/2);
        canvasGradient.addColorStop(0, "rgba(255, 200, 0, 1)");
        canvasGradient.addColorStop(1, "rgba(200,20,120, 1)");
    context.setFillStyle(canvasGradient);
    context.setStrokeStyle(canvasGradient);
   
    context.beginPath();
    context.moveTo(0 , canvasHeight/3);
    context.lineTo(canvasWidth*2/3, canvasHeight/3);
    context.lineTo(canvasWidth*2/3, 0);
    context.lineTo(canvasWidth, canvasHeight/2);
    context.lineTo(canvasWidth*2/3, canvasHeight);
    context.lineTo(canvasWidth*2/3, canvasHeight*2/3);
    context.lineTo(0, canvasHeight*2/3);
    context.lineTo(0, canvasHeight/3);
    context.closePath();
    context.stroke();
    context.fill();
   
    return canvas.getCanvasElement();
  }
}
TOP

Related Classes of com.gardeneaters.game_v0.playingfield.Draw

TOP
Copyright © 2018 www.massapi.com. 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.