Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.Font;
- import java.io.InputStream;
- import java.util.Random;
- import org.lwjgl.LWJGLException;
- import org.lwjgl.Sys;
- import org.lwjgl.opengl.Display;
- import org.lwjgl.opengl.DisplayMode;
- import org.lwjgl.opengl.GL11;
- import org.newdawn.slick.Color;
- import org.newdawn.slick.TrueTypeFont;
- import org.newdawn.slick.util.ResourceLoader;
- public class FontExample {
- /** The fonts to draw to the screen */
- private TrueTypeFont font;
- private TrueTypeFont font2;
- /** Boolean flag on whether AntiAliasing is enabled or not */
- private boolean antiAlias = true;
- private long lastTime;
- private float angle;
- /**
- * Start the test
- */
- public void start() {
- initGL(800,600);
- init();
- while (true) {
- GL11.glClear(GL11.GL_COLOR_BUFFER_BIT);
- render();
- Display.update();
- Display.sync(100);
- if (Display.isCloseRequested()) {
- Display.destroy();
- System.exit(0);
- }
- }
- }
- /**
- * Initialise the GL display
- *
- * @param width The width of the display
- * @param height The height of the display
- */
- private void initGL(int width, int height) {
- try {
- Display.setDisplayMode(new DisplayMode(width,height));
- Display.create();
- Display.setVSyncEnabled(true);
- } catch (LWJGLException e) {
- e.printStackTrace();
- System.exit(0);
- }
- GL11.glEnable(GL11.GL_TEXTURE_2D);
- GL11.glShadeModel(GL11.GL_SMOOTH);
- GL11.glDisable(GL11.GL_DEPTH_TEST);
- GL11.glDisable(GL11.GL_LIGHTING);
- GL11.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
- GL11.glClearDepth(1);
- GL11.glEnable(GL11.GL_BLEND);
- GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
- GL11.glViewport(0,0,width,height);
- GL11.glMatrixMode(GL11.GL_MODELVIEW);
- GL11.glMatrixMode(GL11.GL_PROJECTION);
- GL11.glLoadIdentity();
- GL11.glOrtho(0, width, height, 0, 1, -1);
- GL11.glMatrixMode(GL11.GL_MODELVIEW);
- }
- /**
- * Initialise resources
- */
- public void init() {
- // load a default java font
- Font awtFont = new Font("Times New Roman", Font.BOLD, 24);
- font = new TrueTypeFont(awtFont, true);
- // load font from file
- /*try {
- InputStream inputStream = ResourceLoader.getResourceAsStream("myfont.ttf");
- Font awtFont2 = Font.createFont(Font.TRUETYPE_FONT, inputStream);
- awtFont2 = awtFont2.deriveFont(24f); // set font size
- font2 = new TrueTypeFont(awtFont2, antiAlias);
- } catch (Exception e) {
- e.printStackTrace();
- }/**/
- }
- /**
- * Game loop render
- */
- public void render() {
- GL11.glPushMatrix();
- Color.white.bind();
- //GL11.glScalef(0.1F, 0.1F, 0.1F);
- font.drawString(100, 50, "THE LIGHTWEIGHT JAVA GAMES LIBRARY", Color.yellow);
- GL11.glPopMatrix();
- //GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
- // Wenn man eine bestimmte Hintergrundfarbe will macht man das. Format RGBA
- //GL11.glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
- GL11.glPushMatrix();
- //GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
- //GL11.glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
- // Standard Matrix laden
- //GL11.glLoadIdentity();
- // Bewege 10 nach unten und 60 nach hinten sodass wir was sehen
- GL11.glTranslatef((float) 0, -10.0f, -60.0f);
- // Unser aktuelle Zeit in ms
- long currentTime = Sys.getTime() * 1000 / Sys.getTimerResolution();
- // Winkel zwischen 0 und 360 wachsen lassen
- angle += ((currentTime - lastTime) / 10.0f) % 360;
- // Zeitpunkt des letzten Frames ist jetzt
- lastTime = currentTime;
- // Rotiere um die Y-Achse um angle Grad
- //GL11.glRotatef(angle, 0.0f, 1.0f, 0.0f);
- GL11.glRotatef(angle, 0, 1, 0);
- // Farbe auswählen womit wir alle zukünftigen Ecken malen
- // Farben sind entweder in RGB oder RGBA format A = Alpha = Durchsichtigkeit
- // Bei gl______f handelt es sich um float Werte zwischen 0 und 1.0
- // Alles andere z.B. gl______ub sollte man in Java vermeiden
- GL11.glColor3f(rand.nextFloat(),rand.nextFloat(),rand.nextFloat());
- // Beginne mit einem Viereck
- GL11.glBegin(GL11.GL_QUADS);
- // Erste Ecke festlegen
- GL11.glVertex3f(-5,-5,5);
- GL11.glColor3f(rand.nextFloat(),rand.nextFloat(),rand.nextFloat());
- // Zweite Ecke festlegen
- GL11.glVertex3f(5,-5,5);
- // Zwischendurch farbe wechseln
- GL11.glColor3f(rand.nextFloat(),rand.nextFloat(),rand.nextFloat());
- // Dritte Ecke festlegen
- GL11.glVertex3f(5,5,5);
- GL11.glColor3f(rand.nextFloat(),rand.nextFloat(),rand.nextFloat());
- // Vierte Ecke festlegen
- GL11.glVertex3f(-5,5,5);
- // Nach vier Ecken sind wir mit einem Viereck fertig... lol
- GL11.glEnd();
- // Zweite Seite
- GL11.glBegin(GL11.GL_QUADS);
- GL11.glColor3f(rand.nextFloat(),rand.nextFloat(),rand.nextFloat());
- GL11.glVertex3f(-5,-5,-5);
- GL11.glColor3f(rand.nextFloat(),rand.nextFloat(),rand.nextFloat());
- GL11.glVertex3f(-5,5,-5);
- GL11.glColor3f(rand.nextFloat(),rand.nextFloat(),rand.nextFloat());
- GL11.glVertex3f(5,5,-5);
- GL11.glColor3f(rand.nextFloat(),rand.nextFloat(),rand.nextFloat());
- GL11.glVertex3f(5,-5,-5);
- GL11.glEnd();
- // Dritte Seite
- GL11.glBegin(GL11.GL_QUADS);
- GL11.glColor3f(rand.nextFloat(),rand.nextFloat(),rand.nextFloat());
- GL11.glVertex3f(5,-5,5);
- GL11.glColor3f(rand.nextFloat(),rand.nextFloat(),rand.nextFloat());
- GL11.glVertex3f(5,5,5);
- GL11.glColor3f(rand.nextFloat(),rand.nextFloat(),rand.nextFloat());
- GL11.glVertex3f(5,5,-5);
- GL11.glColor3f(rand.nextFloat(),rand.nextFloat(),rand.nextFloat());
- GL11.glVertex3f(5,-5,-5);
- GL11.glEnd();
- // Vierte Seite
- GL11.glBegin(GL11.GL_QUADS);
- GL11.glColor3f(rand.nextFloat(),rand.nextFloat(),rand.nextFloat());
- GL11.glVertex3f(-5,-5,-5);
- GL11.glColor3f(rand.nextFloat(),rand.nextFloat(),rand.nextFloat());
- GL11.glVertex3f(-5,5,-5);
- GL11.glColor3f(rand.nextFloat(),rand.nextFloat(),rand.nextFloat());
- GL11.glVertex3f(-5,5,5);
- GL11.glColor3f(rand.nextFloat(),rand.nextFloat(),rand.nextFloat());
- GL11.glVertex3f(-5,-5,5);
- GL11.glEnd();
- // Fünfte Seite
- GL11.glBegin(GL11.GL_QUADS);
- GL11.glColor3f(rand.nextFloat(),rand.nextFloat(),rand.nextFloat());
- GL11.glVertex3f(-5,5,-5);
- GL11.glColor3f(rand.nextFloat(),rand.nextFloat(),rand.nextFloat());
- GL11.glVertex3f(5,5,-5);
- GL11.glColor3f(rand.nextFloat(),rand.nextFloat(),rand.nextFloat());
- GL11.glVertex3f(5,5,5);
- GL11.glColor3f(rand.nextFloat(),rand.nextFloat(),rand.nextFloat());
- GL11.glVertex3f(-5,5,5);
- GL11.glEnd();
- // Sechste Seite
- GL11.glBegin(GL11.GL_QUADS);
- GL11.glColor3f(rand.nextFloat(),rand.nextFloat(),rand.nextFloat());
- GL11.glVertex3f(-5,-5,5);
- GL11.glColor3f(rand.nextFloat(),rand.nextFloat(),rand.nextFloat());
- GL11.glVertex3f(5,-5,5);
- GL11.glColor3f(rand.nextFloat(),rand.nextFloat(),rand.nextFloat());
- GL11.glVertex3f(5,-5,-5);
- GL11.glColor3f(rand.nextFloat(),rand.nextFloat(),rand.nextFloat());
- GL11.glVertex3f(-5,-5,-5);
- GL11.glEnd();
- GL11.glPopMatrix();
- // Unser neuer Frame den Benutzer präsentieren
- }
- /**
- * Main method
- */
- public static void main(String[] argv) {
- FontExample fontExample = new FontExample();
- fontExample.start();
- }
- Random rand = new Random();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement