Package com.gardeneaters.game_v0.client

Source Code of com.gardeneaters.game_v0.client.GardenEaters

package com.gardeneaters.game_v0.client;


import com.gardeneaters.game_v0.rules.Play;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.canvas.client.Canvas;
import com.google.gwt.canvas.dom.client.Context2d;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.dom.client.Touch;
import com.google.gwt.event.dom.client.GestureStartEvent;
import com.google.gwt.event.dom.client.GestureStartHandler;
import com.google.gwt.event.dom.client.MouseDownEvent;
import com.google.gwt.event.dom.client.MouseDownHandler;
import com.google.gwt.event.dom.client.MouseOutEvent;
import com.google.gwt.event.dom.client.MouseOutHandler;
import com.google.gwt.event.dom.client.MouseUpEvent;
import com.google.gwt.event.dom.client.MouseUpHandler;
import com.google.gwt.event.dom.client.TouchEndEvent;
import com.google.gwt.event.dom.client.TouchEndHandler;
import com.google.gwt.event.dom.client.TouchStartEvent;
import com.google.gwt.event.dom.client.TouchStartHandler;
import com.google.gwt.event.logical.shared.ResizeEvent;
import com.google.gwt.event.logical.shared.ResizeHandler;
public class GardenEaters implements EntryPoint {
  static final String holderId = "canvasholder";
  static final String upgradeMessage = "Your browser does not support the HTML5 Canvas. Please upgrade your browser to view this demo.";

    Canvas canvas;
    Context2d context;
    static int canvasHeight;
    static int canvasWidth;
   
    // mouse positions relative to canvas
    int mouseStartX, mouseStartY, mouseEndX, mouseEndY;
    //timer refresh rate, in milliseconds
    static final int refreshRate = 25;
    Play play;
    HTMLPanel panel;
   
    public void onModuleLoad() {
     

        canvas = Canvas.createIfSupported();
        if (canvas == null) {
              RootPanel.get(holderId).add(new Label("Sorry, your browser doesn't support the HTML5 Canvas element"));
              return;
        }
      canvasHeight = (int) (Window.getClientHeight()*0.95);
      canvasWidth = (int) (canvasHeight*1.6666);
        canvas.setStyleName("mainCanvas");
        canvas.setWidth(canvasWidth + "px");
        canvas.setCoordinateSpaceWidth(canvasWidth);
        canvas.setHeight(canvasHeight + "px");
        canvas.setCoordinateSpaceHeight(canvasHeight);
        RootPanel.get(holderId).add(canvas);
        context = canvas.getContext2d();
        play = new Play(context);
        Window.addResizeHandler(new ResizeHandler() {
      @Override
      public void onResize(ResizeEvent event) {
        // TODO Auto-generated method stub
        RootPanel.get(holderId).clear();
          canvasHeight = (int) (Window.getClientHeight()*0.95);
          canvasWidth = (int) (canvasHeight*1.6666);
            canvas.setWidth(canvasWidth + "px");
            canvas.setCoordinateSpaceWidth(canvasWidth);
            canvas.setHeight(canvasHeight + "px");
            canvas.setCoordinateSpaceHeight(canvasHeight);
            RootPanel.get(holderId).add(canvas);
            context = canvas.getContext2d();
            play.resize();
      }
        });
        //Initializing objects

         
        //initializing handlers
        initHandlers();
       
        final Timer timer = new Timer() {
            @Override
            public void run() {
                doUpdate();
            }
        };
        timer.scheduleRepeating(refreshRate);
    }
    void doUpdate() {

      play.update();
        //logoGroup.update(mouseX, mouseY);
        //logoGroup.draw(backBufferContext);
      }
   
   
   
    void initHandlers() {

       
        canvas.addMouseDownHandler(new MouseDownHandler(){
      @Override
      public void onMouseDown(MouseDownEvent event) {
            mouseStartX = event.getRelativeX(canvas.getElement());
            mouseStartY = event.getRelativeY(canvas.getElement());
          //  garden.draw(mouseX, mouseY);
       
      }
        });

        canvas.addMouseUpHandler(new MouseUpHandler(){
      @Override
      public void onMouseUp(MouseUpEvent event) {
            mouseEndX = event.getRelativeX(canvas.getElement());
            mouseEndY = event.getRelativeY(canvas.getElement());
            play.click(mouseStartX, mouseStartY, mouseEndX, mouseEndY);
            //garden.draw(mouseX, mouseY);
       
      }
        });
       
//          canvas.addMouseOutHandler(new MouseOutHandler() {
//            public void onMouseOut(MouseOutEvent event) {
//              //mouseX = -200;
//             // mouseY = -200;
//            }
//          });
     
      canvas.addTouchStartHandler(new TouchStartHandler() {
    @Override
    public void onTouchStart(TouchStartEvent event) {
            event.preventDefault();
            if (event.getTouches().length() > 0) {
              Touch touch = event.getTouches().get(0);
              mouseStartX = touch.getRelativeX(canvas.getElement());
              mouseStartY = touch.getRelativeY(canvas.getElement());
              //garden.draw(mouseX,mouseY);
            }
            event.preventDefault();
     
    }
      });

      canvas.addTouchEndHandler(new TouchEndHandler() {
        public void onTouchEnd(TouchEndEvent event) {
          event.preventDefault();
          mouseEndX = -200;
          mouseEndY = -200;
          play.click(mouseStartX, mouseStartY, mouseEndX, mouseEndY);
        }
      });

      canvas.addGestureStartHandler(new GestureStartHandler() {
        public void onGestureStart(GestureStartEvent event) {
          event.preventDefault();
        }
      });
    }
}
TOP

Related Classes of com.gardeneaters.game_v0.client.GardenEaters

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.