📄 start.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 + -