Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import org.lwjgl.LWJGLException
- import org.lwjgl.{Sys => LWJGLSys}
- import org.lwjgl.input.Keyboard
- import org.lwjgl.opengl.{Display, DisplayMode}
- import org.lwjgl.opengl.GL11._
- object TimerExample {
- var x: Float = 400
- var y: Float = 300
- var rotation: Float = 0
- var lastFrame: Long = getTime()
- var fps: Int = 0
- var lastFPS: Long = getTime()
- def start() : Unit = {
- try {
- Display.setDisplayMode(new DisplayMode(800,600))
- Display.create()
- } catch {
- case e: LWJGLException => {
- e.printStackTrace()
- sys.exit(1)
- }
- }
- initGL()
- getDelta()
- lastFPS = getTime()
- while (!Display.isCloseRequested()) {
- val delta = getDelta()
- update(delta)
- renderGL()
- Display.update()
- Display.sync(60)
- }
- Display.destroy()
- }
- def update(delta: Int) : Unit = {
- rotation += 0.15f * delta
- if (Keyboard.isKeyDown(Keyboard.KEY_LEFT)) x -= 0.35f * delta
- if (Keyboard.isKeyDown(Keyboard.KEY_RIGHT)) x += 0.35f * delta
- if (Keyboard.isKeyDown(Keyboard.KEY_DOWN)) y -= 0.35f * delta
- if (Keyboard.isKeyDown(Keyboard.KEY_UP)) y += 0.35f * delta
- if (x < 0) x = 0
- if (x > 800) x = 800
- if (y < 0) y = 0
- if (y > 600) y = 600
- updateFPS()
- }
- def getDelta() : Int = {
- val time = getTime()
- val delta = time - lastFrame.toLong
- lastFrame = time
- delta.toInt
- }
- def getTime() : Long = {
- (LWJGLSys.getTime() * 1000) / LWJGLSys.getTimerResolution()
- }
- def updateFPS() : Unit = {
- if (getTime() - lastFPS > 1000) {
- Display.setTitle("FPS: " + fps)
- fps = 0
- lastFPS += 1000
- }
- fps += 1
- }
- def initGL() : Unit = {
- glMatrixMode(GL_PROJECTION)
- glLoadIdentity()
- glOrtho(0, 800, 0, 600, 1, -1)
- glMatrixMode(GL_MODELVIEW)
- }
- def renderGL() : Unit = {
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
- glColor3f(0.5f, 0.5f, 1.0f)
- glPushMatrix()
- glTranslatef(x,y,0)
- glRotatef(rotation, 0f, 0f, 1f)
- glTranslatef(-x, -y, 0)
- glBegin(GL_QUADS)
- glVertex2f( x - 50, y - 50 )
- glVertex2f( x + 50, y - 50 )
- glVertex2f( x + 50, y + 50 )
- glVertex2f( x - 50, y + 50 )
- glEnd()
- glPopMatrix()
- }
- def main(args: Array[String]): Unit = {
- start()
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment