Package ch.fusun.baron.swt.isometry

Source Code of ch.fusun.baron.swt.isometry.Starter

package ch.fusun.baron.swt.isometry;

import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

import ch.fusun.baron.swt.isometry.components.IsometryWidget;
import ch.fusun.baron.swt.isometry.components.Sprite;

/**
* Test class
*/
public class Starter {
  private static final int SIZE = 20;
  static int[][] heightMap = new int[SIZE * 2][SIZE * 2];

  /**
   * @param args
   *            console arguments
   */
  public static void main(String[] args) {
    Display display = new Display();
    final Shell shell = new Shell(display);
    shell.setLayout(new GridLayout());

    IsometryWidget isometryWidget = new IsometryWidget(shell, SWT.NONE,
        SIZE, SIZE, 1, 64, 64, 32);

    for (int i = 0; i < heightMap.length; i++) {
      for (int j = 0; j < heightMap[i].length; j++) {
        heightMap[i][j] = Math.random() < 0.5 ? 1 : 0;
      }
    }

    for (int i = 0; i < SIZE; i++) {
      for (int j = 0; j < SIZE; j++) {
        isometryWidget.addItem(i + ", " + j, i, j, //$NON-NLS-1$
            getSprite(getID(i, j, heightMap), display));
      }
    }

    isometryWidget.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true,
        true));

    shell.setText("Map"); //$NON-NLS-1$
    shell.open();
    while (!shell.isDisposed()) {
      if (!display.readAndDispatch()) {
        display.sleep();
      }
    }
    display.dispose();
  }

  private static Sprite getSprite(String id, Display display) {
    return new Sprite(new Image(display, id + ".png"), new Image(display, //$NON-NLS-1$
        id + "_mask.png")); //$NON-NLS-1$
  }

  /**
   * @param i
   *            i coordinate
   * @param j
   *            j coordinate
   * @param heightMap
   *            The heightMap
   * @return The id generated from position and height map
   */
  protected static String getID(int i, int j, int[][] heightMap) {
    long result = 0;
    result = heightMap[i][j] + 2 * heightMap[i + 1][j] + 4
        * heightMap[i + 1][j + 1] + 8 * heightMap[i][j + 1];

    return new Long(result).toString();
  }

}
TOP

Related Classes of ch.fusun.baron.swt.isometry.Starter

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.