⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 j3dpanel.java

📁 Java mulitplayer strategy game. Adaptation of KDE Galaxy Conquest. (rules are changed - but still th
💻 JAVA
字号:
/*
 * $Id: J3DPanel.java,v 1.33 2005/10/28 12:34:36 macx2k Exp $
 */
package net.sf.jawp.gui.client.j3d;

import java.awt.BorderLayout;
import java.awt.GraphicsConfiguration;

import javax.media.j3d.Canvas3D;
import javax.swing.JPanel;

import net.sf.jawp.api.domain.Fleet;
import net.sf.jawp.api.domain.Planet;
import net.sf.jawp.api.domain.SpaceCoords;
import net.sf.jawp.client.GameData;

import com.sun.j3d.utils.universe.SimpleUniverse;
import net.sf.jawp.gui.client.SelectionController;

/**
 * A panel which displays 3D scene.
 * 
 * @author Maciej Malecki
 * @version $Revision: 1.33 $
 */
public final class J3DPanel extends JPanel
{
	private static final long serialVersionUID = 1L;

	private final Scene scene;

	/**
	 * Creates new instance of J3DPanel.
	 * 
	 * @param gdm
	 * @param configuration
	 */
	public J3DPanel(final GameData gdm,
			final GraphicsConfiguration configuration,
			final SelectionController selCon)
	{
		setLayout(new BorderLayout());

		final Canvas3D canvas = new Canvas3D(SimpleUniverse
				.getPreferredConfiguration());

		add(canvas, BorderLayout.CENTER);
		scene = new Scene(canvas, gdm, selCon);
		add(new ToolBarPanel(this), BorderLayout.SOUTH);
	}

	/**
	 * Centers camera on given position.
	 * 
	 * @param position
	 */
	public void centerCamera(final SpaceCoords position)
	{
		scene.center(J3DHelper.toJ3dPoint(position));
	}

	/**
	 * Disposes all Java 3D resources connected to this panel. Should be always
	 * called when closing owning window.
	 */
	public void dispose()
	{
		scene.dispose();
	}

	/**
	 * Addes formerly invisible planet to the Java 3D scene.
	 * 
	 * @param planet
	 */
	public void showPlanet(final Planet planet)
	{
		scene.addPlanet(planet);
	}

	/**
	 * Shows given fleet on the scene.
	 * 
	 * @param fleet
	 */
	public void showFleet(final Fleet fleet)
	{
		scene.addFleet(fleet);
		scene.updateFleet(fleet);
	}

	/**
	 * Removes given fleet from the scene.
	 * 
	 * @param fleet
	 */
	public void hideFleet(final Fleet fleet)
	{
		scene.removeFleet(fleet);
	}

	/**
	 * Notifies Java 3D scene that given fleet has changed its position.
	 * 
	 * @param fleet
	 */
	public void fleetPositionChanged(final Fleet fleet)
	{
		scene.updateFleet(fleet);
	}

	/**
	 * Notifies Java 3D scene that given planet ownership has changed.
	 * 
	 * @param planet
	 *            which ownership has changed
	 */
	public void planetOwnerShipChanged(final Planet planet)
	{
		scene.updatePlanetOwnership(planet);
	}
	
	/**
	 * Sets planet names visibility state on 3D view.
	 */
	public void setShowNames(final boolean flag)
	{
		scene.setShowNames(flag);
	}
	
	public boolean isShowNames()
	{
		return scene.isShowNames();
	}
	
	public void setMarkOwnership(final boolean flag)
	{
		scene.setMarkOwnership(flag);
	}
	
	public boolean isMarkOwnership()
	{
		return scene.isMarkOwnership();
	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -