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

📄 start.java

📁 Multiagent system programmed using Java with Jason to simulate player interactivity in an MMORPG. Mu
💻 JAVA
字号:
//============================================================================================================================
// Basic OpenGL rendering class
// Author: Chris Willcocks
// Version: 1.0
//============================================================================================================================

import java.util.Random;
import java.util.Iterator;
import javax.media.opengl.GL;
import javax.media.opengl.GLAutoDrawable;
import javax.media.opengl.GLEventListener;
import javax.media.opengl.glu.GLU;

public class start extends world implements GLEventListener
{

	protected static final float S_BORDER = 60;
	protected static Random random = new Random(System.currentTimeMillis());

	protected GL gl;

	public void display(GLAutoDrawable drawable)
	{
		gl = drawable.getGL();
		gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
		gl.glLoadIdentity();
		gl.glTranslatef(0.0f, 0.0f, -S_BORDER);
		drawAgents(gl);
	}

	protected void drawAgents(GL gl)
	{

		if (agents != null && gl != null) {
			Iterator<String> iterator = agents.keySet().iterator();
			while (iterator.hasNext()) {
				String key;
				try {
					key = iterator.next();
				} catch (Exception e) {
					// Very important: It's better not to render the frame than
					// try and render a failed frame
					return;
				}
				if ((float) agents.get(key).health > 0) { // If dead, don't render it
					gl.glPointSize((float) agents.get(key).health + 4);

					gl.glBegin(GL.GL_POINTS);
					gl.glColor3f(0.3f, 0.3f, 0.3f);
					gl.glVertex2f(agents.get(key).pos.x, agents.get(key).pos.y);
					gl.glEnd();

					gl.glPointSize((float) agents.get(key).health);
					gl.glBegin(GL.GL_POINTS);
					gl.glColor3f(agents.get(key).colour[0],
							agents.get(key).colour[1],
							agents.get(key).colour[2]);
					// agents.get(i).Update(0.5f);
					gl.glVertex2f(agents.get(key).pos.x, agents.get(key).pos.y);
					// TODO: Draw HP bars (function accepts int hp value)
					gl.glEnd();
				} else {
					agents.get(key).executor.shutdown();
					
					try {
						agents.get(key).finalize();
					} catch (Throwable e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
	
				}
			}
		}
	}
	
	public void drawHP(int percentage)
	{
		
	}

	public void displayChanged(GLAutoDrawable drawable, boolean modeChanged,
			boolean deviceChanged)
	{
	}

	public void init(GLAutoDrawable drawable)
	{
		final GL gl = drawable.getGL();
		gl.glShadeModel(GL.GL_SMOOTH);
		gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
		gl.glClearDepth(1.0f);
		gl.glEnable(GL.GL_DEPTH_TEST);
		gl.glDepthFunc(GL.GL_LEQUAL);
		gl.glHint(GL.GL_PERSPECTIVE_CORRECTION_HINT, GL.GL_NICEST);
		gl.glEnable(GL.GL_POINT_SMOOTH);
	}

	public void reshape(GLAutoDrawable drawable, int x, int y, int width,
			int height)
	{
		final GL gl = drawable.getGL();
		final GLU glu = new GLU();

		gl.setSwapInterval(1);

		gl.glViewport(0, 0, width, height);
		gl.glMatrixMode(GL.GL_PROJECTION);
		gl.glLoadIdentity();

		glu.gluPerspective(45.0f, (double) width / (double) height, 0.1f,
				1000.0f);

		gl.glMatrixMode(GL.GL_MODELVIEW);
		gl.glLoadIdentity();
	}

}

⌨️ 快捷键说明

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