用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

java版山寨《星际争霸》(可联机多人游戏)

2013-01-28 作者: 小蜜锋举报

[java]代码库

package core;

import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.RenderingHints;
import java.awt.Toolkit;
import java.awt.image.BufferStrategy;

import javax.swing.JComponent;
import javax.swing.JFrame;

/**
 * Simple abstract class used for testing. Subclasses should implement the
 * draw() method.
 */
public abstract class GameCore extends JFrame {

	protected static final int FONT_SIZE = 10;

	private boolean isRunning;

	protected JFrame window;

	public void stop() {

	}

	/**
	 * Calls init() and gameLoop()
	 */
	public void run() {
		init();
		gameLoop();
	}

	/**
	 * Sets full screen mode and initiates and objects.
	 */
	public void init() {

		setUndecorated(true);
		setTitle("JStarCraft");
		setIconImage(ResourceManager.loadImage("title.png"));
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setSize(800, 600);
		setVisible(true);
		setIgnoreRepaint(true);
		setResizable(false);
		setFont(new Font("Dialog", Font.PLAIN, FONT_SIZE));
		setBackground(Color.black);
		setForeground(Color.white);
		createBufferStrategy(2);
		isRunning = true;
		setCursor(Toolkit.getDefaultToolkit().createCustomCursor(
				ResourceManager.loadImage("cur.png"), new Point(0, 0), "cur"));
		window = getWindow();
		NullRepaintManager.install();
		window.setLayout(null);
		Container contentPane = getWindow().getContentPane();
		((JComponent) contentPane).setOpaque(false);

	}

	/**
	 * Runs through the game loop until stop() is called.
	 */
	public void gameLoop() {

		BufferStrategy strategy = getBufferStrategy();
		long startTime = System.currentTimeMillis();
		long currTime = startTime;
		while (isRunning) {

			long elapsedTime = System.currentTimeMillis() - currTime;
			currTime += elapsedTime;

			// update
			update(elapsedTime);

			// draw the screen
			Graphics2D g = (Graphics2D) strategy.getDrawGraphics();
			g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
					RenderingHints.VALUE_ANTIALIAS_ON);
			g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
					RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
			// g.drawImage(ResourceManager.loadImage("background3.jpg"), 0, 33,
			// null);
			draw(g);
			g.dispose();

			if (!strategy.contentsLost()) {
				strategy.show();
			}

			// take a nap
			try {
				Thread.sleep(5);
			} catch (InterruptedException ex) {
			}
		}
	}

	/**
	 * Updates the state of the game/animation based on the amount of elapsed
	 * time that has passed.
	 */
	public void update(long elapsedTime) {
		// do nothing
	}

	/**
	 * Draws to the screen. Subclasses must override this method.
	 */
	public abstract void draw(Graphics2D g);

	public JFrame getWindow() {
		return this;
	}
}

[代码运行效果截图]


java版山寨《星际争霸》(可联机多人游戏)

[源代码打包下载]




网友评论    (发表评论)

共26 条评论 1/2页  1  2  >

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...